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