Go to the documentation of this file.00001
00002 #ifndef ARM_NAVIGATION_MSGS_SERVICE_SETPLANNINGSCENEDIFF_H
00003 #define ARM_NAVIGATION_MSGS_SERVICE_SETPLANNINGSCENEDIFF_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/PlanningScene.h"
00020 #include "arm_navigation_msgs/OrderedCollisionOperations.h"
00021
00022
00023 #include "arm_navigation_msgs/PlanningScene.h"
00024
00025 namespace arm_navigation_msgs
00026 {
00027 template <class ContainerAllocator>
00028 struct SetPlanningSceneDiffRequest_ {
00029 typedef SetPlanningSceneDiffRequest_<ContainerAllocator> Type;
00030
00031 SetPlanningSceneDiffRequest_()
00032 : planning_scene_diff()
00033 , operations()
00034 {
00035 }
00036
00037 SetPlanningSceneDiffRequest_(const ContainerAllocator& _alloc)
00038 : planning_scene_diff(_alloc)
00039 , operations(_alloc)
00040 {
00041 }
00042
00043 typedef ::arm_navigation_msgs::PlanningScene_<ContainerAllocator> _planning_scene_diff_type;
00044 ::arm_navigation_msgs::PlanningScene_<ContainerAllocator> planning_scene_diff;
00045
00046 typedef ::arm_navigation_msgs::OrderedCollisionOperations_<ContainerAllocator> _operations_type;
00047 ::arm_navigation_msgs::OrderedCollisionOperations_<ContainerAllocator> operations;
00048
00049
00050 typedef boost::shared_ptr< ::arm_navigation_msgs::SetPlanningSceneDiffRequest_<ContainerAllocator> > Ptr;
00051 typedef boost::shared_ptr< ::arm_navigation_msgs::SetPlanningSceneDiffRequest_<ContainerAllocator> const> ConstPtr;
00052 boost::shared_ptr<std::map<std::string, std::string> > __connection_header;
00053 };
00054 typedef ::arm_navigation_msgs::SetPlanningSceneDiffRequest_<std::allocator<void> > SetPlanningSceneDiffRequest;
00055
00056 typedef boost::shared_ptr< ::arm_navigation_msgs::SetPlanningSceneDiffRequest> SetPlanningSceneDiffRequestPtr;
00057 typedef boost::shared_ptr< ::arm_navigation_msgs::SetPlanningSceneDiffRequest const> SetPlanningSceneDiffRequestConstPtr;
00058
00059
00060 template <class ContainerAllocator>
00061 struct SetPlanningSceneDiffResponse_ {
00062 typedef SetPlanningSceneDiffResponse_<ContainerAllocator> Type;
00063
00064 SetPlanningSceneDiffResponse_()
00065 : planning_scene()
00066 {
00067 }
00068
00069 SetPlanningSceneDiffResponse_(const ContainerAllocator& _alloc)
00070 : planning_scene(_alloc)
00071 {
00072 }
00073
00074 typedef ::arm_navigation_msgs::PlanningScene_<ContainerAllocator> _planning_scene_type;
00075 ::arm_navigation_msgs::PlanningScene_<ContainerAllocator> planning_scene;
00076
00077
00078 typedef boost::shared_ptr< ::arm_navigation_msgs::SetPlanningSceneDiffResponse_<ContainerAllocator> > Ptr;
00079 typedef boost::shared_ptr< ::arm_navigation_msgs::SetPlanningSceneDiffResponse_<ContainerAllocator> const> ConstPtr;
00080 boost::shared_ptr<std::map<std::string, std::string> > __connection_header;
00081 };
00082 typedef ::arm_navigation_msgs::SetPlanningSceneDiffResponse_<std::allocator<void> > SetPlanningSceneDiffResponse;
00083
00084 typedef boost::shared_ptr< ::arm_navigation_msgs::SetPlanningSceneDiffResponse> SetPlanningSceneDiffResponsePtr;
00085 typedef boost::shared_ptr< ::arm_navigation_msgs::SetPlanningSceneDiffResponse const> SetPlanningSceneDiffResponseConstPtr;
00086
00087 struct SetPlanningSceneDiff
00088 {
00089
00090 typedef SetPlanningSceneDiffRequest Request;
00091 typedef SetPlanningSceneDiffResponse Response;
00092 Request request;
00093 Response response;
00094
00095 typedef Request RequestType;
00096 typedef Response ResponseType;
00097 };
00098 }
00099
00100 namespace ros
00101 {
00102 namespace message_traits
00103 {
00104 template<class ContainerAllocator> struct IsMessage< ::arm_navigation_msgs::SetPlanningSceneDiffRequest_<ContainerAllocator> > : public TrueType {};
00105 template<class ContainerAllocator> struct IsMessage< ::arm_navigation_msgs::SetPlanningSceneDiffRequest_<ContainerAllocator> const> : public TrueType {};
00106 template<class ContainerAllocator>
00107 struct MD5Sum< ::arm_navigation_msgs::SetPlanningSceneDiffRequest_<ContainerAllocator> > {
00108 static const char* value()
00109 {
00110 return "67ad55e9bed9c8f21dfb4b9b1ca8df7d";
00111 }
00112
00113 static const char* value(const ::arm_navigation_msgs::SetPlanningSceneDiffRequest_<ContainerAllocator> &) { return value(); }
00114 static const uint64_t static_value1 = 0x67ad55e9bed9c8f2ULL;
00115 static const uint64_t static_value2 = 0x1dfb4b9b1ca8df7dULL;
00116 };
00117
00118 template<class ContainerAllocator>
00119 struct DataType< ::arm_navigation_msgs::SetPlanningSceneDiffRequest_<ContainerAllocator> > {
00120 static const char* value()
00121 {
00122 return "arm_navigation_msgs/SetPlanningSceneDiffRequest";
00123 }
00124
00125 static const char* value(const ::arm_navigation_msgs::SetPlanningSceneDiffRequest_<ContainerAllocator> &) { return value(); }
00126 };
00127
00128 template<class ContainerAllocator>
00129 struct Definition< ::arm_navigation_msgs::SetPlanningSceneDiffRequest_<ContainerAllocator> > {
00130 static const char* value()
00131 {
00132 return "\n\
00133 \n\
00134 \n\
00135 PlanningScene planning_scene_diff\n\
00136 \n\
00137 \n\
00138 arm_navigation_msgs/OrderedCollisionOperations operations\n\
00139 \n\
00140 ================================================================================\n\
00141 MSG: arm_navigation_msgs/PlanningScene\n\
00142 #full robot state\n\
00143 arm_navigation_msgs/RobotState robot_state\n\
00144 \n\
00145 #additional frames for duplicating tf\n\
00146 geometry_msgs/TransformStamped[] fixed_frame_transforms\n\
00147 \n\
00148 #full allowed collision matrix\n\
00149 AllowedCollisionMatrix allowed_collision_matrix\n\
00150 \n\
00151 #allowed contacts\n\
00152 arm_navigation_msgs/AllowedContactSpecification[] allowed_contacts\n\
00153 \n\
00154 #all link paddings\n\
00155 arm_navigation_msgs/LinkPadding[] link_padding\n\
00156 \n\
00157 #collision objects\n\
00158 arm_navigation_msgs/CollisionObject[] collision_objects\n\
00159 arm_navigation_msgs/AttachedCollisionObject[] attached_collision_objects\n\
00160 \n\
00161 #the collision map\n\
00162 arm_navigation_msgs/CollisionMap collision_map\n\
00163 \n\
00164 ================================================================================\n\
00165 MSG: arm_navigation_msgs/RobotState\n\
00166 # This message contains information about the robot state, i.e. the positions of its joints and links\n\
00167 sensor_msgs/JointState joint_state\n\
00168 arm_navigation_msgs/MultiDOFJointState multi_dof_joint_state\n\
00169 \n\
00170 ================================================================================\n\
00171 MSG: sensor_msgs/JointState\n\
00172 # This is a message that holds data to describe the state of a set of torque controlled joints. \n\
00173 #\n\
00174 # The state of each joint (revolute or prismatic) is defined by:\n\
00175 # * the position of the joint (rad or m),\n\
00176 # * the velocity of the joint (rad/s or m/s) and \n\
00177 # * the effort that is applied in the joint (Nm or N).\n\
00178 #\n\
00179 # Each joint is uniquely identified by its name\n\
00180 # The header specifies the time at which the joint states were recorded. All the joint states\n\
00181 # in one message have to be recorded at the same time.\n\
00182 #\n\
00183 # This message consists of a multiple arrays, one for each part of the joint state. \n\
00184 # The goal is to make each of the fields optional. When e.g. your joints have no\n\
00185 # effort associated with them, you can leave the effort array empty. \n\
00186 #\n\
00187 # All arrays in this message should have the same size, or be empty.\n\
00188 # This is the only way to uniquely associate the joint name with the correct\n\
00189 # states.\n\
00190 \n\
00191 \n\
00192 Header header\n\
00193 \n\
00194 string[] name\n\
00195 float64[] position\n\
00196 float64[] velocity\n\
00197 float64[] effort\n\
00198 \n\
00199 ================================================================================\n\
00200 MSG: std_msgs/Header\n\
00201 # Standard metadata for higher-level stamped data types.\n\
00202 # This is generally used to communicate timestamped data \n\
00203 # in a particular coordinate frame.\n\
00204 # \n\
00205 # sequence ID: consecutively increasing ID \n\
00206 uint32 seq\n\
00207 #Two-integer timestamp that is expressed as:\n\
00208 # * stamp.secs: seconds (stamp_secs) since epoch\n\
00209 # * stamp.nsecs: nanoseconds since stamp_secs\n\
00210 # time-handling sugar is provided by the client library\n\
00211 time stamp\n\
00212 #Frame this data is associated with\n\
00213 # 0: no frame\n\
00214 # 1: global frame\n\
00215 string frame_id\n\
00216 \n\
00217 ================================================================================\n\
00218 MSG: arm_navigation_msgs/MultiDOFJointState\n\
00219 #A representation of a multi-dof joint state\n\
00220 time stamp\n\
00221 string[] joint_names\n\
00222 string[] frame_ids\n\
00223 string[] child_frame_ids\n\
00224 geometry_msgs/Pose[] poses\n\
00225 \n\
00226 ================================================================================\n\
00227 MSG: geometry_msgs/Pose\n\
00228 # A representation of pose in free space, composed of postion and orientation. \n\
00229 Point position\n\
00230 Quaternion orientation\n\
00231 \n\
00232 ================================================================================\n\
00233 MSG: geometry_msgs/Point\n\
00234 # This contains the position of a point in free space\n\
00235 float64 x\n\
00236 float64 y\n\
00237 float64 z\n\
00238 \n\
00239 ================================================================================\n\
00240 MSG: geometry_msgs/Quaternion\n\
00241 # This represents an orientation in free space in quaternion form.\n\
00242 \n\
00243 float64 x\n\
00244 float64 y\n\
00245 float64 z\n\
00246 float64 w\n\
00247 \n\
00248 ================================================================================\n\
00249 MSG: geometry_msgs/TransformStamped\n\
00250 # This expresses a transform from coordinate frame header.frame_id\n\
00251 # to the coordinate frame child_frame_id\n\
00252 #\n\
00253 # This message is mostly used by the \n\
00254 # <a href=\"http://www.ros.org/wiki/tf\">tf</a> package. \n\
00255 # See it's documentation for more information.\n\
00256 \n\
00257 Header header\n\
00258 string child_frame_id # the frame id of the child frame\n\
00259 Transform transform\n\
00260 \n\
00261 ================================================================================\n\
00262 MSG: geometry_msgs/Transform\n\
00263 # This represents the transform between two coordinate frames in free space.\n\
00264 \n\
00265 Vector3 translation\n\
00266 Quaternion rotation\n\
00267 \n\
00268 ================================================================================\n\
00269 MSG: geometry_msgs/Vector3\n\
00270 # This represents a vector in free space. \n\
00271 \n\
00272 float64 x\n\
00273 float64 y\n\
00274 float64 z\n\
00275 ================================================================================\n\
00276 MSG: arm_navigation_msgs/AllowedCollisionMatrix\n\
00277 # the list of link names in the matrix\n\
00278 string[] link_names\n\
00279 \n\
00280 # the individual entries in the allowed collision matrix\n\
00281 # symmetric, with same order as link_names\n\
00282 AllowedCollisionEntry[] entries\n\
00283 \n\
00284 ================================================================================\n\
00285 MSG: arm_navigation_msgs/AllowedCollisionEntry\n\
00286 # whether or not collision checking is enabled\n\
00287 bool[] enabled\n\
00288 \n\
00289 ================================================================================\n\
00290 MSG: arm_navigation_msgs/AllowedContactSpecification\n\
00291 # The names of the regions\n\
00292 string name\n\
00293 \n\
00294 # The shape of the region in the environment\n\
00295 arm_navigation_msgs/Shape shape\n\
00296 \n\
00297 # The pose of the space defining the region\n\
00298 geometry_msgs/PoseStamped pose_stamped\n\
00299 \n\
00300 # The set of links that will be allowed to have penetration contact within this region\n\
00301 string[] link_names\n\
00302 \n\
00303 # The maximum penetration depth allowed for every link\n\
00304 float64 penetration_depth\n\
00305 \n\
00306 ================================================================================\n\
00307 MSG: arm_navigation_msgs/Shape\n\
00308 byte SPHERE=0\n\
00309 byte BOX=1\n\
00310 byte CYLINDER=2\n\
00311 byte MESH=3\n\
00312 \n\
00313 byte type\n\
00314 \n\
00315 \n\
00316 #### define sphere, box, cylinder ####\n\
00317 # the origin of each shape is considered at the shape's center\n\
00318 \n\
00319 # for sphere\n\
00320 # radius := dimensions[0]\n\
00321 \n\
00322 # for cylinder\n\
00323 # radius := dimensions[0]\n\
00324 # length := dimensions[1]\n\
00325 # the length is along the Z axis\n\
00326 \n\
00327 # for box\n\
00328 # size_x := dimensions[0]\n\
00329 # size_y := dimensions[1]\n\
00330 # size_z := dimensions[2]\n\
00331 float64[] dimensions\n\
00332 \n\
00333 \n\
00334 #### define mesh ####\n\
00335 \n\
00336 # list of triangles; triangle k is defined by tre vertices located\n\
00337 # at indices triangles[3k], triangles[3k+1], triangles[3k+2]\n\
00338 int32[] triangles\n\
00339 geometry_msgs/Point[] vertices\n\
00340 \n\
00341 ================================================================================\n\
00342 MSG: geometry_msgs/PoseStamped\n\
00343 # A Pose with reference coordinate frame and timestamp\n\
00344 Header header\n\
00345 Pose pose\n\
00346 \n\
00347 ================================================================================\n\
00348 MSG: arm_navigation_msgs/LinkPadding\n\
00349 #name for the link\n\
00350 string link_name\n\
00351 \n\
00352 # padding to apply to the link\n\
00353 float64 padding\n\
00354 \n\
00355 ================================================================================\n\
00356 MSG: arm_navigation_msgs/CollisionObject\n\
00357 # a header, used for interpreting the poses\n\
00358 Header header\n\
00359 \n\
00360 # the id of the object\n\
00361 string id\n\
00362 \n\
00363 # The padding used for filtering points near the object.\n\
00364 # This does not affect collision checking for the object. \n\
00365 # Set to negative to get zero padding.\n\
00366 float32 padding\n\
00367 \n\
00368 #This contains what is to be done with the object\n\
00369 CollisionObjectOperation operation\n\
00370 \n\
00371 #the shapes associated with the object\n\
00372 arm_navigation_msgs/Shape[] shapes\n\
00373 \n\
00374 #the poses associated with the shapes - will be transformed using the header\n\
00375 geometry_msgs/Pose[] poses\n\
00376 \n\
00377 ================================================================================\n\
00378 MSG: arm_navigation_msgs/CollisionObjectOperation\n\
00379 #Puts the object into the environment\n\
00380 #or updates the object if already added\n\
00381 byte ADD=0\n\
00382 \n\
00383 #Removes the object from the environment entirely\n\
00384 byte REMOVE=1\n\
00385 \n\
00386 #Only valid within the context of a CollisionAttachedObject message\n\
00387 #Will be ignored if sent with an CollisionObject message\n\
00388 #Takes an attached object, detaches from the attached link\n\
00389 #But adds back in as regular object\n\
00390 byte DETACH_AND_ADD_AS_OBJECT=2\n\
00391 \n\
00392 #Only valid within the context of a CollisionAttachedObject message\n\
00393 #Will be ignored if sent with an CollisionObject message\n\
00394 #Takes current object in the environment and removes it as\n\
00395 #a regular object\n\
00396 byte ATTACH_AND_REMOVE_AS_OBJECT=3\n\
00397 \n\
00398 # Byte code for operation\n\
00399 byte operation\n\
00400 \n\
00401 ================================================================================\n\
00402 MSG: arm_navigation_msgs/AttachedCollisionObject\n\
00403 # The CollisionObject will be attached with a fixed joint to this link\n\
00404 # If link name is set to REMOVE_ALL_ATTACHED_OBJECTS and object.operation \n\
00405 # is set to REMOVE will remove all attached bodies attached to any object\n\
00406 string link_name\n\
00407 \n\
00408 #Reserved for indicating that all attached objects should be removed\n\
00409 string REMOVE_ALL_ATTACHED_OBJECTS = \"all\"\n\
00410 \n\
00411 #This contains the actual shapes and poses for the CollisionObject\n\
00412 #to be attached to the link\n\
00413 #If action is remove and no object.id is set, all objects\n\
00414 #attached to the link indicated by link_name will be removed\n\
00415 CollisionObject object\n\
00416 \n\
00417 # The set of links that the attached objects are allowed to touch\n\
00418 # by default - the link_name is included by default\n\
00419 string[] touch_links\n\
00420 \n\
00421 ================================================================================\n\
00422 MSG: arm_navigation_msgs/CollisionMap\n\
00423 #header for interpreting box positions\n\
00424 Header header\n\
00425 \n\
00426 #boxes for use in collision testing\n\
00427 OrientedBoundingBox[] boxes\n\
00428 \n\
00429 ================================================================================\n\
00430 MSG: arm_navigation_msgs/OrientedBoundingBox\n\
00431 #the center of the box\n\
00432 geometry_msgs/Point32 center\n\
00433 \n\
00434 #the extents of the box, assuming the center is at the point\n\
00435 geometry_msgs/Point32 extents\n\
00436 \n\
00437 #the axis of the box\n\
00438 geometry_msgs/Point32 axis\n\
00439 \n\
00440 #the angle of rotation around the axis\n\
00441 float32 angle\n\
00442 \n\
00443 ================================================================================\n\
00444 MSG: geometry_msgs/Point32\n\
00445 # This contains the position of a point in free space(with 32 bits of precision).\n\
00446 # It is recommeded to use Point wherever possible instead of Point32. \n\
00447 # \n\
00448 # This recommendation is to promote interoperability. \n\
00449 #\n\
00450 # This message is designed to take up less space when sending\n\
00451 # lots of points at once, as in the case of a PointCloud. \n\
00452 \n\
00453 float32 x\n\
00454 float32 y\n\
00455 float32 z\n\
00456 ================================================================================\n\
00457 MSG: arm_navigation_msgs/OrderedCollisionOperations\n\
00458 # A set of collision operations that will be performed in the order they are specified\n\
00459 CollisionOperation[] collision_operations\n\
00460 ================================================================================\n\
00461 MSG: arm_navigation_msgs/CollisionOperation\n\
00462 # A definition of a collision operation\n\
00463 # E.g. (\"gripper\",COLLISION_SET_ALL,ENABLE) will enable collisions \n\
00464 # between the gripper and all objects in the collision space\n\
00465 \n\
00466 string object1\n\
00467 string object2\n\
00468 string COLLISION_SET_ALL=\"all\"\n\
00469 string COLLISION_SET_OBJECTS=\"objects\"\n\
00470 string COLLISION_SET_ATTACHED_OBJECTS=\"attached\"\n\
00471 \n\
00472 # The penetration distance to which collisions are allowed. This is 0.0 by default.\n\
00473 float64 penetration_distance\n\
00474 \n\
00475 # Flag that determines whether collisions will be enabled or disabled for the pair of objects specified above\n\
00476 int32 operation\n\
00477 int32 DISABLE=0\n\
00478 int32 ENABLE=1\n\
00479 \n\
00480 ";
00481 }
00482
00483 static const char* value(const ::arm_navigation_msgs::SetPlanningSceneDiffRequest_<ContainerAllocator> &) { return value(); }
00484 };
00485
00486 }
00487 }
00488
00489
00490 namespace ros
00491 {
00492 namespace message_traits
00493 {
00494 template<class ContainerAllocator> struct IsMessage< ::arm_navigation_msgs::SetPlanningSceneDiffResponse_<ContainerAllocator> > : public TrueType {};
00495 template<class ContainerAllocator> struct IsMessage< ::arm_navigation_msgs::SetPlanningSceneDiffResponse_<ContainerAllocator> const> : public TrueType {};
00496 template<class ContainerAllocator>
00497 struct MD5Sum< ::arm_navigation_msgs::SetPlanningSceneDiffResponse_<ContainerAllocator> > {
00498 static const char* value()
00499 {
00500 return "285525c9abe002fbafa99af84a14b4cb";
00501 }
00502
00503 static const char* value(const ::arm_navigation_msgs::SetPlanningSceneDiffResponse_<ContainerAllocator> &) { return value(); }
00504 static const uint64_t static_value1 = 0x285525c9abe002fbULL;
00505 static const uint64_t static_value2 = 0xafa99af84a14b4cbULL;
00506 };
00507
00508 template<class ContainerAllocator>
00509 struct DataType< ::arm_navigation_msgs::SetPlanningSceneDiffResponse_<ContainerAllocator> > {
00510 static const char* value()
00511 {
00512 return "arm_navigation_msgs/SetPlanningSceneDiffResponse";
00513 }
00514
00515 static const char* value(const ::arm_navigation_msgs::SetPlanningSceneDiffResponse_<ContainerAllocator> &) { return value(); }
00516 };
00517
00518 template<class ContainerAllocator>
00519 struct Definition< ::arm_navigation_msgs::SetPlanningSceneDiffResponse_<ContainerAllocator> > {
00520 static const char* value()
00521 {
00522 return "\n\
00523 \n\
00524 PlanningScene planning_scene\n\
00525 \n\
00526 \n\
00527 \n\
00528 \n\
00529 \n\
00530 ================================================================================\n\
00531 MSG: arm_navigation_msgs/PlanningScene\n\
00532 #full robot state\n\
00533 arm_navigation_msgs/RobotState robot_state\n\
00534 \n\
00535 #additional frames for duplicating tf\n\
00536 geometry_msgs/TransformStamped[] fixed_frame_transforms\n\
00537 \n\
00538 #full allowed collision matrix\n\
00539 AllowedCollisionMatrix allowed_collision_matrix\n\
00540 \n\
00541 #allowed contacts\n\
00542 arm_navigation_msgs/AllowedContactSpecification[] allowed_contacts\n\
00543 \n\
00544 #all link paddings\n\
00545 arm_navigation_msgs/LinkPadding[] link_padding\n\
00546 \n\
00547 #collision objects\n\
00548 arm_navigation_msgs/CollisionObject[] collision_objects\n\
00549 arm_navigation_msgs/AttachedCollisionObject[] attached_collision_objects\n\
00550 \n\
00551 #the collision map\n\
00552 arm_navigation_msgs/CollisionMap collision_map\n\
00553 \n\
00554 ================================================================================\n\
00555 MSG: arm_navigation_msgs/RobotState\n\
00556 # This message contains information about the robot state, i.e. the positions of its joints and links\n\
00557 sensor_msgs/JointState joint_state\n\
00558 arm_navigation_msgs/MultiDOFJointState multi_dof_joint_state\n\
00559 \n\
00560 ================================================================================\n\
00561 MSG: sensor_msgs/JointState\n\
00562 # This is a message that holds data to describe the state of a set of torque controlled joints. \n\
00563 #\n\
00564 # The state of each joint (revolute or prismatic) is defined by:\n\
00565 # * the position of the joint (rad or m),\n\
00566 # * the velocity of the joint (rad/s or m/s) and \n\
00567 # * the effort that is applied in the joint (Nm or N).\n\
00568 #\n\
00569 # Each joint is uniquely identified by its name\n\
00570 # The header specifies the time at which the joint states were recorded. All the joint states\n\
00571 # in one message have to be recorded at the same time.\n\
00572 #\n\
00573 # This message consists of a multiple arrays, one for each part of the joint state. \n\
00574 # The goal is to make each of the fields optional. When e.g. your joints have no\n\
00575 # effort associated with them, you can leave the effort array empty. \n\
00576 #\n\
00577 # All arrays in this message should have the same size, or be empty.\n\
00578 # This is the only way to uniquely associate the joint name with the correct\n\
00579 # states.\n\
00580 \n\
00581 \n\
00582 Header header\n\
00583 \n\
00584 string[] name\n\
00585 float64[] position\n\
00586 float64[] velocity\n\
00587 float64[] effort\n\
00588 \n\
00589 ================================================================================\n\
00590 MSG: std_msgs/Header\n\
00591 # Standard metadata for higher-level stamped data types.\n\
00592 # This is generally used to communicate timestamped data \n\
00593 # in a particular coordinate frame.\n\
00594 # \n\
00595 # sequence ID: consecutively increasing ID \n\
00596 uint32 seq\n\
00597 #Two-integer timestamp that is expressed as:\n\
00598 # * stamp.secs: seconds (stamp_secs) since epoch\n\
00599 # * stamp.nsecs: nanoseconds since stamp_secs\n\
00600 # time-handling sugar is provided by the client library\n\
00601 time stamp\n\
00602 #Frame this data is associated with\n\
00603 # 0: no frame\n\
00604 # 1: global frame\n\
00605 string frame_id\n\
00606 \n\
00607 ================================================================================\n\
00608 MSG: arm_navigation_msgs/MultiDOFJointState\n\
00609 #A representation of a multi-dof joint state\n\
00610 time stamp\n\
00611 string[] joint_names\n\
00612 string[] frame_ids\n\
00613 string[] child_frame_ids\n\
00614 geometry_msgs/Pose[] poses\n\
00615 \n\
00616 ================================================================================\n\
00617 MSG: geometry_msgs/Pose\n\
00618 # A representation of pose in free space, composed of postion and orientation. \n\
00619 Point position\n\
00620 Quaternion orientation\n\
00621 \n\
00622 ================================================================================\n\
00623 MSG: geometry_msgs/Point\n\
00624 # This contains the position of a point in free space\n\
00625 float64 x\n\
00626 float64 y\n\
00627 float64 z\n\
00628 \n\
00629 ================================================================================\n\
00630 MSG: geometry_msgs/Quaternion\n\
00631 # This represents an orientation in free space in quaternion form.\n\
00632 \n\
00633 float64 x\n\
00634 float64 y\n\
00635 float64 z\n\
00636 float64 w\n\
00637 \n\
00638 ================================================================================\n\
00639 MSG: geometry_msgs/TransformStamped\n\
00640 # This expresses a transform from coordinate frame header.frame_id\n\
00641 # to the coordinate frame child_frame_id\n\
00642 #\n\
00643 # This message is mostly used by the \n\
00644 # <a href=\"http://www.ros.org/wiki/tf\">tf</a> package. \n\
00645 # See it's documentation for more information.\n\
00646 \n\
00647 Header header\n\
00648 string child_frame_id # the frame id of the child frame\n\
00649 Transform transform\n\
00650 \n\
00651 ================================================================================\n\
00652 MSG: geometry_msgs/Transform\n\
00653 # This represents the transform between two coordinate frames in free space.\n\
00654 \n\
00655 Vector3 translation\n\
00656 Quaternion rotation\n\
00657 \n\
00658 ================================================================================\n\
00659 MSG: geometry_msgs/Vector3\n\
00660 # This represents a vector in free space. \n\
00661 \n\
00662 float64 x\n\
00663 float64 y\n\
00664 float64 z\n\
00665 ================================================================================\n\
00666 MSG: arm_navigation_msgs/AllowedCollisionMatrix\n\
00667 # the list of link names in the matrix\n\
00668 string[] link_names\n\
00669 \n\
00670 # the individual entries in the allowed collision matrix\n\
00671 # symmetric, with same order as link_names\n\
00672 AllowedCollisionEntry[] entries\n\
00673 \n\
00674 ================================================================================\n\
00675 MSG: arm_navigation_msgs/AllowedCollisionEntry\n\
00676 # whether or not collision checking is enabled\n\
00677 bool[] enabled\n\
00678 \n\
00679 ================================================================================\n\
00680 MSG: arm_navigation_msgs/AllowedContactSpecification\n\
00681 # The names of the regions\n\
00682 string name\n\
00683 \n\
00684 # The shape of the region in the environment\n\
00685 arm_navigation_msgs/Shape shape\n\
00686 \n\
00687 # The pose of the space defining the region\n\
00688 geometry_msgs/PoseStamped pose_stamped\n\
00689 \n\
00690 # The set of links that will be allowed to have penetration contact within this region\n\
00691 string[] link_names\n\
00692 \n\
00693 # The maximum penetration depth allowed for every link\n\
00694 float64 penetration_depth\n\
00695 \n\
00696 ================================================================================\n\
00697 MSG: arm_navigation_msgs/Shape\n\
00698 byte SPHERE=0\n\
00699 byte BOX=1\n\
00700 byte CYLINDER=2\n\
00701 byte MESH=3\n\
00702 \n\
00703 byte type\n\
00704 \n\
00705 \n\
00706 #### define sphere, box, cylinder ####\n\
00707 # the origin of each shape is considered at the shape's center\n\
00708 \n\
00709 # for sphere\n\
00710 # radius := dimensions[0]\n\
00711 \n\
00712 # for cylinder\n\
00713 # radius := dimensions[0]\n\
00714 # length := dimensions[1]\n\
00715 # the length is along the Z axis\n\
00716 \n\
00717 # for box\n\
00718 # size_x := dimensions[0]\n\
00719 # size_y := dimensions[1]\n\
00720 # size_z := dimensions[2]\n\
00721 float64[] dimensions\n\
00722 \n\
00723 \n\
00724 #### define mesh ####\n\
00725 \n\
00726 # list of triangles; triangle k is defined by tre vertices located\n\
00727 # at indices triangles[3k], triangles[3k+1], triangles[3k+2]\n\
00728 int32[] triangles\n\
00729 geometry_msgs/Point[] vertices\n\
00730 \n\
00731 ================================================================================\n\
00732 MSG: geometry_msgs/PoseStamped\n\
00733 # A Pose with reference coordinate frame and timestamp\n\
00734 Header header\n\
00735 Pose pose\n\
00736 \n\
00737 ================================================================================\n\
00738 MSG: arm_navigation_msgs/LinkPadding\n\
00739 #name for the link\n\
00740 string link_name\n\
00741 \n\
00742 # padding to apply to the link\n\
00743 float64 padding\n\
00744 \n\
00745 ================================================================================\n\
00746 MSG: arm_navigation_msgs/CollisionObject\n\
00747 # a header, used for interpreting the poses\n\
00748 Header header\n\
00749 \n\
00750 # the id of the object\n\
00751 string id\n\
00752 \n\
00753 # The padding used for filtering points near the object.\n\
00754 # This does not affect collision checking for the object. \n\
00755 # Set to negative to get zero padding.\n\
00756 float32 padding\n\
00757 \n\
00758 #This contains what is to be done with the object\n\
00759 CollisionObjectOperation operation\n\
00760 \n\
00761 #the shapes associated with the object\n\
00762 arm_navigation_msgs/Shape[] shapes\n\
00763 \n\
00764 #the poses associated with the shapes - will be transformed using the header\n\
00765 geometry_msgs/Pose[] poses\n\
00766 \n\
00767 ================================================================================\n\
00768 MSG: arm_navigation_msgs/CollisionObjectOperation\n\
00769 #Puts the object into the environment\n\
00770 #or updates the object if already added\n\
00771 byte ADD=0\n\
00772 \n\
00773 #Removes the object from the environment entirely\n\
00774 byte REMOVE=1\n\
00775 \n\
00776 #Only valid within the context of a CollisionAttachedObject message\n\
00777 #Will be ignored if sent with an CollisionObject message\n\
00778 #Takes an attached object, detaches from the attached link\n\
00779 #But adds back in as regular object\n\
00780 byte DETACH_AND_ADD_AS_OBJECT=2\n\
00781 \n\
00782 #Only valid within the context of a CollisionAttachedObject message\n\
00783 #Will be ignored if sent with an CollisionObject message\n\
00784 #Takes current object in the environment and removes it as\n\
00785 #a regular object\n\
00786 byte ATTACH_AND_REMOVE_AS_OBJECT=3\n\
00787 \n\
00788 # Byte code for operation\n\
00789 byte operation\n\
00790 \n\
00791 ================================================================================\n\
00792 MSG: arm_navigation_msgs/AttachedCollisionObject\n\
00793 # The CollisionObject will be attached with a fixed joint to this link\n\
00794 # If link name is set to REMOVE_ALL_ATTACHED_OBJECTS and object.operation \n\
00795 # is set to REMOVE will remove all attached bodies attached to any object\n\
00796 string link_name\n\
00797 \n\
00798 #Reserved for indicating that all attached objects should be removed\n\
00799 string REMOVE_ALL_ATTACHED_OBJECTS = \"all\"\n\
00800 \n\
00801 #This contains the actual shapes and poses for the CollisionObject\n\
00802 #to be attached to the link\n\
00803 #If action is remove and no object.id is set, all objects\n\
00804 #attached to the link indicated by link_name will be removed\n\
00805 CollisionObject object\n\
00806 \n\
00807 # The set of links that the attached objects are allowed to touch\n\
00808 # by default - the link_name is included by default\n\
00809 string[] touch_links\n\
00810 \n\
00811 ================================================================================\n\
00812 MSG: arm_navigation_msgs/CollisionMap\n\
00813 #header for interpreting box positions\n\
00814 Header header\n\
00815 \n\
00816 #boxes for use in collision testing\n\
00817 OrientedBoundingBox[] boxes\n\
00818 \n\
00819 ================================================================================\n\
00820 MSG: arm_navigation_msgs/OrientedBoundingBox\n\
00821 #the center of the box\n\
00822 geometry_msgs/Point32 center\n\
00823 \n\
00824 #the extents of the box, assuming the center is at the point\n\
00825 geometry_msgs/Point32 extents\n\
00826 \n\
00827 #the axis of the box\n\
00828 geometry_msgs/Point32 axis\n\
00829 \n\
00830 #the angle of rotation around the axis\n\
00831 float32 angle\n\
00832 \n\
00833 ================================================================================\n\
00834 MSG: geometry_msgs/Point32\n\
00835 # This contains the position of a point in free space(with 32 bits of precision).\n\
00836 # It is recommeded to use Point wherever possible instead of Point32. \n\
00837 # \n\
00838 # This recommendation is to promote interoperability. \n\
00839 #\n\
00840 # This message is designed to take up less space when sending\n\
00841 # lots of points at once, as in the case of a PointCloud. \n\
00842 \n\
00843 float32 x\n\
00844 float32 y\n\
00845 float32 z\n\
00846 ";
00847 }
00848
00849 static const char* value(const ::arm_navigation_msgs::SetPlanningSceneDiffResponse_<ContainerAllocator> &) { return value(); }
00850 };
00851
00852 }
00853 }
00854
00855 namespace ros
00856 {
00857 namespace serialization
00858 {
00859
00860 template<class ContainerAllocator> struct Serializer< ::arm_navigation_msgs::SetPlanningSceneDiffRequest_<ContainerAllocator> >
00861 {
00862 template<typename Stream, typename T> inline static void allInOne(Stream& stream, T m)
00863 {
00864 stream.next(m.planning_scene_diff);
00865 stream.next(m.operations);
00866 }
00867
00868 ROS_DECLARE_ALLINONE_SERIALIZER;
00869 };
00870 }
00871 }
00872
00873
00874 namespace ros
00875 {
00876 namespace serialization
00877 {
00878
00879 template<class ContainerAllocator> struct Serializer< ::arm_navigation_msgs::SetPlanningSceneDiffResponse_<ContainerAllocator> >
00880 {
00881 template<typename Stream, typename T> inline static void allInOne(Stream& stream, T m)
00882 {
00883 stream.next(m.planning_scene);
00884 }
00885
00886 ROS_DECLARE_ALLINONE_SERIALIZER;
00887 };
00888 }
00889 }
00890
00891 namespace ros
00892 {
00893 namespace service_traits
00894 {
00895 template<>
00896 struct MD5Sum<arm_navigation_msgs::SetPlanningSceneDiff> {
00897 static const char* value()
00898 {
00899 return "0a7b07718e4e5c5d35740c730509a151";
00900 }
00901
00902 static const char* value(const arm_navigation_msgs::SetPlanningSceneDiff&) { return value(); }
00903 };
00904
00905 template<>
00906 struct DataType<arm_navigation_msgs::SetPlanningSceneDiff> {
00907 static const char* value()
00908 {
00909 return "arm_navigation_msgs/SetPlanningSceneDiff";
00910 }
00911
00912 static const char* value(const arm_navigation_msgs::SetPlanningSceneDiff&) { return value(); }
00913 };
00914
00915 template<class ContainerAllocator>
00916 struct MD5Sum<arm_navigation_msgs::SetPlanningSceneDiffRequest_<ContainerAllocator> > {
00917 static const char* value()
00918 {
00919 return "0a7b07718e4e5c5d35740c730509a151";
00920 }
00921
00922 static const char* value(const arm_navigation_msgs::SetPlanningSceneDiffRequest_<ContainerAllocator> &) { return value(); }
00923 };
00924
00925 template<class ContainerAllocator>
00926 struct DataType<arm_navigation_msgs::SetPlanningSceneDiffRequest_<ContainerAllocator> > {
00927 static const char* value()
00928 {
00929 return "arm_navigation_msgs/SetPlanningSceneDiff";
00930 }
00931
00932 static const char* value(const arm_navigation_msgs::SetPlanningSceneDiffRequest_<ContainerAllocator> &) { return value(); }
00933 };
00934
00935 template<class ContainerAllocator>
00936 struct MD5Sum<arm_navigation_msgs::SetPlanningSceneDiffResponse_<ContainerAllocator> > {
00937 static const char* value()
00938 {
00939 return "0a7b07718e4e5c5d35740c730509a151";
00940 }
00941
00942 static const char* value(const arm_navigation_msgs::SetPlanningSceneDiffResponse_<ContainerAllocator> &) { return value(); }
00943 };
00944
00945 template<class ContainerAllocator>
00946 struct DataType<arm_navigation_msgs::SetPlanningSceneDiffResponse_<ContainerAllocator> > {
00947 static const char* value()
00948 {
00949 return "arm_navigation_msgs/SetPlanningSceneDiff";
00950 }
00951
00952 static const char* value(const arm_navigation_msgs::SetPlanningSceneDiffResponse_<ContainerAllocator> &) { return value(); }
00953 };
00954
00955 }
00956 }
00957
00958 #endif // ARM_NAVIGATION_MSGS_SERVICE_SETPLANNINGSCENEDIFF_H
00959