// Generated by gencpp from file robot_nav_msgs/Odometry.msg
// DO NOT EDIT!


#ifndef ROBOT_NAV_MSGS_MESSAGE_ODOMETRY_H
#define ROBOT_NAV_MSGS_MESSAGE_ODOMETRY_H


#include <string>
#include <vector>
#include <memory>
#include <boost/shared_ptr.hpp>

#include <robot_std_msgs/Header.h>
#include <robot_geometry_msgs/PoseWithCovariance.h>
#include <robot_geometry_msgs/TwistWithCovariance.h>

namespace robot_nav_msgs
{
template <class ContainerAllocator>
struct Odometry_
{
  typedef Odometry_<ContainerAllocator> Type;

  Odometry_()
    : header()
    , child_frame_id()
    , pose()
    , twist()  {
    }
  Odometry_(const ContainerAllocator& _alloc)
    : header(_alloc)
    , child_frame_id(_alloc)
    , pose(_alloc)
    , twist(_alloc)  {
  (void)_alloc;
    }



   typedef  ::robot_std_msgs::Header  _header_type;
  _header_type header;

   typedef std::basic_string<char, std::char_traits<char>, typename std::allocator_traits<ContainerAllocator>::template rebind_alloc<char>> _child_frame_id_type;
  _child_frame_id_type child_frame_id;

   typedef  ::robot_geometry_msgs::PoseWithCovariance  _pose_type;
  _pose_type pose;

   typedef  ::robot_geometry_msgs::TwistWithCovariance  _twist_type;
  _twist_type twist;




  typedef boost::shared_ptr< ::robot_nav_msgs::Odometry_<ContainerAllocator> > Ptr;
  typedef boost::shared_ptr< ::robot_nav_msgs::Odometry_<ContainerAllocator> const> ConstPtr;

}; // struct Odometry_

typedef ::robot_nav_msgs::Odometry_<std::allocator<void> > Odometry;

typedef boost::shared_ptr< ::robot_nav_msgs::Odometry > OdometryPtr;
typedef boost::shared_ptr< ::robot_nav_msgs::Odometry const> OdometryConstPtr;

template<typename ContainerAllocator1, typename ContainerAllocator2>
bool operator==(const ::robot_nav_msgs::Odometry_<ContainerAllocator1> & lhs, const ::robot_nav_msgs::Odometry_<ContainerAllocator2> & rhs)
{
  return lhs.header == rhs.header &&
    lhs.child_frame_id == rhs.child_frame_id &&
    lhs.pose == rhs.pose &&
    lhs.twist == rhs.twist;
}

template<typename ContainerAllocator1, typename ContainerAllocator2>
bool operator!=(const ::robot_nav_msgs::Odometry_<ContainerAllocator1> & lhs, const ::robot_nav_msgs::Odometry_<ContainerAllocator2> & rhs)
{
  return !(lhs == rhs);
}

} // namespace robot_nav_msgs

#endif // ROBOT_NAV_MSGS_MESSAGE_ODOMETRY_H
