mav_ctrl.h
Go to the documentation of this file.
00001 /* Auto-generated by genmsg_cpp for file /home/rosbuild/hudson/workspace/doc-fuerte-asctec_mav_framework/doc_stacks/2014-01-07_11-03-25.838445/asctec_mav_framework/asctec_hl_comm/msg/mav_ctrl.msg */
00002 #ifndef ASCTEC_HL_COMM_MESSAGE_MAV_CTRL_H
00003 #define ASCTEC_HL_COMM_MESSAGE_MAV_CTRL_H
00004 #include <string>
00005 #include <vector>
00006 #include <map>
00007 #include <ostream>
00008 #include "ros/serialization.h"
00009 #include "ros/builtin_message_traits.h"
00010 #include "ros/message_operations.h"
00011 #include "ros/time.h"
00012 
00013 #include "ros/macros.h"
00014 
00015 #include "ros/assert.h"
00016 
00017 #include "std_msgs/Header.h"
00018 
00019 namespace asctec_hl_comm
00020 {
00021 template <class ContainerAllocator>
00022 struct mav_ctrl_ {
00023   typedef mav_ctrl_<ContainerAllocator> Type;
00024 
00025   mav_ctrl_()
00026   : header()
00027   , type(0)
00028   , x(0.0)
00029   , y(0.0)
00030   , z(0.0)
00031   , yaw(0.0)
00032   , v_max_xy(0.0)
00033   , v_max_z(0.0)
00034   {
00035   }
00036 
00037   mav_ctrl_(const ContainerAllocator& _alloc)
00038   : header(_alloc)
00039   , type(0)
00040   , x(0.0)
00041   , y(0.0)
00042   , z(0.0)
00043   , yaw(0.0)
00044   , v_max_xy(0.0)
00045   , v_max_z(0.0)
00046   {
00047   }
00048 
00049   typedef  ::std_msgs::Header_<ContainerAllocator>  _header_type;
00050    ::std_msgs::Header_<ContainerAllocator>  header;
00051 
00052   typedef int8_t _type_type;
00053   int8_t type;
00054 
00055   typedef float _x_type;
00056   float x;
00057 
00058   typedef float _y_type;
00059   float y;
00060 
00061   typedef float _z_type;
00062   float z;
00063 
00064   typedef float _yaw_type;
00065   float yaw;
00066 
00067   typedef float _v_max_xy_type;
00068   float v_max_xy;
00069 
00070   typedef float _v_max_z_type;
00071   float v_max_z;
00072 
00073   enum { acceleration = 1 };
00074   enum { velocity = 2 };
00075   enum { position = 3 };
00076   enum { velocity_body = 4 };
00077   enum { position_body = 5 };
00078 
00079   typedef boost::shared_ptr< ::asctec_hl_comm::mav_ctrl_<ContainerAllocator> > Ptr;
00080   typedef boost::shared_ptr< ::asctec_hl_comm::mav_ctrl_<ContainerAllocator>  const> ConstPtr;
00081   boost::shared_ptr<std::map<std::string, std::string> > __connection_header;
00082 }; // struct mav_ctrl
00083 typedef  ::asctec_hl_comm::mav_ctrl_<std::allocator<void> > mav_ctrl;
00084 
00085 typedef boost::shared_ptr< ::asctec_hl_comm::mav_ctrl> mav_ctrlPtr;
00086 typedef boost::shared_ptr< ::asctec_hl_comm::mav_ctrl const> mav_ctrlConstPtr;
00087 
00088 
00089 template<typename ContainerAllocator>
00090 std::ostream& operator<<(std::ostream& s, const  ::asctec_hl_comm::mav_ctrl_<ContainerAllocator> & v)
00091 {
00092   ros::message_operations::Printer< ::asctec_hl_comm::mav_ctrl_<ContainerAllocator> >::stream(s, "", v);
00093   return s;}
00094 
00095 } // namespace asctec_hl_comm
00096 
00097 namespace ros
00098 {
00099 namespace message_traits
00100 {
00101 template<class ContainerAllocator> struct IsMessage< ::asctec_hl_comm::mav_ctrl_<ContainerAllocator> > : public TrueType {};
00102 template<class ContainerAllocator> struct IsMessage< ::asctec_hl_comm::mav_ctrl_<ContainerAllocator>  const> : public TrueType {};
00103 template<class ContainerAllocator>
00104 struct MD5Sum< ::asctec_hl_comm::mav_ctrl_<ContainerAllocator> > {
00105   static const char* value() 
00106   {
00107     return "845e0a830a06ad942cc0b1907c31bc38";
00108   }
00109 
00110   static const char* value(const  ::asctec_hl_comm::mav_ctrl_<ContainerAllocator> &) { return value(); } 
00111   static const uint64_t static_value1 = 0x845e0a830a06ad94ULL;
00112   static const uint64_t static_value2 = 0x2cc0b1907c31bc38ULL;
00113 };
00114 
00115 template<class ContainerAllocator>
00116 struct DataType< ::asctec_hl_comm::mav_ctrl_<ContainerAllocator> > {
00117   static const char* value() 
00118   {
00119     return "asctec_hl_comm/mav_ctrl";
00120   }
00121 
00122   static const char* value(const  ::asctec_hl_comm::mav_ctrl_<ContainerAllocator> &) { return value(); } 
00123 };
00124 
00125 template<class ContainerAllocator>
00126 struct Definition< ::asctec_hl_comm::mav_ctrl_<ContainerAllocator> > {
00127   static const char* value() 
00128   {
00129     return "Header header\n\
00130 \n\
00131 int8        type        #message type\n\
00132 \n\
00133 # control commands, all units in SI units !!!\n\
00134 # There are 3 operating modes of the helicopter:\n\
00135 # 1. Acceleration: x, y, z correspond to x_dotdot etc... with the exception that yaw is angular velocity\n\
00136 #    Inputs must be in body-coordinates\n\
00137 #    Currently x~pitch, y~roll, z~thrust, units in rad and rad/s for yaw\n\
00138 # 2. Velocity: x, y, z, yaw correspond to x_dot etc...\n\
00139 #    Vehicle must have it's own pose estimation e.g. vision/GPS\n\
00140 #    Inputs must be in body-coordinates\n\
00141 #    Units in m/s and rad/s respectively\n\
00142 # 3. Position\n\
00143 #    Vehicle must have it's own pose estimation e.g. vision/GPS\n\
00144 #    Inputs in fixed coordinate system\n\
00145 #    v_max_* is only valid for this mode and limits the velocity a vehicle approaches the waypoint\n\
00146 \n\
00147 float32     x\n\
00148 float32     y\n\
00149 float32     z\n\
00150 float32     yaw\n\
00151 float32     v_max_xy\n\
00152 float32     v_max_z\n\
00153 \n\
00154 int8 acceleration = 1\n\
00155 int8 velocity = 2\n\
00156 int8 position = 3\n\
00157 int8 velocity_body = 4\n\
00158 int8 position_body = 5\n\
00159 \n\
00160 ================================================================================\n\
00161 MSG: std_msgs/Header\n\
00162 # Standard metadata for higher-level stamped data types.\n\
00163 # This is generally used to communicate timestamped data \n\
00164 # in a particular coordinate frame.\n\
00165 # \n\
00166 # sequence ID: consecutively increasing ID \n\
00167 uint32 seq\n\
00168 #Two-integer timestamp that is expressed as:\n\
00169 # * stamp.secs: seconds (stamp_secs) since epoch\n\
00170 # * stamp.nsecs: nanoseconds since stamp_secs\n\
00171 # time-handling sugar is provided by the client library\n\
00172 time stamp\n\
00173 #Frame this data is associated with\n\
00174 # 0: no frame\n\
00175 # 1: global frame\n\
00176 string frame_id\n\
00177 \n\
00178 ";
00179   }
00180 
00181   static const char* value(const  ::asctec_hl_comm::mav_ctrl_<ContainerAllocator> &) { return value(); } 
00182 };
00183 
00184 template<class ContainerAllocator> struct HasHeader< ::asctec_hl_comm::mav_ctrl_<ContainerAllocator> > : public TrueType {};
00185 template<class ContainerAllocator> struct HasHeader< const ::asctec_hl_comm::mav_ctrl_<ContainerAllocator> > : public TrueType {};
00186 } // namespace message_traits
00187 } // namespace ros
00188 
00189 namespace ros
00190 {
00191 namespace serialization
00192 {
00193 
00194 template<class ContainerAllocator> struct Serializer< ::asctec_hl_comm::mav_ctrl_<ContainerAllocator> >
00195 {
00196   template<typename Stream, typename T> inline static void allInOne(Stream& stream, T m)
00197   {
00198     stream.next(m.header);
00199     stream.next(m.type);
00200     stream.next(m.x);
00201     stream.next(m.y);
00202     stream.next(m.z);
00203     stream.next(m.yaw);
00204     stream.next(m.v_max_xy);
00205     stream.next(m.v_max_z);
00206   }
00207 
00208   ROS_DECLARE_ALLINONE_SERIALIZER;
00209 }; // struct mav_ctrl_
00210 } // namespace serialization
00211 } // namespace ros
00212 
00213 namespace ros
00214 {
00215 namespace message_operations
00216 {
00217 
00218 template<class ContainerAllocator>
00219 struct Printer< ::asctec_hl_comm::mav_ctrl_<ContainerAllocator> >
00220 {
00221   template<typename Stream> static void stream(Stream& s, const std::string& indent, const  ::asctec_hl_comm::mav_ctrl_<ContainerAllocator> & v) 
00222   {
00223     s << indent << "header: ";
00224 s << std::endl;
00225     Printer< ::std_msgs::Header_<ContainerAllocator> >::stream(s, indent + "  ", v.header);
00226     s << indent << "type: ";
00227     Printer<int8_t>::stream(s, indent + "  ", v.type);
00228     s << indent << "x: ";
00229     Printer<float>::stream(s, indent + "  ", v.x);
00230     s << indent << "y: ";
00231     Printer<float>::stream(s, indent + "  ", v.y);
00232     s << indent << "z: ";
00233     Printer<float>::stream(s, indent + "  ", v.z);
00234     s << indent << "yaw: ";
00235     Printer<float>::stream(s, indent + "  ", v.yaw);
00236     s << indent << "v_max_xy: ";
00237     Printer<float>::stream(s, indent + "  ", v.v_max_xy);
00238     s << indent << "v_max_z: ";
00239     Printer<float>::stream(s, indent + "  ", v.v_max_z);
00240   }
00241 };
00242 
00243 
00244 } // namespace message_operations
00245 } // namespace ros
00246 
00247 #endif // ASCTEC_HL_COMM_MESSAGE_MAV_CTRL_H
00248 


asctec_hl_comm
Author(s): Markus Achtelik, Michael Achtelik, Stephan Weiss, Laurent Kneip
autogenerated on Tue Jan 7 2014 11:05:05