00001
00002 #ifndef CHOMP_MOTION_PLANNER_SERVICE_GETCHOMPCOLLISIONCOST_H
00003 #define CHOMP_MOTION_PLANNER_SERVICE_GETCHOMPCOLLISIONCOST_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 "ros/service_traits.h"
00014
00015 #include "motion_planning_msgs/RobotState.h"
00016
00017
00018 #include "chomp_motion_planner/JointVelocityArray.h"
00019
00020 namespace chomp_motion_planner
00021 {
00022 template <class ContainerAllocator>
00023 struct GetChompCollisionCostRequest_ : public ros::Message
00024 {
00025 typedef GetChompCollisionCostRequest_<ContainerAllocator> Type;
00026
00027 GetChompCollisionCostRequest_()
00028 : links()
00029 , state()
00030 {
00031 }
00032
00033 GetChompCollisionCostRequest_(const ContainerAllocator& _alloc)
00034 : links(_alloc)
00035 , state(_alloc)
00036 {
00037 }
00038
00039 typedef std::vector<std::basic_string<char, std::char_traits<char>, typename ContainerAllocator::template rebind<char>::other > , typename ContainerAllocator::template rebind<std::basic_string<char, std::char_traits<char>, typename ContainerAllocator::template rebind<char>::other > >::other > _links_type;
00040 std::vector<std::basic_string<char, std::char_traits<char>, typename ContainerAllocator::template rebind<char>::other > , typename ContainerAllocator::template rebind<std::basic_string<char, std::char_traits<char>, typename ContainerAllocator::template rebind<char>::other > >::other > links;
00041
00042 typedef ::motion_planning_msgs::RobotState_<ContainerAllocator> _state_type;
00043 ::motion_planning_msgs::RobotState_<ContainerAllocator> state;
00044
00045
00046 ROS_DEPRECATED uint32_t get_links_size() const { return (uint32_t)links.size(); }
00047 ROS_DEPRECATED void set_links_size(uint32_t size) { links.resize((size_t)size); }
00048 ROS_DEPRECATED void get_links_vec(std::vector<std::basic_string<char, std::char_traits<char>, typename ContainerAllocator::template rebind<char>::other > , typename ContainerAllocator::template rebind<std::basic_string<char, std::char_traits<char>, typename ContainerAllocator::template rebind<char>::other > >::other > & vec) const { vec = this->links; }
00049 ROS_DEPRECATED void set_links_vec(const std::vector<std::basic_string<char, std::char_traits<char>, typename ContainerAllocator::template rebind<char>::other > , typename ContainerAllocator::template rebind<std::basic_string<char, std::char_traits<char>, typename ContainerAllocator::template rebind<char>::other > >::other > & vec) { this->links = vec; }
00050 private:
00051 static const char* __s_getDataType_() { return "chomp_motion_planner/GetChompCollisionCostRequest"; }
00052 public:
00053 ROS_DEPRECATED static const std::string __s_getDataType() { return __s_getDataType_(); }
00054
00055 ROS_DEPRECATED const std::string __getDataType() const { return __s_getDataType_(); }
00056
00057 private:
00058 static const char* __s_getMD5Sum_() { return "acabb6bac55143035edcf10159a5b130"; }
00059 public:
00060 ROS_DEPRECATED static const std::string __s_getMD5Sum() { return __s_getMD5Sum_(); }
00061
00062 ROS_DEPRECATED const std::string __getMD5Sum() const { return __s_getMD5Sum_(); }
00063
00064 private:
00065 static const char* __s_getServerMD5Sum_() { return "484cb732bcae020fb22ff8ac89a6ff9f"; }
00066 public:
00067 ROS_DEPRECATED static const std::string __s_getServerMD5Sum() { return __s_getServerMD5Sum_(); }
00068
00069 ROS_DEPRECATED const std::string __getServerMD5Sum() const { return __s_getServerMD5Sum_(); }
00070
00071 private:
00072 static const char* __s_getMessageDefinition_() { return "\n\
00073 string[] links\n\
00074 \n\
00075 \n\
00076 \n\
00077 motion_planning_msgs/RobotState state\n\
00078 \n\
00079 \n\
00080 ================================================================================\n\
00081 MSG: motion_planning_msgs/RobotState\n\
00082 # This message contains information about the robot state, i.e. the positions of its joints and links\n\
00083 sensor_msgs/JointState joint_state\n\
00084 motion_planning_msgs/MultiDOFJointState multi_dof_joint_state\n\
00085 ================================================================================\n\
00086 MSG: sensor_msgs/JointState\n\
00087 # This is a message that holds data to describe the state of a set of torque controlled joints. \n\
00088 #\n\
00089 # The state of each joint (revolute or prismatic) is defined by:\n\
00090 # * the position of the joint (rad or m),\n\
00091 # * the velocity of the joint (rad/s or m/s) and \n\
00092 # * the effort that is applied in the joint (Nm or N).\n\
00093 #\n\
00094 # Each joint is uniquely identified by its name\n\
00095 # The header specifies the time at which the joint states were recorded. All the joint states\n\
00096 # in one message have to be recorded at the same time.\n\
00097 #\n\
00098 # This message consists of a multiple arrays, one for each part of the joint state. \n\
00099 # The goal is to make each of the fields optional. When e.g. your joints have no\n\
00100 # effort associated with them, you can leave the effort array empty. \n\
00101 #\n\
00102 # All arrays in this message should have the same size, or be empty.\n\
00103 # This is the only way to uniquely associate the joint name with the correct\n\
00104 # states.\n\
00105 \n\
00106 \n\
00107 Header header\n\
00108 \n\
00109 string[] name\n\
00110 float64[] position\n\
00111 float64[] velocity\n\
00112 float64[] effort\n\
00113 \n\
00114 ================================================================================\n\
00115 MSG: std_msgs/Header\n\
00116 # Standard metadata for higher-level stamped data types.\n\
00117 # This is generally used to communicate timestamped data \n\
00118 # in a particular coordinate frame.\n\
00119 # \n\
00120 # sequence ID: consecutively increasing ID \n\
00121 uint32 seq\n\
00122 #Two-integer timestamp that is expressed as:\n\
00123 # * stamp.secs: seconds (stamp_secs) since epoch\n\
00124 # * stamp.nsecs: nanoseconds since stamp_secs\n\
00125 # time-handling sugar is provided by the client library\n\
00126 time stamp\n\
00127 #Frame this data is associated with\n\
00128 # 0: no frame\n\
00129 # 1: global frame\n\
00130 string frame_id\n\
00131 \n\
00132 ================================================================================\n\
00133 MSG: motion_planning_msgs/MultiDOFJointState\n\
00134 #A representation of a multi-dof joint state\n\
00135 time stamp\n\
00136 string[] joint_names\n\
00137 string[] frame_ids\n\
00138 string[] child_frame_ids\n\
00139 geometry_msgs/Pose[] poses\n\
00140 \n\
00141 ================================================================================\n\
00142 MSG: geometry_msgs/Pose\n\
00143 # A representation of pose in free space, composed of postion and orientation. \n\
00144 Point position\n\
00145 Quaternion orientation\n\
00146 \n\
00147 ================================================================================\n\
00148 MSG: geometry_msgs/Point\n\
00149 # This contains the position of a point in free space\n\
00150 float64 x\n\
00151 float64 y\n\
00152 float64 z\n\
00153 \n\
00154 ================================================================================\n\
00155 MSG: geometry_msgs/Quaternion\n\
00156 # This represents an orientation in free space in quaternion form.\n\
00157 \n\
00158 float64 x\n\
00159 float64 y\n\
00160 float64 z\n\
00161 float64 w\n\
00162 \n\
00163 "; }
00164 public:
00165 ROS_DEPRECATED static const std::string __s_getMessageDefinition() { return __s_getMessageDefinition_(); }
00166
00167 ROS_DEPRECATED const std::string __getMessageDefinition() const { return __s_getMessageDefinition_(); }
00168
00169 ROS_DEPRECATED virtual uint8_t *serialize(uint8_t *write_ptr, uint32_t seq) const
00170 {
00171 ros::serialization::OStream stream(write_ptr, 1000000000);
00172 ros::serialization::serialize(stream, links);
00173 ros::serialization::serialize(stream, state);
00174 return stream.getData();
00175 }
00176
00177 ROS_DEPRECATED virtual uint8_t *deserialize(uint8_t *read_ptr)
00178 {
00179 ros::serialization::IStream stream(read_ptr, 1000000000);
00180 ros::serialization::deserialize(stream, links);
00181 ros::serialization::deserialize(stream, state);
00182 return stream.getData();
00183 }
00184
00185 ROS_DEPRECATED virtual uint32_t serializationLength() const
00186 {
00187 uint32_t size = 0;
00188 size += ros::serialization::serializationLength(links);
00189 size += ros::serialization::serializationLength(state);
00190 return size;
00191 }
00192
00193 typedef boost::shared_ptr< ::chomp_motion_planner::GetChompCollisionCostRequest_<ContainerAllocator> > Ptr;
00194 typedef boost::shared_ptr< ::chomp_motion_planner::GetChompCollisionCostRequest_<ContainerAllocator> const> ConstPtr;
00195 };
00196 typedef ::chomp_motion_planner::GetChompCollisionCostRequest_<std::allocator<void> > GetChompCollisionCostRequest;
00197
00198 typedef boost::shared_ptr< ::chomp_motion_planner::GetChompCollisionCostRequest> GetChompCollisionCostRequestPtr;
00199 typedef boost::shared_ptr< ::chomp_motion_planner::GetChompCollisionCostRequest const> GetChompCollisionCostRequestConstPtr;
00200
00201
00202 template <class ContainerAllocator>
00203 struct GetChompCollisionCostResponse_ : public ros::Message
00204 {
00205 typedef GetChompCollisionCostResponse_<ContainerAllocator> Type;
00206
00207 GetChompCollisionCostResponse_()
00208 : costs()
00209 , gradient()
00210 , in_collision(0)
00211 {
00212 }
00213
00214 GetChompCollisionCostResponse_(const ContainerAllocator& _alloc)
00215 : costs(_alloc)
00216 , gradient(_alloc)
00217 , in_collision(0)
00218 {
00219 }
00220
00221 typedef std::vector<double, typename ContainerAllocator::template rebind<double>::other > _costs_type;
00222 std::vector<double, typename ContainerAllocator::template rebind<double>::other > costs;
00223
00224 typedef std::vector< ::chomp_motion_planner::JointVelocityArray_<ContainerAllocator> , typename ContainerAllocator::template rebind< ::chomp_motion_planner::JointVelocityArray_<ContainerAllocator> >::other > _gradient_type;
00225 std::vector< ::chomp_motion_planner::JointVelocityArray_<ContainerAllocator> , typename ContainerAllocator::template rebind< ::chomp_motion_planner::JointVelocityArray_<ContainerAllocator> >::other > gradient;
00226
00227 typedef uint8_t _in_collision_type;
00228 uint8_t in_collision;
00229
00230
00231 ROS_DEPRECATED uint32_t get_costs_size() const { return (uint32_t)costs.size(); }
00232 ROS_DEPRECATED void set_costs_size(uint32_t size) { costs.resize((size_t)size); }
00233 ROS_DEPRECATED void get_costs_vec(std::vector<double, typename ContainerAllocator::template rebind<double>::other > & vec) const { vec = this->costs; }
00234 ROS_DEPRECATED void set_costs_vec(const std::vector<double, typename ContainerAllocator::template rebind<double>::other > & vec) { this->costs = vec; }
00235 ROS_DEPRECATED uint32_t get_gradient_size() const { return (uint32_t)gradient.size(); }
00236 ROS_DEPRECATED void set_gradient_size(uint32_t size) { gradient.resize((size_t)size); }
00237 ROS_DEPRECATED void get_gradient_vec(std::vector< ::chomp_motion_planner::JointVelocityArray_<ContainerAllocator> , typename ContainerAllocator::template rebind< ::chomp_motion_planner::JointVelocityArray_<ContainerAllocator> >::other > & vec) const { vec = this->gradient; }
00238 ROS_DEPRECATED void set_gradient_vec(const std::vector< ::chomp_motion_planner::JointVelocityArray_<ContainerAllocator> , typename ContainerAllocator::template rebind< ::chomp_motion_planner::JointVelocityArray_<ContainerAllocator> >::other > & vec) { this->gradient = vec; }
00239 private:
00240 static const char* __s_getDataType_() { return "chomp_motion_planner/GetChompCollisionCostResponse"; }
00241 public:
00242 ROS_DEPRECATED static const std::string __s_getDataType() { return __s_getDataType_(); }
00243
00244 ROS_DEPRECATED const std::string __getDataType() const { return __s_getDataType_(); }
00245
00246 private:
00247 static const char* __s_getMD5Sum_() { return "bed009b7d4d6620621ef40430dbc9236"; }
00248 public:
00249 ROS_DEPRECATED static const std::string __s_getMD5Sum() { return __s_getMD5Sum_(); }
00250
00251 ROS_DEPRECATED const std::string __getMD5Sum() const { return __s_getMD5Sum_(); }
00252
00253 private:
00254 static const char* __s_getServerMD5Sum_() { return "484cb732bcae020fb22ff8ac89a6ff9f"; }
00255 public:
00256 ROS_DEPRECATED static const std::string __s_getServerMD5Sum() { return __s_getServerMD5Sum_(); }
00257
00258 ROS_DEPRECATED const std::string __getServerMD5Sum() const { return __s_getServerMD5Sum_(); }
00259
00260 private:
00261 static const char* __s_getMessageDefinition_() { return "\n\
00262 \n\
00263 float64[] costs\n\
00264 \n\
00265 \n\
00266 \n\
00267 \n\
00268 JointVelocityArray[] gradient\n\
00269 \n\
00270 \n\
00271 uint8 in_collision\n\
00272 \n\
00273 \n\
00274 ================================================================================\n\
00275 MSG: chomp_motion_planner/JointVelocityArray\n\
00276 # A list of joint names\n\
00277 string[] joint_names\n\
00278 \n\
00279 # Velocity for each of the above joints\n\
00280 float64[] velocities\n\
00281 \n\
00282 "; }
00283 public:
00284 ROS_DEPRECATED static const std::string __s_getMessageDefinition() { return __s_getMessageDefinition_(); }
00285
00286 ROS_DEPRECATED const std::string __getMessageDefinition() const { return __s_getMessageDefinition_(); }
00287
00288 ROS_DEPRECATED virtual uint8_t *serialize(uint8_t *write_ptr, uint32_t seq) const
00289 {
00290 ros::serialization::OStream stream(write_ptr, 1000000000);
00291 ros::serialization::serialize(stream, costs);
00292 ros::serialization::serialize(stream, gradient);
00293 ros::serialization::serialize(stream, in_collision);
00294 return stream.getData();
00295 }
00296
00297 ROS_DEPRECATED virtual uint8_t *deserialize(uint8_t *read_ptr)
00298 {
00299 ros::serialization::IStream stream(read_ptr, 1000000000);
00300 ros::serialization::deserialize(stream, costs);
00301 ros::serialization::deserialize(stream, gradient);
00302 ros::serialization::deserialize(stream, in_collision);
00303 return stream.getData();
00304 }
00305
00306 ROS_DEPRECATED virtual uint32_t serializationLength() const
00307 {
00308 uint32_t size = 0;
00309 size += ros::serialization::serializationLength(costs);
00310 size += ros::serialization::serializationLength(gradient);
00311 size += ros::serialization::serializationLength(in_collision);
00312 return size;
00313 }
00314
00315 typedef boost::shared_ptr< ::chomp_motion_planner::GetChompCollisionCostResponse_<ContainerAllocator> > Ptr;
00316 typedef boost::shared_ptr< ::chomp_motion_planner::GetChompCollisionCostResponse_<ContainerAllocator> const> ConstPtr;
00317 };
00318 typedef ::chomp_motion_planner::GetChompCollisionCostResponse_<std::allocator<void> > GetChompCollisionCostResponse;
00319
00320 typedef boost::shared_ptr< ::chomp_motion_planner::GetChompCollisionCostResponse> GetChompCollisionCostResponsePtr;
00321 typedef boost::shared_ptr< ::chomp_motion_planner::GetChompCollisionCostResponse const> GetChompCollisionCostResponseConstPtr;
00322
00323 struct GetChompCollisionCost
00324 {
00325
00326 typedef GetChompCollisionCostRequest Request;
00327 typedef GetChompCollisionCostResponse Response;
00328 Request request;
00329 Response response;
00330
00331 typedef Request RequestType;
00332 typedef Response ResponseType;
00333 };
00334 }
00335
00336 namespace ros
00337 {
00338 namespace message_traits
00339 {
00340 template<class ContainerAllocator>
00341 struct MD5Sum< ::chomp_motion_planner::GetChompCollisionCostRequest_<ContainerAllocator> > {
00342 static const char* value()
00343 {
00344 return "acabb6bac55143035edcf10159a5b130";
00345 }
00346
00347 static const char* value(const ::chomp_motion_planner::GetChompCollisionCostRequest_<ContainerAllocator> &) { return value(); }
00348 static const uint64_t static_value1 = 0xacabb6bac5514303ULL;
00349 static const uint64_t static_value2 = 0x5edcf10159a5b130ULL;
00350 };
00351
00352 template<class ContainerAllocator>
00353 struct DataType< ::chomp_motion_planner::GetChompCollisionCostRequest_<ContainerAllocator> > {
00354 static const char* value()
00355 {
00356 return "chomp_motion_planner/GetChompCollisionCostRequest";
00357 }
00358
00359 static const char* value(const ::chomp_motion_planner::GetChompCollisionCostRequest_<ContainerAllocator> &) { return value(); }
00360 };
00361
00362 template<class ContainerAllocator>
00363 struct Definition< ::chomp_motion_planner::GetChompCollisionCostRequest_<ContainerAllocator> > {
00364 static const char* value()
00365 {
00366 return "\n\
00367 string[] links\n\
00368 \n\
00369 \n\
00370 \n\
00371 motion_planning_msgs/RobotState state\n\
00372 \n\
00373 \n\
00374 ================================================================================\n\
00375 MSG: motion_planning_msgs/RobotState\n\
00376 # This message contains information about the robot state, i.e. the positions of its joints and links\n\
00377 sensor_msgs/JointState joint_state\n\
00378 motion_planning_msgs/MultiDOFJointState multi_dof_joint_state\n\
00379 ================================================================================\n\
00380 MSG: sensor_msgs/JointState\n\
00381 # This is a message that holds data to describe the state of a set of torque controlled joints. \n\
00382 #\n\
00383 # The state of each joint (revolute or prismatic) is defined by:\n\
00384 # * the position of the joint (rad or m),\n\
00385 # * the velocity of the joint (rad/s or m/s) and \n\
00386 # * the effort that is applied in the joint (Nm or N).\n\
00387 #\n\
00388 # Each joint is uniquely identified by its name\n\
00389 # The header specifies the time at which the joint states were recorded. All the joint states\n\
00390 # in one message have to be recorded at the same time.\n\
00391 #\n\
00392 # This message consists of a multiple arrays, one for each part of the joint state. \n\
00393 # The goal is to make each of the fields optional. When e.g. your joints have no\n\
00394 # effort associated with them, you can leave the effort array empty. \n\
00395 #\n\
00396 # All arrays in this message should have the same size, or be empty.\n\
00397 # This is the only way to uniquely associate the joint name with the correct\n\
00398 # states.\n\
00399 \n\
00400 \n\
00401 Header header\n\
00402 \n\
00403 string[] name\n\
00404 float64[] position\n\
00405 float64[] velocity\n\
00406 float64[] effort\n\
00407 \n\
00408 ================================================================================\n\
00409 MSG: std_msgs/Header\n\
00410 # Standard metadata for higher-level stamped data types.\n\
00411 # This is generally used to communicate timestamped data \n\
00412 # in a particular coordinate frame.\n\
00413 # \n\
00414 # sequence ID: consecutively increasing ID \n\
00415 uint32 seq\n\
00416 #Two-integer timestamp that is expressed as:\n\
00417 # * stamp.secs: seconds (stamp_secs) since epoch\n\
00418 # * stamp.nsecs: nanoseconds since stamp_secs\n\
00419 # time-handling sugar is provided by the client library\n\
00420 time stamp\n\
00421 #Frame this data is associated with\n\
00422 # 0: no frame\n\
00423 # 1: global frame\n\
00424 string frame_id\n\
00425 \n\
00426 ================================================================================\n\
00427 MSG: motion_planning_msgs/MultiDOFJointState\n\
00428 #A representation of a multi-dof joint state\n\
00429 time stamp\n\
00430 string[] joint_names\n\
00431 string[] frame_ids\n\
00432 string[] child_frame_ids\n\
00433 geometry_msgs/Pose[] poses\n\
00434 \n\
00435 ================================================================================\n\
00436 MSG: geometry_msgs/Pose\n\
00437 # A representation of pose in free space, composed of postion and orientation. \n\
00438 Point position\n\
00439 Quaternion orientation\n\
00440 \n\
00441 ================================================================================\n\
00442 MSG: geometry_msgs/Point\n\
00443 # This contains the position of a point in free space\n\
00444 float64 x\n\
00445 float64 y\n\
00446 float64 z\n\
00447 \n\
00448 ================================================================================\n\
00449 MSG: geometry_msgs/Quaternion\n\
00450 # This represents an orientation in free space in quaternion form.\n\
00451 \n\
00452 float64 x\n\
00453 float64 y\n\
00454 float64 z\n\
00455 float64 w\n\
00456 \n\
00457 ";
00458 }
00459
00460 static const char* value(const ::chomp_motion_planner::GetChompCollisionCostRequest_<ContainerAllocator> &) { return value(); }
00461 };
00462
00463 }
00464 }
00465
00466
00467 namespace ros
00468 {
00469 namespace message_traits
00470 {
00471 template<class ContainerAllocator>
00472 struct MD5Sum< ::chomp_motion_planner::GetChompCollisionCostResponse_<ContainerAllocator> > {
00473 static const char* value()
00474 {
00475 return "bed009b7d4d6620621ef40430dbc9236";
00476 }
00477
00478 static const char* value(const ::chomp_motion_planner::GetChompCollisionCostResponse_<ContainerAllocator> &) { return value(); }
00479 static const uint64_t static_value1 = 0xbed009b7d4d66206ULL;
00480 static const uint64_t static_value2 = 0x21ef40430dbc9236ULL;
00481 };
00482
00483 template<class ContainerAllocator>
00484 struct DataType< ::chomp_motion_planner::GetChompCollisionCostResponse_<ContainerAllocator> > {
00485 static const char* value()
00486 {
00487 return "chomp_motion_planner/GetChompCollisionCostResponse";
00488 }
00489
00490 static const char* value(const ::chomp_motion_planner::GetChompCollisionCostResponse_<ContainerAllocator> &) { return value(); }
00491 };
00492
00493 template<class ContainerAllocator>
00494 struct Definition< ::chomp_motion_planner::GetChompCollisionCostResponse_<ContainerAllocator> > {
00495 static const char* value()
00496 {
00497 return "\n\
00498 \n\
00499 float64[] costs\n\
00500 \n\
00501 \n\
00502 \n\
00503 \n\
00504 JointVelocityArray[] gradient\n\
00505 \n\
00506 \n\
00507 uint8 in_collision\n\
00508 \n\
00509 \n\
00510 ================================================================================\n\
00511 MSG: chomp_motion_planner/JointVelocityArray\n\
00512 # A list of joint names\n\
00513 string[] joint_names\n\
00514 \n\
00515 # Velocity for each of the above joints\n\
00516 float64[] velocities\n\
00517 \n\
00518 ";
00519 }
00520
00521 static const char* value(const ::chomp_motion_planner::GetChompCollisionCostResponse_<ContainerAllocator> &) { return value(); }
00522 };
00523
00524 }
00525 }
00526
00527 namespace ros
00528 {
00529 namespace serialization
00530 {
00531
00532 template<class ContainerAllocator> struct Serializer< ::chomp_motion_planner::GetChompCollisionCostRequest_<ContainerAllocator> >
00533 {
00534 template<typename Stream, typename T> inline static void allInOne(Stream& stream, T m)
00535 {
00536 stream.next(m.links);
00537 stream.next(m.state);
00538 }
00539
00540 ROS_DECLARE_ALLINONE_SERIALIZER;
00541 };
00542 }
00543 }
00544
00545
00546 namespace ros
00547 {
00548 namespace serialization
00549 {
00550
00551 template<class ContainerAllocator> struct Serializer< ::chomp_motion_planner::GetChompCollisionCostResponse_<ContainerAllocator> >
00552 {
00553 template<typename Stream, typename T> inline static void allInOne(Stream& stream, T m)
00554 {
00555 stream.next(m.costs);
00556 stream.next(m.gradient);
00557 stream.next(m.in_collision);
00558 }
00559
00560 ROS_DECLARE_ALLINONE_SERIALIZER;
00561 };
00562 }
00563 }
00564
00565 namespace ros
00566 {
00567 namespace service_traits
00568 {
00569 template<>
00570 struct MD5Sum<chomp_motion_planner::GetChompCollisionCost> {
00571 static const char* value()
00572 {
00573 return "484cb732bcae020fb22ff8ac89a6ff9f";
00574 }
00575
00576 static const char* value(const chomp_motion_planner::GetChompCollisionCost&) { return value(); }
00577 };
00578
00579 template<>
00580 struct DataType<chomp_motion_planner::GetChompCollisionCost> {
00581 static const char* value()
00582 {
00583 return "chomp_motion_planner/GetChompCollisionCost";
00584 }
00585
00586 static const char* value(const chomp_motion_planner::GetChompCollisionCost&) { return value(); }
00587 };
00588
00589 template<class ContainerAllocator>
00590 struct MD5Sum<chomp_motion_planner::GetChompCollisionCostRequest_<ContainerAllocator> > {
00591 static const char* value()
00592 {
00593 return "484cb732bcae020fb22ff8ac89a6ff9f";
00594 }
00595
00596 static const char* value(const chomp_motion_planner::GetChompCollisionCostRequest_<ContainerAllocator> &) { return value(); }
00597 };
00598
00599 template<class ContainerAllocator>
00600 struct DataType<chomp_motion_planner::GetChompCollisionCostRequest_<ContainerAllocator> > {
00601 static const char* value()
00602 {
00603 return "chomp_motion_planner/GetChompCollisionCost";
00604 }
00605
00606 static const char* value(const chomp_motion_planner::GetChompCollisionCostRequest_<ContainerAllocator> &) { return value(); }
00607 };
00608
00609 template<class ContainerAllocator>
00610 struct MD5Sum<chomp_motion_planner::GetChompCollisionCostResponse_<ContainerAllocator> > {
00611 static const char* value()
00612 {
00613 return "484cb732bcae020fb22ff8ac89a6ff9f";
00614 }
00615
00616 static const char* value(const chomp_motion_planner::GetChompCollisionCostResponse_<ContainerAllocator> &) { return value(); }
00617 };
00618
00619 template<class ContainerAllocator>
00620 struct DataType<chomp_motion_planner::GetChompCollisionCostResponse_<ContainerAllocator> > {
00621 static const char* value()
00622 {
00623 return "chomp_motion_planner/GetChompCollisionCost";
00624 }
00625
00626 static const char* value(const chomp_motion_planner::GetChompCollisionCostResponse_<ContainerAllocator> &) { return value(); }
00627 };
00628
00629 }
00630 }
00631
00632 #endif // CHOMP_MOTION_PLANNER_SERVICE_GETCHOMPCOLLISIONCOST_H
00633