Go to the documentation of this file.00001
00002 #ifndef CHOMP_MOTION_PLANNER_SERVICE_GETSTATECOST_H
00003 #define CHOMP_MOTION_PLANNER_SERVICE_GETSTATECOST_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 "ros/service_traits.h"
00018
00019 #include "arm_navigation_msgs/RobotState.h"
00020
00021
00022
00023 namespace chomp_motion_planner
00024 {
00025 template <class ContainerAllocator>
00026 struct GetStateCostRequest_ {
00027 typedef GetStateCostRequest_<ContainerAllocator> Type;
00028
00029 GetStateCostRequest_()
00030 : link_names()
00031 , robot_state()
00032 {
00033 }
00034
00035 GetStateCostRequest_(const ContainerAllocator& _alloc)
00036 : link_names(_alloc)
00037 , robot_state(_alloc)
00038 {
00039 }
00040
00041 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 > _link_names_type;
00042 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 > link_names;
00043
00044 typedef ::arm_navigation_msgs::RobotState_<ContainerAllocator> _robot_state_type;
00045 ::arm_navigation_msgs::RobotState_<ContainerAllocator> robot_state;
00046
00047
00048 typedef boost::shared_ptr< ::chomp_motion_planner::GetStateCostRequest_<ContainerAllocator> > Ptr;
00049 typedef boost::shared_ptr< ::chomp_motion_planner::GetStateCostRequest_<ContainerAllocator> const> ConstPtr;
00050 boost::shared_ptr<std::map<std::string, std::string> > __connection_header;
00051 };
00052 typedef ::chomp_motion_planner::GetStateCostRequest_<std::allocator<void> > GetStateCostRequest;
00053
00054 typedef boost::shared_ptr< ::chomp_motion_planner::GetStateCostRequest> GetStateCostRequestPtr;
00055 typedef boost::shared_ptr< ::chomp_motion_planner::GetStateCostRequest const> GetStateCostRequestConstPtr;
00056
00057
00058 template <class ContainerAllocator>
00059 struct GetStateCostResponse_ {
00060 typedef GetStateCostResponse_<ContainerAllocator> Type;
00061
00062 GetStateCostResponse_()
00063 : valid(false)
00064 , costs()
00065 {
00066 }
00067
00068 GetStateCostResponse_(const ContainerAllocator& _alloc)
00069 : valid(false)
00070 , costs(_alloc)
00071 {
00072 }
00073
00074 typedef uint8_t _valid_type;
00075 uint8_t valid;
00076
00077 typedef std::vector<double, typename ContainerAllocator::template rebind<double>::other > _costs_type;
00078 std::vector<double, typename ContainerAllocator::template rebind<double>::other > costs;
00079
00080
00081 typedef boost::shared_ptr< ::chomp_motion_planner::GetStateCostResponse_<ContainerAllocator> > Ptr;
00082 typedef boost::shared_ptr< ::chomp_motion_planner::GetStateCostResponse_<ContainerAllocator> const> ConstPtr;
00083 boost::shared_ptr<std::map<std::string, std::string> > __connection_header;
00084 };
00085 typedef ::chomp_motion_planner::GetStateCostResponse_<std::allocator<void> > GetStateCostResponse;
00086
00087 typedef boost::shared_ptr< ::chomp_motion_planner::GetStateCostResponse> GetStateCostResponsePtr;
00088 typedef boost::shared_ptr< ::chomp_motion_planner::GetStateCostResponse const> GetStateCostResponseConstPtr;
00089
00090 struct GetStateCost
00091 {
00092
00093 typedef GetStateCostRequest Request;
00094 typedef GetStateCostResponse Response;
00095 Request request;
00096 Response response;
00097
00098 typedef Request RequestType;
00099 typedef Response ResponseType;
00100 };
00101 }
00102
00103 namespace ros
00104 {
00105 namespace message_traits
00106 {
00107 template<class ContainerAllocator> struct IsMessage< ::chomp_motion_planner::GetStateCostRequest_<ContainerAllocator> > : public TrueType {};
00108 template<class ContainerAllocator> struct IsMessage< ::chomp_motion_planner::GetStateCostRequest_<ContainerAllocator> const> : public TrueType {};
00109 template<class ContainerAllocator>
00110 struct MD5Sum< ::chomp_motion_planner::GetStateCostRequest_<ContainerAllocator> > {
00111 static const char* value()
00112 {
00113 return "8eb8c1ec9dda8058aa5e5d82c1d8cda6";
00114 }
00115
00116 static const char* value(const ::chomp_motion_planner::GetStateCostRequest_<ContainerAllocator> &) { return value(); }
00117 static const uint64_t static_value1 = 0x8eb8c1ec9dda8058ULL;
00118 static const uint64_t static_value2 = 0xaa5e5d82c1d8cda6ULL;
00119 };
00120
00121 template<class ContainerAllocator>
00122 struct DataType< ::chomp_motion_planner::GetStateCostRequest_<ContainerAllocator> > {
00123 static const char* value()
00124 {
00125 return "chomp_motion_planner/GetStateCostRequest";
00126 }
00127
00128 static const char* value(const ::chomp_motion_planner::GetStateCostRequest_<ContainerAllocator> &) { return value(); }
00129 };
00130
00131 template<class ContainerAllocator>
00132 struct Definition< ::chomp_motion_planner::GetStateCostRequest_<ContainerAllocator> > {
00133 static const char* value()
00134 {
00135 return "\n\
00136 \n\
00137 \n\
00138 string[] link_names\n\
00139 \n\
00140 arm_navigation_msgs/RobotState robot_state\n\
00141 \n\
00142 ================================================================================\n\
00143 MSG: arm_navigation_msgs/RobotState\n\
00144 # This message contains information about the robot state, i.e. the positions of its joints and links\n\
00145 sensor_msgs/JointState joint_state\n\
00146 arm_navigation_msgs/MultiDOFJointState multi_dof_joint_state\n\
00147 \n\
00148 ================================================================================\n\
00149 MSG: sensor_msgs/JointState\n\
00150 # This is a message that holds data to describe the state of a set of torque controlled joints. \n\
00151 #\n\
00152 # The state of each joint (revolute or prismatic) is defined by:\n\
00153 # * the position of the joint (rad or m),\n\
00154 # * the velocity of the joint (rad/s or m/s) and \n\
00155 # * the effort that is applied in the joint (Nm or N).\n\
00156 #\n\
00157 # Each joint is uniquely identified by its name\n\
00158 # The header specifies the time at which the joint states were recorded. All the joint states\n\
00159 # in one message have to be recorded at the same time.\n\
00160 #\n\
00161 # This message consists of a multiple arrays, one for each part of the joint state. \n\
00162 # The goal is to make each of the fields optional. When e.g. your joints have no\n\
00163 # effort associated with them, you can leave the effort array empty. \n\
00164 #\n\
00165 # All arrays in this message should have the same size, or be empty.\n\
00166 # This is the only way to uniquely associate the joint name with the correct\n\
00167 # states.\n\
00168 \n\
00169 \n\
00170 Header header\n\
00171 \n\
00172 string[] name\n\
00173 float64[] position\n\
00174 float64[] velocity\n\
00175 float64[] effort\n\
00176 \n\
00177 ================================================================================\n\
00178 MSG: std_msgs/Header\n\
00179 # Standard metadata for higher-level stamped data types.\n\
00180 # This is generally used to communicate timestamped data \n\
00181 # in a particular coordinate frame.\n\
00182 # \n\
00183 # sequence ID: consecutively increasing ID \n\
00184 uint32 seq\n\
00185 #Two-integer timestamp that is expressed as:\n\
00186 # * stamp.secs: seconds (stamp_secs) since epoch\n\
00187 # * stamp.nsecs: nanoseconds since stamp_secs\n\
00188 # time-handling sugar is provided by the client library\n\
00189 time stamp\n\
00190 #Frame this data is associated with\n\
00191 # 0: no frame\n\
00192 # 1: global frame\n\
00193 string frame_id\n\
00194 \n\
00195 ================================================================================\n\
00196 MSG: arm_navigation_msgs/MultiDOFJointState\n\
00197 #A representation of a multi-dof joint state\n\
00198 time stamp\n\
00199 string[] joint_names\n\
00200 string[] frame_ids\n\
00201 string[] child_frame_ids\n\
00202 geometry_msgs/Pose[] poses\n\
00203 \n\
00204 ================================================================================\n\
00205 MSG: geometry_msgs/Pose\n\
00206 # A representation of pose in free space, composed of postion and orientation. \n\
00207 Point position\n\
00208 Quaternion orientation\n\
00209 \n\
00210 ================================================================================\n\
00211 MSG: geometry_msgs/Point\n\
00212 # This contains the position of a point in free space\n\
00213 float64 x\n\
00214 float64 y\n\
00215 float64 z\n\
00216 \n\
00217 ================================================================================\n\
00218 MSG: geometry_msgs/Quaternion\n\
00219 # This represents an orientation in free space in quaternion form.\n\
00220 \n\
00221 float64 x\n\
00222 float64 y\n\
00223 float64 z\n\
00224 float64 w\n\
00225 \n\
00226 ";
00227 }
00228
00229 static const char* value(const ::chomp_motion_planner::GetStateCostRequest_<ContainerAllocator> &) { return value(); }
00230 };
00231
00232 }
00233 }
00234
00235
00236 namespace ros
00237 {
00238 namespace message_traits
00239 {
00240 template<class ContainerAllocator> struct IsMessage< ::chomp_motion_planner::GetStateCostResponse_<ContainerAllocator> > : public TrueType {};
00241 template<class ContainerAllocator> struct IsMessage< ::chomp_motion_planner::GetStateCostResponse_<ContainerAllocator> const> : public TrueType {};
00242 template<class ContainerAllocator>
00243 struct MD5Sum< ::chomp_motion_planner::GetStateCostResponse_<ContainerAllocator> > {
00244 static const char* value()
00245 {
00246 return "125a150f1be009a543837c8732501336";
00247 }
00248
00249 static const char* value(const ::chomp_motion_planner::GetStateCostResponse_<ContainerAllocator> &) { return value(); }
00250 static const uint64_t static_value1 = 0x125a150f1be009a5ULL;
00251 static const uint64_t static_value2 = 0x43837c8732501336ULL;
00252 };
00253
00254 template<class ContainerAllocator>
00255 struct DataType< ::chomp_motion_planner::GetStateCostResponse_<ContainerAllocator> > {
00256 static const char* value()
00257 {
00258 return "chomp_motion_planner/GetStateCostResponse";
00259 }
00260
00261 static const char* value(const ::chomp_motion_planner::GetStateCostResponse_<ContainerAllocator> &) { return value(); }
00262 };
00263
00264 template<class ContainerAllocator>
00265 struct Definition< ::chomp_motion_planner::GetStateCostResponse_<ContainerAllocator> > {
00266 static const char* value()
00267 {
00268 return "\n\
00269 bool valid\n\
00270 \n\
00271 float64[] costs\n\
00272 \n\
00273 \n\
00274 ";
00275 }
00276
00277 static const char* value(const ::chomp_motion_planner::GetStateCostResponse_<ContainerAllocator> &) { return value(); }
00278 };
00279
00280 }
00281 }
00282
00283 namespace ros
00284 {
00285 namespace serialization
00286 {
00287
00288 template<class ContainerAllocator> struct Serializer< ::chomp_motion_planner::GetStateCostRequest_<ContainerAllocator> >
00289 {
00290 template<typename Stream, typename T> inline static void allInOne(Stream& stream, T m)
00291 {
00292 stream.next(m.link_names);
00293 stream.next(m.robot_state);
00294 }
00295
00296 ROS_DECLARE_ALLINONE_SERIALIZER;
00297 };
00298 }
00299 }
00300
00301
00302 namespace ros
00303 {
00304 namespace serialization
00305 {
00306
00307 template<class ContainerAllocator> struct Serializer< ::chomp_motion_planner::GetStateCostResponse_<ContainerAllocator> >
00308 {
00309 template<typename Stream, typename T> inline static void allInOne(Stream& stream, T m)
00310 {
00311 stream.next(m.valid);
00312 stream.next(m.costs);
00313 }
00314
00315 ROS_DECLARE_ALLINONE_SERIALIZER;
00316 };
00317 }
00318 }
00319
00320 namespace ros
00321 {
00322 namespace service_traits
00323 {
00324 template<>
00325 struct MD5Sum<chomp_motion_planner::GetStateCost> {
00326 static const char* value()
00327 {
00328 return "e5ac7b8628485266624f522d76c812fd";
00329 }
00330
00331 static const char* value(const chomp_motion_planner::GetStateCost&) { return value(); }
00332 };
00333
00334 template<>
00335 struct DataType<chomp_motion_planner::GetStateCost> {
00336 static const char* value()
00337 {
00338 return "chomp_motion_planner/GetStateCost";
00339 }
00340
00341 static const char* value(const chomp_motion_planner::GetStateCost&) { return value(); }
00342 };
00343
00344 template<class ContainerAllocator>
00345 struct MD5Sum<chomp_motion_planner::GetStateCostRequest_<ContainerAllocator> > {
00346 static const char* value()
00347 {
00348 return "e5ac7b8628485266624f522d76c812fd";
00349 }
00350
00351 static const char* value(const chomp_motion_planner::GetStateCostRequest_<ContainerAllocator> &) { return value(); }
00352 };
00353
00354 template<class ContainerAllocator>
00355 struct DataType<chomp_motion_planner::GetStateCostRequest_<ContainerAllocator> > {
00356 static const char* value()
00357 {
00358 return "chomp_motion_planner/GetStateCost";
00359 }
00360
00361 static const char* value(const chomp_motion_planner::GetStateCostRequest_<ContainerAllocator> &) { return value(); }
00362 };
00363
00364 template<class ContainerAllocator>
00365 struct MD5Sum<chomp_motion_planner::GetStateCostResponse_<ContainerAllocator> > {
00366 static const char* value()
00367 {
00368 return "e5ac7b8628485266624f522d76c812fd";
00369 }
00370
00371 static const char* value(const chomp_motion_planner::GetStateCostResponse_<ContainerAllocator> &) { return value(); }
00372 };
00373
00374 template<class ContainerAllocator>
00375 struct DataType<chomp_motion_planner::GetStateCostResponse_<ContainerAllocator> > {
00376 static const char* value()
00377 {
00378 return "chomp_motion_planner/GetStateCost";
00379 }
00380
00381 static const char* value(const chomp_motion_planner::GetStateCostResponse_<ContainerAllocator> &) { return value(); }
00382 };
00383
00384 }
00385 }
00386
00387 #endif // CHOMP_MOTION_PLANNER_SERVICE_GETSTATECOST_H
00388