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