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