00001
00002 #ifndef ARM_NAVIGATION_MSGS_MESSAGE_JOINTTRAJECTORYWITHLIMITS_H
00003 #define ARM_NAVIGATION_MSGS_MESSAGE_JOINTTRAJECTORYWITHLIMITS_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 "trajectory_msgs/JointTrajectory.h"
00018 #include "arm_navigation_msgs/JointLimits.h"
00019
00020 namespace arm_navigation_msgs
00021 {
00022 template <class ContainerAllocator>
00023 struct JointTrajectoryWithLimits_ {
00024 typedef JointTrajectoryWithLimits_<ContainerAllocator> Type;
00025
00026 JointTrajectoryWithLimits_()
00027 : trajectory()
00028 , limits()
00029 {
00030 }
00031
00032 JointTrajectoryWithLimits_(const ContainerAllocator& _alloc)
00033 : trajectory(_alloc)
00034 , limits(_alloc)
00035 {
00036 }
00037
00038 typedef ::trajectory_msgs::JointTrajectory_<ContainerAllocator> _trajectory_type;
00039 ::trajectory_msgs::JointTrajectory_<ContainerAllocator> trajectory;
00040
00041 typedef std::vector< ::arm_navigation_msgs::JointLimits_<ContainerAllocator> , typename ContainerAllocator::template rebind< ::arm_navigation_msgs::JointLimits_<ContainerAllocator> >::other > _limits_type;
00042 std::vector< ::arm_navigation_msgs::JointLimits_<ContainerAllocator> , typename ContainerAllocator::template rebind< ::arm_navigation_msgs::JointLimits_<ContainerAllocator> >::other > limits;
00043
00044
00045 ROS_DEPRECATED uint32_t get_limits_size() const { return (uint32_t)limits.size(); }
00046 ROS_DEPRECATED void set_limits_size(uint32_t size) { limits.resize((size_t)size); }
00047 ROS_DEPRECATED void get_limits_vec(std::vector< ::arm_navigation_msgs::JointLimits_<ContainerAllocator> , typename ContainerAllocator::template rebind< ::arm_navigation_msgs::JointLimits_<ContainerAllocator> >::other > & vec) const { vec = this->limits; }
00048 ROS_DEPRECATED void set_limits_vec(const std::vector< ::arm_navigation_msgs::JointLimits_<ContainerAllocator> , typename ContainerAllocator::template rebind< ::arm_navigation_msgs::JointLimits_<ContainerAllocator> >::other > & vec) { this->limits = vec; }
00049 private:
00050 static const char* __s_getDataType_() { return "arm_navigation_msgs/JointTrajectoryWithLimits"; }
00051 public:
00052 ROS_DEPRECATED static const std::string __s_getDataType() { return __s_getDataType_(); }
00053
00054 ROS_DEPRECATED const std::string __getDataType() const { return __s_getDataType_(); }
00055
00056 private:
00057 static const char* __s_getMD5Sum_() { return "e31e1ba1b3409bbb645c8dfcca5935cd"; }
00058 public:
00059 ROS_DEPRECATED static const std::string __s_getMD5Sum() { return __s_getMD5Sum_(); }
00060
00061 ROS_DEPRECATED const std::string __getMD5Sum() const { return __s_getMD5Sum_(); }
00062
00063 private:
00064 static const char* __s_getMessageDefinition_() { return "# A trajectory message that encodes joint limits within it.\n\
00065 trajectory_msgs/JointTrajectory trajectory\n\
00066 \n\
00067 # A vector of JointLimit messages.\n\
00068 # Each message contains the limits for a specific joint\n\
00069 arm_navigation_msgs/JointLimits[] limits\n\
00070 \n\
00071 ================================================================================\n\
00072 MSG: trajectory_msgs/JointTrajectory\n\
00073 Header header\n\
00074 string[] joint_names\n\
00075 JointTrajectoryPoint[] points\n\
00076 ================================================================================\n\
00077 MSG: std_msgs/Header\n\
00078 # Standard metadata for higher-level stamped data types.\n\
00079 # This is generally used to communicate timestamped data \n\
00080 # in a particular coordinate frame.\n\
00081 # \n\
00082 # sequence ID: consecutively increasing ID \n\
00083 uint32 seq\n\
00084 #Two-integer timestamp that is expressed as:\n\
00085 # * stamp.secs: seconds (stamp_secs) since epoch\n\
00086 # * stamp.nsecs: nanoseconds since stamp_secs\n\
00087 # time-handling sugar is provided by the client library\n\
00088 time stamp\n\
00089 #Frame this data is associated with\n\
00090 # 0: no frame\n\
00091 # 1: global frame\n\
00092 string frame_id\n\
00093 \n\
00094 ================================================================================\n\
00095 MSG: trajectory_msgs/JointTrajectoryPoint\n\
00096 float64[] positions\n\
00097 float64[] velocities\n\
00098 float64[] accelerations\n\
00099 duration time_from_start\n\
00100 ================================================================================\n\
00101 MSG: arm_navigation_msgs/JointLimits\n\
00102 # This message contains information about limits of a particular joint (or control dimension)\n\
00103 string joint_name\n\
00104 \n\
00105 # true if the joint has position limits\n\
00106 bool has_position_limits\n\
00107 \n\
00108 # min and max position limits\n\
00109 float64 min_position\n\
00110 float64 max_position\n\
00111 \n\
00112 # true if joint has velocity limits\n\
00113 bool has_velocity_limits\n\
00114 \n\
00115 # max velocity limit\n\
00116 float64 max_velocity\n\
00117 # min_velocity is assumed to be -max_velocity\n\
00118 \n\
00119 # true if joint has acceleration limits\n\
00120 bool has_acceleration_limits\n\
00121 # max acceleration limit\n\
00122 float64 max_acceleration\n\
00123 # min_acceleration is assumed to be -max_acceleration\n\
00124 \n\
00125 "; }
00126 public:
00127 ROS_DEPRECATED static const std::string __s_getMessageDefinition() { return __s_getMessageDefinition_(); }
00128
00129 ROS_DEPRECATED const std::string __getMessageDefinition() const { return __s_getMessageDefinition_(); }
00130
00131 ROS_DEPRECATED virtual uint8_t *serialize(uint8_t *write_ptr, uint32_t seq) const
00132 {
00133 ros::serialization::OStream stream(write_ptr, 1000000000);
00134 ros::serialization::serialize(stream, trajectory);
00135 ros::serialization::serialize(stream, limits);
00136 return stream.getData();
00137 }
00138
00139 ROS_DEPRECATED virtual uint8_t *deserialize(uint8_t *read_ptr)
00140 {
00141 ros::serialization::IStream stream(read_ptr, 1000000000);
00142 ros::serialization::deserialize(stream, trajectory);
00143 ros::serialization::deserialize(stream, limits);
00144 return stream.getData();
00145 }
00146
00147 ROS_DEPRECATED virtual uint32_t serializationLength() const
00148 {
00149 uint32_t size = 0;
00150 size += ros::serialization::serializationLength(trajectory);
00151 size += ros::serialization::serializationLength(limits);
00152 return size;
00153 }
00154
00155 typedef boost::shared_ptr< ::arm_navigation_msgs::JointTrajectoryWithLimits_<ContainerAllocator> > Ptr;
00156 typedef boost::shared_ptr< ::arm_navigation_msgs::JointTrajectoryWithLimits_<ContainerAllocator> const> ConstPtr;
00157 boost::shared_ptr<std::map<std::string, std::string> > __connection_header;
00158 };
00159 typedef ::arm_navigation_msgs::JointTrajectoryWithLimits_<std::allocator<void> > JointTrajectoryWithLimits;
00160
00161 typedef boost::shared_ptr< ::arm_navigation_msgs::JointTrajectoryWithLimits> JointTrajectoryWithLimitsPtr;
00162 typedef boost::shared_ptr< ::arm_navigation_msgs::JointTrajectoryWithLimits const> JointTrajectoryWithLimitsConstPtr;
00163
00164
00165 template<typename ContainerAllocator>
00166 std::ostream& operator<<(std::ostream& s, const ::arm_navigation_msgs::JointTrajectoryWithLimits_<ContainerAllocator> & v)
00167 {
00168 ros::message_operations::Printer< ::arm_navigation_msgs::JointTrajectoryWithLimits_<ContainerAllocator> >::stream(s, "", v);
00169 return s;}
00170
00171 }
00172
00173 namespace ros
00174 {
00175 namespace message_traits
00176 {
00177 template<class ContainerAllocator> struct IsMessage< ::arm_navigation_msgs::JointTrajectoryWithLimits_<ContainerAllocator> > : public TrueType {};
00178 template<class ContainerAllocator> struct IsMessage< ::arm_navigation_msgs::JointTrajectoryWithLimits_<ContainerAllocator> const> : public TrueType {};
00179 template<class ContainerAllocator>
00180 struct MD5Sum< ::arm_navigation_msgs::JointTrajectoryWithLimits_<ContainerAllocator> > {
00181 static const char* value()
00182 {
00183 return "e31e1ba1b3409bbb645c8dfcca5935cd";
00184 }
00185
00186 static const char* value(const ::arm_navigation_msgs::JointTrajectoryWithLimits_<ContainerAllocator> &) { return value(); }
00187 static const uint64_t static_value1 = 0xe31e1ba1b3409bbbULL;
00188 static const uint64_t static_value2 = 0x645c8dfcca5935cdULL;
00189 };
00190
00191 template<class ContainerAllocator>
00192 struct DataType< ::arm_navigation_msgs::JointTrajectoryWithLimits_<ContainerAllocator> > {
00193 static const char* value()
00194 {
00195 return "arm_navigation_msgs/JointTrajectoryWithLimits";
00196 }
00197
00198 static const char* value(const ::arm_navigation_msgs::JointTrajectoryWithLimits_<ContainerAllocator> &) { return value(); }
00199 };
00200
00201 template<class ContainerAllocator>
00202 struct Definition< ::arm_navigation_msgs::JointTrajectoryWithLimits_<ContainerAllocator> > {
00203 static const char* value()
00204 {
00205 return "# A trajectory message that encodes joint limits within it.\n\
00206 trajectory_msgs/JointTrajectory trajectory\n\
00207 \n\
00208 # A vector of JointLimit messages.\n\
00209 # Each message contains the limits for a specific joint\n\
00210 arm_navigation_msgs/JointLimits[] limits\n\
00211 \n\
00212 ================================================================================\n\
00213 MSG: trajectory_msgs/JointTrajectory\n\
00214 Header header\n\
00215 string[] joint_names\n\
00216 JointTrajectoryPoint[] points\n\
00217 ================================================================================\n\
00218 MSG: std_msgs/Header\n\
00219 # Standard metadata for higher-level stamped data types.\n\
00220 # This is generally used to communicate timestamped data \n\
00221 # in a particular coordinate frame.\n\
00222 # \n\
00223 # sequence ID: consecutively increasing ID \n\
00224 uint32 seq\n\
00225 #Two-integer timestamp that is expressed as:\n\
00226 # * stamp.secs: seconds (stamp_secs) since epoch\n\
00227 # * stamp.nsecs: nanoseconds since stamp_secs\n\
00228 # time-handling sugar is provided by the client library\n\
00229 time stamp\n\
00230 #Frame this data is associated with\n\
00231 # 0: no frame\n\
00232 # 1: global frame\n\
00233 string frame_id\n\
00234 \n\
00235 ================================================================================\n\
00236 MSG: trajectory_msgs/JointTrajectoryPoint\n\
00237 float64[] positions\n\
00238 float64[] velocities\n\
00239 float64[] accelerations\n\
00240 duration time_from_start\n\
00241 ================================================================================\n\
00242 MSG: arm_navigation_msgs/JointLimits\n\
00243 # This message contains information about limits of a particular joint (or control dimension)\n\
00244 string joint_name\n\
00245 \n\
00246 # true if the joint has position limits\n\
00247 bool has_position_limits\n\
00248 \n\
00249 # min and max position limits\n\
00250 float64 min_position\n\
00251 float64 max_position\n\
00252 \n\
00253 # true if joint has velocity limits\n\
00254 bool has_velocity_limits\n\
00255 \n\
00256 # max velocity limit\n\
00257 float64 max_velocity\n\
00258 # min_velocity is assumed to be -max_velocity\n\
00259 \n\
00260 # true if joint has acceleration limits\n\
00261 bool has_acceleration_limits\n\
00262 # max acceleration limit\n\
00263 float64 max_acceleration\n\
00264 # min_acceleration is assumed to be -max_acceleration\n\
00265 \n\
00266 ";
00267 }
00268
00269 static const char* value(const ::arm_navigation_msgs::JointTrajectoryWithLimits_<ContainerAllocator> &) { return value(); }
00270 };
00271
00272 }
00273 }
00274
00275 namespace ros
00276 {
00277 namespace serialization
00278 {
00279
00280 template<class ContainerAllocator> struct Serializer< ::arm_navigation_msgs::JointTrajectoryWithLimits_<ContainerAllocator> >
00281 {
00282 template<typename Stream, typename T> inline static void allInOne(Stream& stream, T m)
00283 {
00284 stream.next(m.trajectory);
00285 stream.next(m.limits);
00286 }
00287
00288 ROS_DECLARE_ALLINONE_SERIALIZER;
00289 };
00290 }
00291 }
00292
00293 namespace ros
00294 {
00295 namespace message_operations
00296 {
00297
00298 template<class ContainerAllocator>
00299 struct Printer< ::arm_navigation_msgs::JointTrajectoryWithLimits_<ContainerAllocator> >
00300 {
00301 template<typename Stream> static void stream(Stream& s, const std::string& indent, const ::arm_navigation_msgs::JointTrajectoryWithLimits_<ContainerAllocator> & v)
00302 {
00303 s << indent << "trajectory: ";
00304 s << std::endl;
00305 Printer< ::trajectory_msgs::JointTrajectory_<ContainerAllocator> >::stream(s, indent + " ", v.trajectory);
00306 s << indent << "limits[]" << std::endl;
00307 for (size_t i = 0; i < v.limits.size(); ++i)
00308 {
00309 s << indent << " limits[" << i << "]: ";
00310 s << std::endl;
00311 s << indent;
00312 Printer< ::arm_navigation_msgs::JointLimits_<ContainerAllocator> >::stream(s, indent + " ", v.limits[i]);
00313 }
00314 }
00315 };
00316
00317
00318 }
00319 }
00320
00321 #endif // ARM_NAVIGATION_MSGS_MESSAGE_JOINTTRAJECTORYWITHLIMITS_H
00322