Go to the documentation of this file.00001
00002 #ifndef ARM_NAVIGATION_MSGS_SERVICE_FILTERJOINTTRAJECTORY_H
00003 #define ARM_NAVIGATION_MSGS_SERVICE_FILTERJOINTTRAJECTORY_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 "trajectory_msgs/JointTrajectory.h"
00020 #include "arm_navigation_msgs/RobotState.h"
00021 #include "arm_navigation_msgs/JointLimits.h"
00022
00023
00024 #include "trajectory_msgs/JointTrajectory.h"
00025 #include "arm_navigation_msgs/ArmNavigationErrorCodes.h"
00026
00027 namespace arm_navigation_msgs
00028 {
00029 template <class ContainerAllocator>
00030 struct FilterJointTrajectoryRequest_ {
00031 typedef FilterJointTrajectoryRequest_<ContainerAllocator> Type;
00032
00033 FilterJointTrajectoryRequest_()
00034 : trajectory()
00035 , start_state()
00036 , limits()
00037 , allowed_time()
00038 {
00039 }
00040
00041 FilterJointTrajectoryRequest_(const ContainerAllocator& _alloc)
00042 : trajectory(_alloc)
00043 , start_state(_alloc)
00044 , limits(_alloc)
00045 , allowed_time()
00046 {
00047 }
00048
00049 typedef ::trajectory_msgs::JointTrajectory_<ContainerAllocator> _trajectory_type;
00050 ::trajectory_msgs::JointTrajectory_<ContainerAllocator> trajectory;
00051
00052 typedef ::arm_navigation_msgs::RobotState_<ContainerAllocator> _start_state_type;
00053 ::arm_navigation_msgs::RobotState_<ContainerAllocator> start_state;
00054
00055 typedef std::vector< ::arm_navigation_msgs::JointLimits_<ContainerAllocator> , typename ContainerAllocator::template rebind< ::arm_navigation_msgs::JointLimits_<ContainerAllocator> >::other > _limits_type;
00056 std::vector< ::arm_navigation_msgs::JointLimits_<ContainerAllocator> , typename ContainerAllocator::template rebind< ::arm_navigation_msgs::JointLimits_<ContainerAllocator> >::other > limits;
00057
00058 typedef ros::Duration _allowed_time_type;
00059 ros::Duration allowed_time;
00060
00061
00062 typedef boost::shared_ptr< ::arm_navigation_msgs::FilterJointTrajectoryRequest_<ContainerAllocator> > Ptr;
00063 typedef boost::shared_ptr< ::arm_navigation_msgs::FilterJointTrajectoryRequest_<ContainerAllocator> const> ConstPtr;
00064 boost::shared_ptr<std::map<std::string, std::string> > __connection_header;
00065 };
00066 typedef ::arm_navigation_msgs::FilterJointTrajectoryRequest_<std::allocator<void> > FilterJointTrajectoryRequest;
00067
00068 typedef boost::shared_ptr< ::arm_navigation_msgs::FilterJointTrajectoryRequest> FilterJointTrajectoryRequestPtr;
00069 typedef boost::shared_ptr< ::arm_navigation_msgs::FilterJointTrajectoryRequest const> FilterJointTrajectoryRequestConstPtr;
00070
00071
00072
00073 template <class ContainerAllocator>
00074 struct FilterJointTrajectoryResponse_ {
00075 typedef FilterJointTrajectoryResponse_<ContainerAllocator> Type;
00076
00077 FilterJointTrajectoryResponse_()
00078 : trajectory()
00079 , error_code()
00080 {
00081 }
00082
00083 FilterJointTrajectoryResponse_(const ContainerAllocator& _alloc)
00084 : trajectory(_alloc)
00085 , error_code(_alloc)
00086 {
00087 }
00088
00089 typedef ::trajectory_msgs::JointTrajectory_<ContainerAllocator> _trajectory_type;
00090 ::trajectory_msgs::JointTrajectory_<ContainerAllocator> trajectory;
00091
00092 typedef ::arm_navigation_msgs::ArmNavigationErrorCodes_<ContainerAllocator> _error_code_type;
00093 ::arm_navigation_msgs::ArmNavigationErrorCodes_<ContainerAllocator> error_code;
00094
00095
00096 typedef boost::shared_ptr< ::arm_navigation_msgs::FilterJointTrajectoryResponse_<ContainerAllocator> > Ptr;
00097 typedef boost::shared_ptr< ::arm_navigation_msgs::FilterJointTrajectoryResponse_<ContainerAllocator> const> ConstPtr;
00098 boost::shared_ptr<std::map<std::string, std::string> > __connection_header;
00099 };
00100 typedef ::arm_navigation_msgs::FilterJointTrajectoryResponse_<std::allocator<void> > FilterJointTrajectoryResponse;
00101
00102 typedef boost::shared_ptr< ::arm_navigation_msgs::FilterJointTrajectoryResponse> FilterJointTrajectoryResponsePtr;
00103 typedef boost::shared_ptr< ::arm_navigation_msgs::FilterJointTrajectoryResponse const> FilterJointTrajectoryResponseConstPtr;
00104
00105
00106 struct FilterJointTrajectory
00107 {
00108
00109 typedef FilterJointTrajectoryRequest Request;
00110 typedef FilterJointTrajectoryResponse Response;
00111 Request request;
00112 Response response;
00113
00114 typedef Request RequestType;
00115 typedef Response ResponseType;
00116 };
00117 }
00118
00119 namespace ros
00120 {
00121 namespace message_traits
00122 {
00123 template<class ContainerAllocator> struct IsMessage< ::arm_navigation_msgs::FilterJointTrajectoryRequest_<ContainerAllocator> > : public TrueType {};
00124 template<class ContainerAllocator> struct IsMessage< ::arm_navigation_msgs::FilterJointTrajectoryRequest_<ContainerAllocator> const> : public TrueType {};
00125 template<class ContainerAllocator>
00126 struct MD5Sum< ::arm_navigation_msgs::FilterJointTrajectoryRequest_<ContainerAllocator> > {
00127 static const char* value()
00128 {
00129 return "ab323cbf1c60ab841b012481156f47ba";
00130 }
00131
00132 static const char* value(const ::arm_navigation_msgs::FilterJointTrajectoryRequest_<ContainerAllocator> &) { return value(); }
00133 static const uint64_t static_value1 = 0xab323cbf1c60ab84ULL;
00134 static const uint64_t static_value2 = 0x1b012481156f47baULL;
00135 };
00136
00137 template<class ContainerAllocator>
00138 struct DataType< ::arm_navigation_msgs::FilterJointTrajectoryRequest_<ContainerAllocator> > {
00139 static const char* value()
00140 {
00141 return "arm_navigation_msgs/FilterJointTrajectoryRequest";
00142 }
00143
00144 static const char* value(const ::arm_navigation_msgs::FilterJointTrajectoryRequest_<ContainerAllocator> &) { return value(); }
00145 };
00146
00147 template<class ContainerAllocator>
00148 struct Definition< ::arm_navigation_msgs::FilterJointTrajectoryRequest_<ContainerAllocator> > {
00149 static const char* value()
00150 {
00151 return "\n\
00152 trajectory_msgs/JointTrajectory trajectory\n\
00153 \n\
00154 \n\
00155 \n\
00156 \n\
00157 arm_navigation_msgs/RobotState start_state\n\
00158 \n\
00159 \n\
00160 \n\
00161 \n\
00162 arm_navigation_msgs/JointLimits[] limits\n\
00163 \n\
00164 \n\
00165 duration allowed_time\n\
00166 \n\
00167 ================================================================================\n\
00168 MSG: trajectory_msgs/JointTrajectory\n\
00169 Header header\n\
00170 string[] joint_names\n\
00171 JointTrajectoryPoint[] points\n\
00172 ================================================================================\n\
00173 MSG: std_msgs/Header\n\
00174 # Standard metadata for higher-level stamped data types.\n\
00175 # This is generally used to communicate timestamped data \n\
00176 # in a particular coordinate frame.\n\
00177 # \n\
00178 # sequence ID: consecutively increasing ID \n\
00179 uint32 seq\n\
00180 #Two-integer timestamp that is expressed as:\n\
00181 # * stamp.secs: seconds (stamp_secs) since epoch\n\
00182 # * stamp.nsecs: nanoseconds since stamp_secs\n\
00183 # time-handling sugar is provided by the client library\n\
00184 time stamp\n\
00185 #Frame this data is associated with\n\
00186 # 0: no frame\n\
00187 # 1: global frame\n\
00188 string frame_id\n\
00189 \n\
00190 ================================================================================\n\
00191 MSG: trajectory_msgs/JointTrajectoryPoint\n\
00192 float64[] positions\n\
00193 float64[] velocities\n\
00194 float64[] accelerations\n\
00195 duration time_from_start\n\
00196 ================================================================================\n\
00197 MSG: arm_navigation_msgs/RobotState\n\
00198 # This message contains information about the robot state, i.e. the positions of its joints and links\n\
00199 sensor_msgs/JointState joint_state\n\
00200 arm_navigation_msgs/MultiDOFJointState multi_dof_joint_state\n\
00201 \n\
00202 ================================================================================\n\
00203 MSG: sensor_msgs/JointState\n\
00204 # This is a message that holds data to describe the state of a set of torque controlled joints. \n\
00205 #\n\
00206 # The state of each joint (revolute or prismatic) is defined by:\n\
00207 # * the position of the joint (rad or m),\n\
00208 # * the velocity of the joint (rad/s or m/s) and \n\
00209 # * the effort that is applied in the joint (Nm or N).\n\
00210 #\n\
00211 # Each joint is uniquely identified by its name\n\
00212 # The header specifies the time at which the joint states were recorded. All the joint states\n\
00213 # in one message have to be recorded at the same time.\n\
00214 #\n\
00215 # This message consists of a multiple arrays, one for each part of the joint state. \n\
00216 # The goal is to make each of the fields optional. When e.g. your joints have no\n\
00217 # effort associated with them, you can leave the effort array empty. \n\
00218 #\n\
00219 # All arrays in this message should have the same size, or be empty.\n\
00220 # This is the only way to uniquely associate the joint name with the correct\n\
00221 # states.\n\
00222 \n\
00223 \n\
00224 Header header\n\
00225 \n\
00226 string[] name\n\
00227 float64[] position\n\
00228 float64[] velocity\n\
00229 float64[] effort\n\
00230 \n\
00231 ================================================================================\n\
00232 MSG: arm_navigation_msgs/MultiDOFJointState\n\
00233 #A representation of a multi-dof joint state\n\
00234 time stamp\n\
00235 string[] joint_names\n\
00236 string[] frame_ids\n\
00237 string[] child_frame_ids\n\
00238 geometry_msgs/Pose[] poses\n\
00239 \n\
00240 ================================================================================\n\
00241 MSG: geometry_msgs/Pose\n\
00242 # A representation of pose in free space, composed of postion and orientation. \n\
00243 Point position\n\
00244 Quaternion orientation\n\
00245 \n\
00246 ================================================================================\n\
00247 MSG: geometry_msgs/Point\n\
00248 # This contains the position of a point in free space\n\
00249 float64 x\n\
00250 float64 y\n\
00251 float64 z\n\
00252 \n\
00253 ================================================================================\n\
00254 MSG: geometry_msgs/Quaternion\n\
00255 # This represents an orientation in free space in quaternion form.\n\
00256 \n\
00257 float64 x\n\
00258 float64 y\n\
00259 float64 z\n\
00260 float64 w\n\
00261 \n\
00262 ================================================================================\n\
00263 MSG: arm_navigation_msgs/JointLimits\n\
00264 # This message contains information about limits of a particular joint (or control dimension)\n\
00265 string joint_name\n\
00266 \n\
00267 # true if the joint has position limits\n\
00268 bool has_position_limits\n\
00269 \n\
00270 # min and max position limits\n\
00271 float64 min_position\n\
00272 float64 max_position\n\
00273 \n\
00274 # true if joint has velocity limits\n\
00275 bool has_velocity_limits\n\
00276 \n\
00277 # max velocity limit\n\
00278 float64 max_velocity\n\
00279 # min_velocity is assumed to be -max_velocity\n\
00280 \n\
00281 # true if joint has acceleration limits\n\
00282 bool has_acceleration_limits\n\
00283 # max acceleration limit\n\
00284 float64 max_acceleration\n\
00285 # min_acceleration is assumed to be -max_acceleration\n\
00286 \n\
00287 ";
00288 }
00289
00290 static const char* value(const ::arm_navigation_msgs::FilterJointTrajectoryRequest_<ContainerAllocator> &) { return value(); }
00291 };
00292
00293 }
00294 }
00295
00296
00297 namespace ros
00298 {
00299 namespace message_traits
00300 {
00301 template<class ContainerAllocator> struct IsMessage< ::arm_navigation_msgs::FilterJointTrajectoryResponse_<ContainerAllocator> > : public TrueType {};
00302 template<class ContainerAllocator> struct IsMessage< ::arm_navigation_msgs::FilterJointTrajectoryResponse_<ContainerAllocator> const> : public TrueType {};
00303 template<class ContainerAllocator>
00304 struct MD5Sum< ::arm_navigation_msgs::FilterJointTrajectoryResponse_<ContainerAllocator> > {
00305 static const char* value()
00306 {
00307 return "5b4da90f4032f9ac3da9abfb05f766cc";
00308 }
00309
00310 static const char* value(const ::arm_navigation_msgs::FilterJointTrajectoryResponse_<ContainerAllocator> &) { return value(); }
00311 static const uint64_t static_value1 = 0x5b4da90f4032f9acULL;
00312 static const uint64_t static_value2 = 0x3da9abfb05f766ccULL;
00313 };
00314
00315 template<class ContainerAllocator>
00316 struct DataType< ::arm_navigation_msgs::FilterJointTrajectoryResponse_<ContainerAllocator> > {
00317 static const char* value()
00318 {
00319 return "arm_navigation_msgs/FilterJointTrajectoryResponse";
00320 }
00321
00322 static const char* value(const ::arm_navigation_msgs::FilterJointTrajectoryResponse_<ContainerAllocator> &) { return value(); }
00323 };
00324
00325 template<class ContainerAllocator>
00326 struct Definition< ::arm_navigation_msgs::FilterJointTrajectoryResponse_<ContainerAllocator> > {
00327 static const char* value()
00328 {
00329 return "trajectory_msgs/JointTrajectory trajectory\n\
00330 ArmNavigationErrorCodes error_code\n\
00331 \n\
00332 \n\
00333 ================================================================================\n\
00334 MSG: trajectory_msgs/JointTrajectory\n\
00335 Header header\n\
00336 string[] joint_names\n\
00337 JointTrajectoryPoint[] points\n\
00338 ================================================================================\n\
00339 MSG: std_msgs/Header\n\
00340 # Standard metadata for higher-level stamped data types.\n\
00341 # This is generally used to communicate timestamped data \n\
00342 # in a particular coordinate frame.\n\
00343 # \n\
00344 # sequence ID: consecutively increasing ID \n\
00345 uint32 seq\n\
00346 #Two-integer timestamp that is expressed as:\n\
00347 # * stamp.secs: seconds (stamp_secs) since epoch\n\
00348 # * stamp.nsecs: nanoseconds since stamp_secs\n\
00349 # time-handling sugar is provided by the client library\n\
00350 time stamp\n\
00351 #Frame this data is associated with\n\
00352 # 0: no frame\n\
00353 # 1: global frame\n\
00354 string frame_id\n\
00355 \n\
00356 ================================================================================\n\
00357 MSG: trajectory_msgs/JointTrajectoryPoint\n\
00358 float64[] positions\n\
00359 float64[] velocities\n\
00360 float64[] accelerations\n\
00361 duration time_from_start\n\
00362 ================================================================================\n\
00363 MSG: arm_navigation_msgs/ArmNavigationErrorCodes\n\
00364 int32 val\n\
00365 \n\
00366 # overall behavior\n\
00367 int32 PLANNING_FAILED=-1\n\
00368 int32 SUCCESS=1\n\
00369 int32 TIMED_OUT=-2\n\
00370 \n\
00371 # start state errors\n\
00372 int32 START_STATE_IN_COLLISION=-3\n\
00373 int32 START_STATE_VIOLATES_PATH_CONSTRAINTS=-4\n\
00374 \n\
00375 # goal errors\n\
00376 int32 GOAL_IN_COLLISION=-5\n\
00377 int32 GOAL_VIOLATES_PATH_CONSTRAINTS=-6\n\
00378 \n\
00379 # robot state\n\
00380 int32 INVALID_ROBOT_STATE=-7\n\
00381 int32 INCOMPLETE_ROBOT_STATE=-8\n\
00382 \n\
00383 # planning request errors\n\
00384 int32 INVALID_PLANNER_ID=-9\n\
00385 int32 INVALID_NUM_PLANNING_ATTEMPTS=-10\n\
00386 int32 INVALID_ALLOWED_PLANNING_TIME=-11\n\
00387 int32 INVALID_GROUP_NAME=-12\n\
00388 int32 INVALID_GOAL_JOINT_CONSTRAINTS=-13\n\
00389 int32 INVALID_GOAL_POSITION_CONSTRAINTS=-14\n\
00390 int32 INVALID_GOAL_ORIENTATION_CONSTRAINTS=-15\n\
00391 int32 INVALID_PATH_JOINT_CONSTRAINTS=-16\n\
00392 int32 INVALID_PATH_POSITION_CONSTRAINTS=-17\n\
00393 int32 INVALID_PATH_ORIENTATION_CONSTRAINTS=-18\n\
00394 \n\
00395 # state/trajectory monitor errors\n\
00396 int32 INVALID_TRAJECTORY=-19\n\
00397 int32 INVALID_INDEX=-20\n\
00398 int32 JOINT_LIMITS_VIOLATED=-21\n\
00399 int32 PATH_CONSTRAINTS_VIOLATED=-22\n\
00400 int32 COLLISION_CONSTRAINTS_VIOLATED=-23\n\
00401 int32 GOAL_CONSTRAINTS_VIOLATED=-24\n\
00402 int32 JOINTS_NOT_MOVING=-25\n\
00403 int32 TRAJECTORY_CONTROLLER_FAILED=-26\n\
00404 \n\
00405 # system errors\n\
00406 int32 FRAME_TRANSFORM_FAILURE=-27\n\
00407 int32 COLLISION_CHECKING_UNAVAILABLE=-28\n\
00408 int32 ROBOT_STATE_STALE=-29\n\
00409 int32 SENSOR_INFO_STALE=-30\n\
00410 \n\
00411 # kinematics errors\n\
00412 int32 NO_IK_SOLUTION=-31\n\
00413 int32 INVALID_LINK_NAME=-32\n\
00414 int32 IK_LINK_IN_COLLISION=-33\n\
00415 int32 NO_FK_SOLUTION=-34\n\
00416 int32 KINEMATICS_STATE_IN_COLLISION=-35\n\
00417 \n\
00418 # general errors\n\
00419 int32 INVALID_TIMEOUT=-36\n\
00420 \n\
00421 \n\
00422 ";
00423 }
00424
00425 static const char* value(const ::arm_navigation_msgs::FilterJointTrajectoryResponse_<ContainerAllocator> &) { return value(); }
00426 };
00427
00428 }
00429 }
00430
00431 namespace ros
00432 {
00433 namespace serialization
00434 {
00435
00436 template<class ContainerAllocator> struct Serializer< ::arm_navigation_msgs::FilterJointTrajectoryRequest_<ContainerAllocator> >
00437 {
00438 template<typename Stream, typename T> inline static void allInOne(Stream& stream, T m)
00439 {
00440 stream.next(m.trajectory);
00441 stream.next(m.start_state);
00442 stream.next(m.limits);
00443 stream.next(m.allowed_time);
00444 }
00445
00446 ROS_DECLARE_ALLINONE_SERIALIZER;
00447 };
00448 }
00449 }
00450
00451
00452 namespace ros
00453 {
00454 namespace serialization
00455 {
00456
00457 template<class ContainerAllocator> struct Serializer< ::arm_navigation_msgs::FilterJointTrajectoryResponse_<ContainerAllocator> >
00458 {
00459 template<typename Stream, typename T> inline static void allInOne(Stream& stream, T m)
00460 {
00461 stream.next(m.trajectory);
00462 stream.next(m.error_code);
00463 }
00464
00465 ROS_DECLARE_ALLINONE_SERIALIZER;
00466 };
00467 }
00468 }
00469
00470 namespace ros
00471 {
00472 namespace service_traits
00473 {
00474 template<>
00475 struct MD5Sum<arm_navigation_msgs::FilterJointTrajectory> {
00476 static const char* value()
00477 {
00478 return "18a1c6fa9ab739ec5af11210c0fd79d1";
00479 }
00480
00481 static const char* value(const arm_navigation_msgs::FilterJointTrajectory&) { return value(); }
00482 };
00483
00484 template<>
00485 struct DataType<arm_navigation_msgs::FilterJointTrajectory> {
00486 static const char* value()
00487 {
00488 return "arm_navigation_msgs/FilterJointTrajectory";
00489 }
00490
00491 static const char* value(const arm_navigation_msgs::FilterJointTrajectory&) { return value(); }
00492 };
00493
00494 template<class ContainerAllocator>
00495 struct MD5Sum<arm_navigation_msgs::FilterJointTrajectoryRequest_<ContainerAllocator> > {
00496 static const char* value()
00497 {
00498 return "18a1c6fa9ab739ec5af11210c0fd79d1";
00499 }
00500
00501 static const char* value(const arm_navigation_msgs::FilterJointTrajectoryRequest_<ContainerAllocator> &) { return value(); }
00502 };
00503
00504 template<class ContainerAllocator>
00505 struct DataType<arm_navigation_msgs::FilterJointTrajectoryRequest_<ContainerAllocator> > {
00506 static const char* value()
00507 {
00508 return "arm_navigation_msgs/FilterJointTrajectory";
00509 }
00510
00511 static const char* value(const arm_navigation_msgs::FilterJointTrajectoryRequest_<ContainerAllocator> &) { return value(); }
00512 };
00513
00514 template<class ContainerAllocator>
00515 struct MD5Sum<arm_navigation_msgs::FilterJointTrajectoryResponse_<ContainerAllocator> > {
00516 static const char* value()
00517 {
00518 return "18a1c6fa9ab739ec5af11210c0fd79d1";
00519 }
00520
00521 static const char* value(const arm_navigation_msgs::FilterJointTrajectoryResponse_<ContainerAllocator> &) { return value(); }
00522 };
00523
00524 template<class ContainerAllocator>
00525 struct DataType<arm_navigation_msgs::FilterJointTrajectoryResponse_<ContainerAllocator> > {
00526 static const char* value()
00527 {
00528 return "arm_navigation_msgs/FilterJointTrajectory";
00529 }
00530
00531 static const char* value(const arm_navigation_msgs::FilterJointTrajectoryResponse_<ContainerAllocator> &) { return value(); }
00532 };
00533
00534 }
00535 }
00536
00537 #endif // ARM_NAVIGATION_MSGS_SERVICE_FILTERJOINTTRAJECTORY_H
00538