00001
00002 #ifndef ARM_NAVIGATION_MSGS_MESSAGE_MOVEARMRESULT_H
00003 #define ARM_NAVIGATION_MSGS_MESSAGE_MOVEARMRESULT_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 "arm_navigation_msgs/ArmNavigationErrorCodes.h"
00018 #include "arm_navigation_msgs/ContactInformation.h"
00019
00020 namespace arm_navigation_msgs
00021 {
00022 template <class ContainerAllocator>
00023 struct MoveArmResult_ {
00024 typedef MoveArmResult_<ContainerAllocator> Type;
00025
00026 MoveArmResult_()
00027 : error_code()
00028 , contacts()
00029 {
00030 }
00031
00032 MoveArmResult_(const ContainerAllocator& _alloc)
00033 : error_code(_alloc)
00034 , contacts(_alloc)
00035 {
00036 }
00037
00038 typedef ::arm_navigation_msgs::ArmNavigationErrorCodes_<ContainerAllocator> _error_code_type;
00039 ::arm_navigation_msgs::ArmNavigationErrorCodes_<ContainerAllocator> error_code;
00040
00041 typedef std::vector< ::arm_navigation_msgs::ContactInformation_<ContainerAllocator> , typename ContainerAllocator::template rebind< ::arm_navigation_msgs::ContactInformation_<ContainerAllocator> >::other > _contacts_type;
00042 std::vector< ::arm_navigation_msgs::ContactInformation_<ContainerAllocator> , typename ContainerAllocator::template rebind< ::arm_navigation_msgs::ContactInformation_<ContainerAllocator> >::other > contacts;
00043
00044
00045 ROS_DEPRECATED uint32_t get_contacts_size() const { return (uint32_t)contacts.size(); }
00046 ROS_DEPRECATED void set_contacts_size(uint32_t size) { contacts.resize((size_t)size); }
00047 ROS_DEPRECATED void get_contacts_vec(std::vector< ::arm_navigation_msgs::ContactInformation_<ContainerAllocator> , typename ContainerAllocator::template rebind< ::arm_navigation_msgs::ContactInformation_<ContainerAllocator> >::other > & vec) const { vec = this->contacts; }
00048 ROS_DEPRECATED void set_contacts_vec(const std::vector< ::arm_navigation_msgs::ContactInformation_<ContainerAllocator> , typename ContainerAllocator::template rebind< ::arm_navigation_msgs::ContactInformation_<ContainerAllocator> >::other > & vec) { this->contacts = vec; }
00049 private:
00050 static const char* __s_getDataType_() { return "arm_navigation_msgs/MoveArmResult"; }
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 "3229301226a0605e3ffc9dfdaeac662f"; }
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 "# ====== DO NOT MODIFY! AUTOGENERATED FROM AN ACTION DEFINITION ======\n\
00065 # An error code reflecting what went wrong\n\
00066 ArmNavigationErrorCodes error_code\n\
00067 \n\
00068 ContactInformation[] contacts\n\
00069 \n\
00070 ================================================================================\n\
00071 MSG: arm_navigation_msgs/ArmNavigationErrorCodes\n\
00072 int32 val\n\
00073 \n\
00074 # overall behavior\n\
00075 int32 PLANNING_FAILED=-1\n\
00076 int32 SUCCESS=1\n\
00077 int32 TIMED_OUT=-2\n\
00078 \n\
00079 # start state errors\n\
00080 int32 START_STATE_IN_COLLISION=-3\n\
00081 int32 START_STATE_VIOLATES_PATH_CONSTRAINTS=-4\n\
00082 \n\
00083 # goal errors\n\
00084 int32 GOAL_IN_COLLISION=-5\n\
00085 int32 GOAL_VIOLATES_PATH_CONSTRAINTS=-6\n\
00086 \n\
00087 # robot state\n\
00088 int32 INVALID_ROBOT_STATE=-7\n\
00089 int32 INCOMPLETE_ROBOT_STATE=-8\n\
00090 \n\
00091 # planning request errors\n\
00092 int32 INVALID_PLANNER_ID=-9\n\
00093 int32 INVALID_NUM_PLANNING_ATTEMPTS=-10\n\
00094 int32 INVALID_ALLOWED_PLANNING_TIME=-11\n\
00095 int32 INVALID_GROUP_NAME=-12\n\
00096 int32 INVALID_GOAL_JOINT_CONSTRAINTS=-13\n\
00097 int32 INVALID_GOAL_POSITION_CONSTRAINTS=-14\n\
00098 int32 INVALID_GOAL_ORIENTATION_CONSTRAINTS=-15\n\
00099 int32 INVALID_PATH_JOINT_CONSTRAINTS=-16\n\
00100 int32 INVALID_PATH_POSITION_CONSTRAINTS=-17\n\
00101 int32 INVALID_PATH_ORIENTATION_CONSTRAINTS=-18\n\
00102 \n\
00103 # state/trajectory monitor errors\n\
00104 int32 INVALID_TRAJECTORY=-19\n\
00105 int32 INVALID_INDEX=-20\n\
00106 int32 JOINT_LIMITS_VIOLATED=-21\n\
00107 int32 PATH_CONSTRAINTS_VIOLATED=-22\n\
00108 int32 COLLISION_CONSTRAINTS_VIOLATED=-23\n\
00109 int32 GOAL_CONSTRAINTS_VIOLATED=-24\n\
00110 int32 JOINTS_NOT_MOVING=-25\n\
00111 int32 TRAJECTORY_CONTROLLER_FAILED=-26\n\
00112 \n\
00113 # system errors\n\
00114 int32 FRAME_TRANSFORM_FAILURE=-27\n\
00115 int32 COLLISION_CHECKING_UNAVAILABLE=-28\n\
00116 int32 ROBOT_STATE_STALE=-29\n\
00117 int32 SENSOR_INFO_STALE=-30\n\
00118 \n\
00119 # kinematics errors\n\
00120 int32 NO_IK_SOLUTION=-31\n\
00121 int32 INVALID_LINK_NAME=-32\n\
00122 int32 IK_LINK_IN_COLLISION=-33\n\
00123 int32 NO_FK_SOLUTION=-34\n\
00124 int32 KINEMATICS_STATE_IN_COLLISION=-35\n\
00125 \n\
00126 # general errors\n\
00127 int32 INVALID_TIMEOUT=-36\n\
00128 \n\
00129 \n\
00130 ================================================================================\n\
00131 MSG: arm_navigation_msgs/ContactInformation\n\
00132 # Standard ROS header contains information \n\
00133 # about the frame in which this \n\
00134 # contact is specified\n\
00135 Header header\n\
00136 \n\
00137 # Position of the contact point\n\
00138 geometry_msgs/Point position\n\
00139 \n\
00140 # Normal corresponding to the contact point\n\
00141 geometry_msgs/Vector3 normal \n\
00142 \n\
00143 # Depth of contact point\n\
00144 float64 depth\n\
00145 \n\
00146 # Name of the first body that is in contact\n\
00147 # This could be a link or a namespace that represents a body\n\
00148 string contact_body_1\n\
00149 string attached_body_1\n\
00150 uint32 body_type_1\n\
00151 \n\
00152 # Name of the second body that is in contact\n\
00153 # This could be a link or a namespace that represents a body\n\
00154 string contact_body_2\n\
00155 string attached_body_2\n\
00156 uint32 body_type_2\n\
00157 \n\
00158 uint32 ROBOT_LINK=0\n\
00159 uint32 OBJECT=1\n\
00160 uint32 ATTACHED_BODY=2\n\
00161 ================================================================================\n\
00162 MSG: std_msgs/Header\n\
00163 # Standard metadata for higher-level stamped data types.\n\
00164 # This is generally used to communicate timestamped data \n\
00165 # in a particular coordinate frame.\n\
00166 # \n\
00167 # sequence ID: consecutively increasing ID \n\
00168 uint32 seq\n\
00169 #Two-integer timestamp that is expressed as:\n\
00170 # * stamp.secs: seconds (stamp_secs) since epoch\n\
00171 # * stamp.nsecs: nanoseconds since stamp_secs\n\
00172 # time-handling sugar is provided by the client library\n\
00173 time stamp\n\
00174 #Frame this data is associated with\n\
00175 # 0: no frame\n\
00176 # 1: global frame\n\
00177 string frame_id\n\
00178 \n\
00179 ================================================================================\n\
00180 MSG: geometry_msgs/Point\n\
00181 # This contains the position of a point in free space\n\
00182 float64 x\n\
00183 float64 y\n\
00184 float64 z\n\
00185 \n\
00186 ================================================================================\n\
00187 MSG: geometry_msgs/Vector3\n\
00188 # This represents a vector in free space. \n\
00189 \n\
00190 float64 x\n\
00191 float64 y\n\
00192 float64 z\n\
00193 "; }
00194 public:
00195 ROS_DEPRECATED static const std::string __s_getMessageDefinition() { return __s_getMessageDefinition_(); }
00196
00197 ROS_DEPRECATED const std::string __getMessageDefinition() const { return __s_getMessageDefinition_(); }
00198
00199 ROS_DEPRECATED virtual uint8_t *serialize(uint8_t *write_ptr, uint32_t seq) const
00200 {
00201 ros::serialization::OStream stream(write_ptr, 1000000000);
00202 ros::serialization::serialize(stream, error_code);
00203 ros::serialization::serialize(stream, contacts);
00204 return stream.getData();
00205 }
00206
00207 ROS_DEPRECATED virtual uint8_t *deserialize(uint8_t *read_ptr)
00208 {
00209 ros::serialization::IStream stream(read_ptr, 1000000000);
00210 ros::serialization::deserialize(stream, error_code);
00211 ros::serialization::deserialize(stream, contacts);
00212 return stream.getData();
00213 }
00214
00215 ROS_DEPRECATED virtual uint32_t serializationLength() const
00216 {
00217 uint32_t size = 0;
00218 size += ros::serialization::serializationLength(error_code);
00219 size += ros::serialization::serializationLength(contacts);
00220 return size;
00221 }
00222
00223 typedef boost::shared_ptr< ::arm_navigation_msgs::MoveArmResult_<ContainerAllocator> > Ptr;
00224 typedef boost::shared_ptr< ::arm_navigation_msgs::MoveArmResult_<ContainerAllocator> const> ConstPtr;
00225 boost::shared_ptr<std::map<std::string, std::string> > __connection_header;
00226 };
00227 typedef ::arm_navigation_msgs::MoveArmResult_<std::allocator<void> > MoveArmResult;
00228
00229 typedef boost::shared_ptr< ::arm_navigation_msgs::MoveArmResult> MoveArmResultPtr;
00230 typedef boost::shared_ptr< ::arm_navigation_msgs::MoveArmResult const> MoveArmResultConstPtr;
00231
00232
00233 template<typename ContainerAllocator>
00234 std::ostream& operator<<(std::ostream& s, const ::arm_navigation_msgs::MoveArmResult_<ContainerAllocator> & v)
00235 {
00236 ros::message_operations::Printer< ::arm_navigation_msgs::MoveArmResult_<ContainerAllocator> >::stream(s, "", v);
00237 return s;}
00238
00239 }
00240
00241 namespace ros
00242 {
00243 namespace message_traits
00244 {
00245 template<class ContainerAllocator> struct IsMessage< ::arm_navigation_msgs::MoveArmResult_<ContainerAllocator> > : public TrueType {};
00246 template<class ContainerAllocator> struct IsMessage< ::arm_navigation_msgs::MoveArmResult_<ContainerAllocator> const> : public TrueType {};
00247 template<class ContainerAllocator>
00248 struct MD5Sum< ::arm_navigation_msgs::MoveArmResult_<ContainerAllocator> > {
00249 static const char* value()
00250 {
00251 return "3229301226a0605e3ffc9dfdaeac662f";
00252 }
00253
00254 static const char* value(const ::arm_navigation_msgs::MoveArmResult_<ContainerAllocator> &) { return value(); }
00255 static const uint64_t static_value1 = 0x3229301226a0605eULL;
00256 static const uint64_t static_value2 = 0x3ffc9dfdaeac662fULL;
00257 };
00258
00259 template<class ContainerAllocator>
00260 struct DataType< ::arm_navigation_msgs::MoveArmResult_<ContainerAllocator> > {
00261 static const char* value()
00262 {
00263 return "arm_navigation_msgs/MoveArmResult";
00264 }
00265
00266 static const char* value(const ::arm_navigation_msgs::MoveArmResult_<ContainerAllocator> &) { return value(); }
00267 };
00268
00269 template<class ContainerAllocator>
00270 struct Definition< ::arm_navigation_msgs::MoveArmResult_<ContainerAllocator> > {
00271 static const char* value()
00272 {
00273 return "# ====== DO NOT MODIFY! AUTOGENERATED FROM AN ACTION DEFINITION ======\n\
00274 # An error code reflecting what went wrong\n\
00275 ArmNavigationErrorCodes error_code\n\
00276 \n\
00277 ContactInformation[] contacts\n\
00278 \n\
00279 ================================================================================\n\
00280 MSG: arm_navigation_msgs/ArmNavigationErrorCodes\n\
00281 int32 val\n\
00282 \n\
00283 # overall behavior\n\
00284 int32 PLANNING_FAILED=-1\n\
00285 int32 SUCCESS=1\n\
00286 int32 TIMED_OUT=-2\n\
00287 \n\
00288 # start state errors\n\
00289 int32 START_STATE_IN_COLLISION=-3\n\
00290 int32 START_STATE_VIOLATES_PATH_CONSTRAINTS=-4\n\
00291 \n\
00292 # goal errors\n\
00293 int32 GOAL_IN_COLLISION=-5\n\
00294 int32 GOAL_VIOLATES_PATH_CONSTRAINTS=-6\n\
00295 \n\
00296 # robot state\n\
00297 int32 INVALID_ROBOT_STATE=-7\n\
00298 int32 INCOMPLETE_ROBOT_STATE=-8\n\
00299 \n\
00300 # planning request errors\n\
00301 int32 INVALID_PLANNER_ID=-9\n\
00302 int32 INVALID_NUM_PLANNING_ATTEMPTS=-10\n\
00303 int32 INVALID_ALLOWED_PLANNING_TIME=-11\n\
00304 int32 INVALID_GROUP_NAME=-12\n\
00305 int32 INVALID_GOAL_JOINT_CONSTRAINTS=-13\n\
00306 int32 INVALID_GOAL_POSITION_CONSTRAINTS=-14\n\
00307 int32 INVALID_GOAL_ORIENTATION_CONSTRAINTS=-15\n\
00308 int32 INVALID_PATH_JOINT_CONSTRAINTS=-16\n\
00309 int32 INVALID_PATH_POSITION_CONSTRAINTS=-17\n\
00310 int32 INVALID_PATH_ORIENTATION_CONSTRAINTS=-18\n\
00311 \n\
00312 # state/trajectory monitor errors\n\
00313 int32 INVALID_TRAJECTORY=-19\n\
00314 int32 INVALID_INDEX=-20\n\
00315 int32 JOINT_LIMITS_VIOLATED=-21\n\
00316 int32 PATH_CONSTRAINTS_VIOLATED=-22\n\
00317 int32 COLLISION_CONSTRAINTS_VIOLATED=-23\n\
00318 int32 GOAL_CONSTRAINTS_VIOLATED=-24\n\
00319 int32 JOINTS_NOT_MOVING=-25\n\
00320 int32 TRAJECTORY_CONTROLLER_FAILED=-26\n\
00321 \n\
00322 # system errors\n\
00323 int32 FRAME_TRANSFORM_FAILURE=-27\n\
00324 int32 COLLISION_CHECKING_UNAVAILABLE=-28\n\
00325 int32 ROBOT_STATE_STALE=-29\n\
00326 int32 SENSOR_INFO_STALE=-30\n\
00327 \n\
00328 # kinematics errors\n\
00329 int32 NO_IK_SOLUTION=-31\n\
00330 int32 INVALID_LINK_NAME=-32\n\
00331 int32 IK_LINK_IN_COLLISION=-33\n\
00332 int32 NO_FK_SOLUTION=-34\n\
00333 int32 KINEMATICS_STATE_IN_COLLISION=-35\n\
00334 \n\
00335 # general errors\n\
00336 int32 INVALID_TIMEOUT=-36\n\
00337 \n\
00338 \n\
00339 ================================================================================\n\
00340 MSG: arm_navigation_msgs/ContactInformation\n\
00341 # Standard ROS header contains information \n\
00342 # about the frame in which this \n\
00343 # contact is specified\n\
00344 Header header\n\
00345 \n\
00346 # Position of the contact point\n\
00347 geometry_msgs/Point position\n\
00348 \n\
00349 # Normal corresponding to the contact point\n\
00350 geometry_msgs/Vector3 normal \n\
00351 \n\
00352 # Depth of contact point\n\
00353 float64 depth\n\
00354 \n\
00355 # Name of the first body that is in contact\n\
00356 # This could be a link or a namespace that represents a body\n\
00357 string contact_body_1\n\
00358 string attached_body_1\n\
00359 uint32 body_type_1\n\
00360 \n\
00361 # Name of the second body that is in contact\n\
00362 # This could be a link or a namespace that represents a body\n\
00363 string contact_body_2\n\
00364 string attached_body_2\n\
00365 uint32 body_type_2\n\
00366 \n\
00367 uint32 ROBOT_LINK=0\n\
00368 uint32 OBJECT=1\n\
00369 uint32 ATTACHED_BODY=2\n\
00370 ================================================================================\n\
00371 MSG: std_msgs/Header\n\
00372 # Standard metadata for higher-level stamped data types.\n\
00373 # This is generally used to communicate timestamped data \n\
00374 # in a particular coordinate frame.\n\
00375 # \n\
00376 # sequence ID: consecutively increasing ID \n\
00377 uint32 seq\n\
00378 #Two-integer timestamp that is expressed as:\n\
00379 # * stamp.secs: seconds (stamp_secs) since epoch\n\
00380 # * stamp.nsecs: nanoseconds since stamp_secs\n\
00381 # time-handling sugar is provided by the client library\n\
00382 time stamp\n\
00383 #Frame this data is associated with\n\
00384 # 0: no frame\n\
00385 # 1: global frame\n\
00386 string frame_id\n\
00387 \n\
00388 ================================================================================\n\
00389 MSG: geometry_msgs/Point\n\
00390 # This contains the position of a point in free space\n\
00391 float64 x\n\
00392 float64 y\n\
00393 float64 z\n\
00394 \n\
00395 ================================================================================\n\
00396 MSG: geometry_msgs/Vector3\n\
00397 # This represents a vector in free space. \n\
00398 \n\
00399 float64 x\n\
00400 float64 y\n\
00401 float64 z\n\
00402 ";
00403 }
00404
00405 static const char* value(const ::arm_navigation_msgs::MoveArmResult_<ContainerAllocator> &) { return value(); }
00406 };
00407
00408 }
00409 }
00410
00411 namespace ros
00412 {
00413 namespace serialization
00414 {
00415
00416 template<class ContainerAllocator> struct Serializer< ::arm_navigation_msgs::MoveArmResult_<ContainerAllocator> >
00417 {
00418 template<typename Stream, typename T> inline static void allInOne(Stream& stream, T m)
00419 {
00420 stream.next(m.error_code);
00421 stream.next(m.contacts);
00422 }
00423
00424 ROS_DECLARE_ALLINONE_SERIALIZER;
00425 };
00426 }
00427 }
00428
00429 namespace ros
00430 {
00431 namespace message_operations
00432 {
00433
00434 template<class ContainerAllocator>
00435 struct Printer< ::arm_navigation_msgs::MoveArmResult_<ContainerAllocator> >
00436 {
00437 template<typename Stream> static void stream(Stream& s, const std::string& indent, const ::arm_navigation_msgs::MoveArmResult_<ContainerAllocator> & v)
00438 {
00439 s << indent << "error_code: ";
00440 s << std::endl;
00441 Printer< ::arm_navigation_msgs::ArmNavigationErrorCodes_<ContainerAllocator> >::stream(s, indent + " ", v.error_code);
00442 s << indent << "contacts[]" << std::endl;
00443 for (size_t i = 0; i < v.contacts.size(); ++i)
00444 {
00445 s << indent << " contacts[" << i << "]: ";
00446 s << std::endl;
00447 s << indent;
00448 Printer< ::arm_navigation_msgs::ContactInformation_<ContainerAllocator> >::stream(s, indent + " ", v.contacts[i]);
00449 }
00450 }
00451 };
00452
00453
00454 }
00455 }
00456
00457 #endif // ARM_NAVIGATION_MSGS_MESSAGE_MOVEARMRESULT_H
00458