00001
00002 #ifndef KINEMATICS_MSGS_MESSAGE_POSITIONIKREQUEST_H
00003 #define KINEMATICS_MSGS_MESSAGE_POSITIONIKREQUEST_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 "geometry_msgs/PoseStamped.h"
00014 #include "motion_planning_msgs/RobotState.h"
00015 #include "motion_planning_msgs/RobotState.h"
00016
00017 namespace kinematics_msgs
00018 {
00019 template <class ContainerAllocator>
00020 struct PositionIKRequest_ : public ros::Message
00021 {
00022 typedef PositionIKRequest_<ContainerAllocator> Type;
00023
00024 PositionIKRequest_()
00025 : ik_link_name()
00026 , pose_stamped()
00027 , ik_seed_state()
00028 , robot_state()
00029 {
00030 }
00031
00032 PositionIKRequest_(const ContainerAllocator& _alloc)
00033 : ik_link_name(_alloc)
00034 , pose_stamped(_alloc)
00035 , ik_seed_state(_alloc)
00036 , robot_state(_alloc)
00037 {
00038 }
00039
00040 typedef std::basic_string<char, std::char_traits<char>, typename ContainerAllocator::template rebind<char>::other > _ik_link_name_type;
00041 std::basic_string<char, std::char_traits<char>, typename ContainerAllocator::template rebind<char>::other > ik_link_name;
00042
00043 typedef ::geometry_msgs::PoseStamped_<ContainerAllocator> _pose_stamped_type;
00044 ::geometry_msgs::PoseStamped_<ContainerAllocator> pose_stamped;
00045
00046 typedef ::motion_planning_msgs::RobotState_<ContainerAllocator> _ik_seed_state_type;
00047 ::motion_planning_msgs::RobotState_<ContainerAllocator> ik_seed_state;
00048
00049 typedef ::motion_planning_msgs::RobotState_<ContainerAllocator> _robot_state_type;
00050 ::motion_planning_msgs::RobotState_<ContainerAllocator> robot_state;
00051
00052
00053 private:
00054 static const char* __s_getDataType_() { return "kinematics_msgs/PositionIKRequest"; }
00055 public:
00056 ROS_DEPRECATED static const std::string __s_getDataType() { return __s_getDataType_(); }
00057
00058 ROS_DEPRECATED const std::string __getDataType() const { return __s_getDataType_(); }
00059
00060 private:
00061 static const char* __s_getMD5Sum_() { return "737bb756c6253bdd460b1383d0b12dac"; }
00062 public:
00063 ROS_DEPRECATED static const std::string __s_getMD5Sum() { return __s_getMD5Sum_(); }
00064
00065 ROS_DEPRECATED const std::string __getMD5Sum() const { return __s_getMD5Sum_(); }
00066
00067 private:
00068 static const char* __s_getMessageDefinition_() { return "# A Position IK request message\n\
00069 # The name of the link for which we are computing IK\n\
00070 string ik_link_name\n\
00071 \n\
00072 # The (stamped) pose of the link\n\
00073 geometry_msgs/PoseStamped pose_stamped\n\
00074 \n\
00075 # A RobotState consisting of hint/seed positions for the IK computation. \n\
00076 # These may be used to seed the IK search. \n\
00077 # The seed state MUST contain state for all joints to be used by the IK solver\n\
00078 # to compute IK. The list of joints that the IK solver deals with can be found using\n\
00079 # the kinematics_msgs/GetKinematicSolverInfo\n\
00080 motion_planning_msgs/RobotState ik_seed_state\n\
00081 \n\
00082 # Additional state information can be provided here to specify the starting positions \n\
00083 # of other joints/links on the robot.\n\
00084 motion_planning_msgs/RobotState robot_state\n\
00085 \n\
00086 ================================================================================\n\
00087 MSG: geometry_msgs/PoseStamped\n\
00088 # A Pose with reference coordinate frame and timestamp\n\
00089 Header header\n\
00090 Pose pose\n\
00091 \n\
00092 ================================================================================\n\
00093 MSG: std_msgs/Header\n\
00094 # Standard metadata for higher-level stamped data types.\n\
00095 # This is generally used to communicate timestamped data \n\
00096 # in a particular coordinate frame.\n\
00097 # \n\
00098 # sequence ID: consecutively increasing ID \n\
00099 uint32 seq\n\
00100 #Two-integer timestamp that is expressed as:\n\
00101 # * stamp.secs: seconds (stamp_secs) since epoch\n\
00102 # * stamp.nsecs: nanoseconds since stamp_secs\n\
00103 # time-handling sugar is provided by the client library\n\
00104 time stamp\n\
00105 #Frame this data is associated with\n\
00106 # 0: no frame\n\
00107 # 1: global frame\n\
00108 string frame_id\n\
00109 \n\
00110 ================================================================================\n\
00111 MSG: geometry_msgs/Pose\n\
00112 # A representation of pose in free space, composed of postion and orientation. \n\
00113 Point position\n\
00114 Quaternion orientation\n\
00115 \n\
00116 ================================================================================\n\
00117 MSG: geometry_msgs/Point\n\
00118 # This contains the position of a point in free space\n\
00119 float64 x\n\
00120 float64 y\n\
00121 float64 z\n\
00122 \n\
00123 ================================================================================\n\
00124 MSG: geometry_msgs/Quaternion\n\
00125 # This represents an orientation in free space in quaternion form.\n\
00126 \n\
00127 float64 x\n\
00128 float64 y\n\
00129 float64 z\n\
00130 float64 w\n\
00131 \n\
00132 ================================================================================\n\
00133 MSG: motion_planning_msgs/RobotState\n\
00134 # This message contains information about the robot state, i.e. the positions of its joints and links\n\
00135 sensor_msgs/JointState joint_state\n\
00136 motion_planning_msgs/MultiDOFJointState multi_dof_joint_state\n\
00137 ================================================================================\n\
00138 MSG: sensor_msgs/JointState\n\
00139 # This is a message that holds data to describe the state of a set of torque controlled joints. \n\
00140 #\n\
00141 # The state of each joint (revolute or prismatic) is defined by:\n\
00142 # * the position of the joint (rad or m),\n\
00143 # * the velocity of the joint (rad/s or m/s) and \n\
00144 # * the effort that is applied in the joint (Nm or N).\n\
00145 #\n\
00146 # Each joint is uniquely identified by its name\n\
00147 # The header specifies the time at which the joint states were recorded. All the joint states\n\
00148 # in one message have to be recorded at the same time.\n\
00149 #\n\
00150 # This message consists of a multiple arrays, one for each part of the joint state. \n\
00151 # The goal is to make each of the fields optional. When e.g. your joints have no\n\
00152 # effort associated with them, you can leave the effort array empty. \n\
00153 #\n\
00154 # All arrays in this message should have the same size, or be empty.\n\
00155 # This is the only way to uniquely associate the joint name with the correct\n\
00156 # states.\n\
00157 \n\
00158 \n\
00159 Header header\n\
00160 \n\
00161 string[] name\n\
00162 float64[] position\n\
00163 float64[] velocity\n\
00164 float64[] effort\n\
00165 \n\
00166 ================================================================================\n\
00167 MSG: motion_planning_msgs/MultiDOFJointState\n\
00168 #A representation of a multi-dof joint state\n\
00169 time stamp\n\
00170 string[] joint_names\n\
00171 string[] frame_ids\n\
00172 string[] child_frame_ids\n\
00173 geometry_msgs/Pose[] poses\n\
00174 \n\
00175 "; }
00176 public:
00177 ROS_DEPRECATED static const std::string __s_getMessageDefinition() { return __s_getMessageDefinition_(); }
00178
00179 ROS_DEPRECATED const std::string __getMessageDefinition() const { return __s_getMessageDefinition_(); }
00180
00181 ROS_DEPRECATED virtual uint8_t *serialize(uint8_t *write_ptr, uint32_t seq) const
00182 {
00183 ros::serialization::OStream stream(write_ptr, 1000000000);
00184 ros::serialization::serialize(stream, ik_link_name);
00185 ros::serialization::serialize(stream, pose_stamped);
00186 ros::serialization::serialize(stream, ik_seed_state);
00187 ros::serialization::serialize(stream, robot_state);
00188 return stream.getData();
00189 }
00190
00191 ROS_DEPRECATED virtual uint8_t *deserialize(uint8_t *read_ptr)
00192 {
00193 ros::serialization::IStream stream(read_ptr, 1000000000);
00194 ros::serialization::deserialize(stream, ik_link_name);
00195 ros::serialization::deserialize(stream, pose_stamped);
00196 ros::serialization::deserialize(stream, ik_seed_state);
00197 ros::serialization::deserialize(stream, robot_state);
00198 return stream.getData();
00199 }
00200
00201 ROS_DEPRECATED virtual uint32_t serializationLength() const
00202 {
00203 uint32_t size = 0;
00204 size += ros::serialization::serializationLength(ik_link_name);
00205 size += ros::serialization::serializationLength(pose_stamped);
00206 size += ros::serialization::serializationLength(ik_seed_state);
00207 size += ros::serialization::serializationLength(robot_state);
00208 return size;
00209 }
00210
00211 typedef boost::shared_ptr< ::kinematics_msgs::PositionIKRequest_<ContainerAllocator> > Ptr;
00212 typedef boost::shared_ptr< ::kinematics_msgs::PositionIKRequest_<ContainerAllocator> const> ConstPtr;
00213 };
00214 typedef ::kinematics_msgs::PositionIKRequest_<std::allocator<void> > PositionIKRequest;
00215
00216 typedef boost::shared_ptr< ::kinematics_msgs::PositionIKRequest> PositionIKRequestPtr;
00217 typedef boost::shared_ptr< ::kinematics_msgs::PositionIKRequest const> PositionIKRequestConstPtr;
00218
00219
00220 template<typename ContainerAllocator>
00221 std::ostream& operator<<(std::ostream& s, const ::kinematics_msgs::PositionIKRequest_<ContainerAllocator> & v)
00222 {
00223 ros::message_operations::Printer< ::kinematics_msgs::PositionIKRequest_<ContainerAllocator> >::stream(s, "", v);
00224 return s;}
00225
00226 }
00227
00228 namespace ros
00229 {
00230 namespace message_traits
00231 {
00232 template<class ContainerAllocator>
00233 struct MD5Sum< ::kinematics_msgs::PositionIKRequest_<ContainerAllocator> > {
00234 static const char* value()
00235 {
00236 return "737bb756c6253bdd460b1383d0b12dac";
00237 }
00238
00239 static const char* value(const ::kinematics_msgs::PositionIKRequest_<ContainerAllocator> &) { return value(); }
00240 static const uint64_t static_value1 = 0x737bb756c6253bddULL;
00241 static const uint64_t static_value2 = 0x460b1383d0b12dacULL;
00242 };
00243
00244 template<class ContainerAllocator>
00245 struct DataType< ::kinematics_msgs::PositionIKRequest_<ContainerAllocator> > {
00246 static const char* value()
00247 {
00248 return "kinematics_msgs/PositionIKRequest";
00249 }
00250
00251 static const char* value(const ::kinematics_msgs::PositionIKRequest_<ContainerAllocator> &) { return value(); }
00252 };
00253
00254 template<class ContainerAllocator>
00255 struct Definition< ::kinematics_msgs::PositionIKRequest_<ContainerAllocator> > {
00256 static const char* value()
00257 {
00258 return "# A Position IK request message\n\
00259 # The name of the link for which we are computing IK\n\
00260 string ik_link_name\n\
00261 \n\
00262 # The (stamped) pose of the link\n\
00263 geometry_msgs/PoseStamped pose_stamped\n\
00264 \n\
00265 # A RobotState consisting of hint/seed positions for the IK computation. \n\
00266 # These may be used to seed the IK search. \n\
00267 # The seed state MUST contain state for all joints to be used by the IK solver\n\
00268 # to compute IK. The list of joints that the IK solver deals with can be found using\n\
00269 # the kinematics_msgs/GetKinematicSolverInfo\n\
00270 motion_planning_msgs/RobotState ik_seed_state\n\
00271 \n\
00272 # Additional state information can be provided here to specify the starting positions \n\
00273 # of other joints/links on the robot.\n\
00274 motion_planning_msgs/RobotState robot_state\n\
00275 \n\
00276 ================================================================================\n\
00277 MSG: geometry_msgs/PoseStamped\n\
00278 # A Pose with reference coordinate frame and timestamp\n\
00279 Header header\n\
00280 Pose pose\n\
00281 \n\
00282 ================================================================================\n\
00283 MSG: std_msgs/Header\n\
00284 # Standard metadata for higher-level stamped data types.\n\
00285 # This is generally used to communicate timestamped data \n\
00286 # in a particular coordinate frame.\n\
00287 # \n\
00288 # sequence ID: consecutively increasing ID \n\
00289 uint32 seq\n\
00290 #Two-integer timestamp that is expressed as:\n\
00291 # * stamp.secs: seconds (stamp_secs) since epoch\n\
00292 # * stamp.nsecs: nanoseconds since stamp_secs\n\
00293 # time-handling sugar is provided by the client library\n\
00294 time stamp\n\
00295 #Frame this data is associated with\n\
00296 # 0: no frame\n\
00297 # 1: global frame\n\
00298 string frame_id\n\
00299 \n\
00300 ================================================================================\n\
00301 MSG: geometry_msgs/Pose\n\
00302 # A representation of pose in free space, composed of postion and orientation. \n\
00303 Point position\n\
00304 Quaternion orientation\n\
00305 \n\
00306 ================================================================================\n\
00307 MSG: geometry_msgs/Point\n\
00308 # This contains the position of a point in free space\n\
00309 float64 x\n\
00310 float64 y\n\
00311 float64 z\n\
00312 \n\
00313 ================================================================================\n\
00314 MSG: geometry_msgs/Quaternion\n\
00315 # This represents an orientation in free space in quaternion form.\n\
00316 \n\
00317 float64 x\n\
00318 float64 y\n\
00319 float64 z\n\
00320 float64 w\n\
00321 \n\
00322 ================================================================================\n\
00323 MSG: motion_planning_msgs/RobotState\n\
00324 # This message contains information about the robot state, i.e. the positions of its joints and links\n\
00325 sensor_msgs/JointState joint_state\n\
00326 motion_planning_msgs/MultiDOFJointState multi_dof_joint_state\n\
00327 ================================================================================\n\
00328 MSG: sensor_msgs/JointState\n\
00329 # This is a message that holds data to describe the state of a set of torque controlled joints. \n\
00330 #\n\
00331 # The state of each joint (revolute or prismatic) is defined by:\n\
00332 # * the position of the joint (rad or m),\n\
00333 # * the velocity of the joint (rad/s or m/s) and \n\
00334 # * the effort that is applied in the joint (Nm or N).\n\
00335 #\n\
00336 # Each joint is uniquely identified by its name\n\
00337 # The header specifies the time at which the joint states were recorded. All the joint states\n\
00338 # in one message have to be recorded at the same time.\n\
00339 #\n\
00340 # This message consists of a multiple arrays, one for each part of the joint state. \n\
00341 # The goal is to make each of the fields optional. When e.g. your joints have no\n\
00342 # effort associated with them, you can leave the effort array empty. \n\
00343 #\n\
00344 # All arrays in this message should have the same size, or be empty.\n\
00345 # This is the only way to uniquely associate the joint name with the correct\n\
00346 # states.\n\
00347 \n\
00348 \n\
00349 Header header\n\
00350 \n\
00351 string[] name\n\
00352 float64[] position\n\
00353 float64[] velocity\n\
00354 float64[] effort\n\
00355 \n\
00356 ================================================================================\n\
00357 MSG: motion_planning_msgs/MultiDOFJointState\n\
00358 #A representation of a multi-dof joint state\n\
00359 time stamp\n\
00360 string[] joint_names\n\
00361 string[] frame_ids\n\
00362 string[] child_frame_ids\n\
00363 geometry_msgs/Pose[] poses\n\
00364 \n\
00365 ";
00366 }
00367
00368 static const char* value(const ::kinematics_msgs::PositionIKRequest_<ContainerAllocator> &) { return value(); }
00369 };
00370
00371 }
00372 }
00373
00374 namespace ros
00375 {
00376 namespace serialization
00377 {
00378
00379 template<class ContainerAllocator> struct Serializer< ::kinematics_msgs::PositionIKRequest_<ContainerAllocator> >
00380 {
00381 template<typename Stream, typename T> inline static void allInOne(Stream& stream, T m)
00382 {
00383 stream.next(m.ik_link_name);
00384 stream.next(m.pose_stamped);
00385 stream.next(m.ik_seed_state);
00386 stream.next(m.robot_state);
00387 }
00388
00389 ROS_DECLARE_ALLINONE_SERIALIZER;
00390 };
00391 }
00392 }
00393
00394 namespace ros
00395 {
00396 namespace message_operations
00397 {
00398
00399 template<class ContainerAllocator>
00400 struct Printer< ::kinematics_msgs::PositionIKRequest_<ContainerAllocator> >
00401 {
00402 template<typename Stream> static void stream(Stream& s, const std::string& indent, const ::kinematics_msgs::PositionIKRequest_<ContainerAllocator> & v)
00403 {
00404 s << indent << "ik_link_name: ";
00405 Printer<std::basic_string<char, std::char_traits<char>, typename ContainerAllocator::template rebind<char>::other > >::stream(s, indent + " ", v.ik_link_name);
00406 s << indent << "pose_stamped: ";
00407 s << std::endl;
00408 Printer< ::geometry_msgs::PoseStamped_<ContainerAllocator> >::stream(s, indent + " ", v.pose_stamped);
00409 s << indent << "ik_seed_state: ";
00410 s << std::endl;
00411 Printer< ::motion_planning_msgs::RobotState_<ContainerAllocator> >::stream(s, indent + " ", v.ik_seed_state);
00412 s << indent << "robot_state: ";
00413 s << std::endl;
00414 Printer< ::motion_planning_msgs::RobotState_<ContainerAllocator> >::stream(s, indent + " ", v.robot_state);
00415 }
00416 };
00417
00418
00419 }
00420 }
00421
00422 #endif // KINEMATICS_MSGS_MESSAGE_POSITIONIKREQUEST_H
00423