00001 """autogenerated by genmsg_py from SyncPlanningSceneGoal.msg. Do not edit."""
00002 import roslib.message
00003 import struct
00004
00005 import arm_navigation_msgs.msg
00006 import geometry_msgs.msg
00007 import std_msgs.msg
00008 import roslib.rostime
00009 import sensor_msgs.msg
00010
00011 class SyncPlanningSceneGoal(roslib.message.Message):
00012 _md5sum = "285525c9abe002fbafa99af84a14b4cb"
00013 _type = "arm_navigation_msgs/SyncPlanningSceneGoal"
00014 _has_header = False
00015 _full_text = """# ====== DO NOT MODIFY! AUTOGENERATED FROM AN ACTION DEFINITION ======
00016 # THIS MESSAGE IS FOR INTERNAL COMMUNICATION BETWEEN
00017 # PLANNING ENVIRONMENT COMPONENTS ONLY
00018
00019 #Full planning scene
00020 PlanningScene planning_scene
00021
00022 ================================================================================
00023 MSG: arm_navigation_msgs/PlanningScene
00024 #full robot state
00025 arm_navigation_msgs/RobotState robot_state
00026
00027 #additional frames for duplicating tf
00028 geometry_msgs/TransformStamped[] fixed_frame_transforms
00029
00030 #full allowed collision matrix
00031 AllowedCollisionMatrix allowed_collision_matrix
00032
00033 #allowed contacts
00034 arm_navigation_msgs/AllowedContactSpecification[] allowed_contacts
00035
00036 #all link paddings
00037 arm_navigation_msgs/LinkPadding[] link_padding
00038
00039 #collision objects
00040 arm_navigation_msgs/CollisionObject[] collision_objects
00041 arm_navigation_msgs/AttachedCollisionObject[] attached_collision_objects
00042
00043 #the collision map
00044 arm_navigation_msgs/CollisionMap collision_map
00045
00046 ================================================================================
00047 MSG: arm_navigation_msgs/RobotState
00048 # This message contains information about the robot state, i.e. the positions of its joints and links
00049 sensor_msgs/JointState joint_state
00050 arm_navigation_msgs/MultiDOFJointState multi_dof_joint_state
00051
00052 ================================================================================
00053 MSG: sensor_msgs/JointState
00054 # This is a message that holds data to describe the state of a set of torque controlled joints.
00055 #
00056 # The state of each joint (revolute or prismatic) is defined by:
00057 # * the position of the joint (rad or m),
00058 # * the velocity of the joint (rad/s or m/s) and
00059 # * the effort that is applied in the joint (Nm or N).
00060 #
00061 # Each joint is uniquely identified by its name
00062 # The header specifies the time at which the joint states were recorded. All the joint states
00063 # in one message have to be recorded at the same time.
00064 #
00065 # This message consists of a multiple arrays, one for each part of the joint state.
00066 # The goal is to make each of the fields optional. When e.g. your joints have no
00067 # effort associated with them, you can leave the effort array empty.
00068 #
00069 # All arrays in this message should have the same size, or be empty.
00070 # This is the only way to uniquely associate the joint name with the correct
00071 # states.
00072
00073
00074 Header header
00075
00076 string[] name
00077 float64[] position
00078 float64[] velocity
00079 float64[] effort
00080
00081 ================================================================================
00082 MSG: std_msgs/Header
00083 # Standard metadata for higher-level stamped data types.
00084 # This is generally used to communicate timestamped data
00085 # in a particular coordinate frame.
00086 #
00087 # sequence ID: consecutively increasing ID
00088 uint32 seq
00089 #Two-integer timestamp that is expressed as:
00090 # * stamp.secs: seconds (stamp_secs) since epoch
00091 # * stamp.nsecs: nanoseconds since stamp_secs
00092 # time-handling sugar is provided by the client library
00093 time stamp
00094 #Frame this data is associated with
00095 # 0: no frame
00096 # 1: global frame
00097 string frame_id
00098
00099 ================================================================================
00100 MSG: arm_navigation_msgs/MultiDOFJointState
00101 #A representation of a multi-dof joint state
00102 time stamp
00103 string[] joint_names
00104 string[] frame_ids
00105 string[] child_frame_ids
00106 geometry_msgs/Pose[] poses
00107
00108 ================================================================================
00109 MSG: geometry_msgs/Pose
00110 # A representation of pose in free space, composed of postion and orientation.
00111 Point position
00112 Quaternion orientation
00113
00114 ================================================================================
00115 MSG: geometry_msgs/Point
00116 # This contains the position of a point in free space
00117 float64 x
00118 float64 y
00119 float64 z
00120
00121 ================================================================================
00122 MSG: geometry_msgs/Quaternion
00123 # This represents an orientation in free space in quaternion form.
00124
00125 float64 x
00126 float64 y
00127 float64 z
00128 float64 w
00129
00130 ================================================================================
00131 MSG: geometry_msgs/TransformStamped
00132 # This expresses a transform from coordinate frame header.frame_id
00133 # to the coordinate frame child_frame_id
00134 #
00135 # This message is mostly used by the
00136 # <a href="http://www.ros.org/wiki/tf">tf</a> package.
00137 # See it's documentation for more information.
00138
00139 Header header
00140 string child_frame_id # the frame id of the child frame
00141 Transform transform
00142
00143 ================================================================================
00144 MSG: geometry_msgs/Transform
00145 # This represents the transform between two coordinate frames in free space.
00146
00147 Vector3 translation
00148 Quaternion rotation
00149
00150 ================================================================================
00151 MSG: geometry_msgs/Vector3
00152 # This represents a vector in free space.
00153
00154 float64 x
00155 float64 y
00156 float64 z
00157 ================================================================================
00158 MSG: arm_navigation_msgs/AllowedCollisionMatrix
00159 # the list of link names in the matrix
00160 string[] link_names
00161
00162 # the individual entries in the allowed collision matrix
00163 # symmetric, with same order as link_names
00164 AllowedCollisionEntry[] entries
00165
00166 ================================================================================
00167 MSG: arm_navigation_msgs/AllowedCollisionEntry
00168 # whether or not collision checking is enabled
00169 bool[] enabled
00170
00171 ================================================================================
00172 MSG: arm_navigation_msgs/AllowedContactSpecification
00173 # The names of the regions
00174 string name
00175
00176 # The shape of the region in the environment
00177 arm_navigation_msgs/Shape shape
00178
00179 # The pose of the space defining the region
00180 geometry_msgs/PoseStamped pose_stamped
00181
00182 # The set of links that will be allowed to have penetration contact within this region
00183 string[] link_names
00184
00185 # The maximum penetration depth allowed for every link
00186 float64 penetration_depth
00187
00188 ================================================================================
00189 MSG: arm_navigation_msgs/Shape
00190 byte SPHERE=0
00191 byte BOX=1
00192 byte CYLINDER=2
00193 byte MESH=3
00194
00195 byte type
00196
00197
00198 #### define sphere, box, cylinder ####
00199 # the origin of each shape is considered at the shape's center
00200
00201 # for sphere
00202 # radius := dimensions[0]
00203
00204 # for cylinder
00205 # radius := dimensions[0]
00206 # length := dimensions[1]
00207 # the length is along the Z axis
00208
00209 # for box
00210 # size_x := dimensions[0]
00211 # size_y := dimensions[1]
00212 # size_z := dimensions[2]
00213 float64[] dimensions
00214
00215
00216 #### define mesh ####
00217
00218 # list of triangles; triangle k is defined by tre vertices located
00219 # at indices triangles[3k], triangles[3k+1], triangles[3k+2]
00220 int32[] triangles
00221 geometry_msgs/Point[] vertices
00222
00223 ================================================================================
00224 MSG: geometry_msgs/PoseStamped
00225 # A Pose with reference coordinate frame and timestamp
00226 Header header
00227 Pose pose
00228
00229 ================================================================================
00230 MSG: arm_navigation_msgs/LinkPadding
00231 #name for the link
00232 string link_name
00233
00234 # padding to apply to the link
00235 float64 padding
00236
00237 ================================================================================
00238 MSG: arm_navigation_msgs/CollisionObject
00239 # a header, used for interpreting the poses
00240 Header header
00241
00242 # the id of the object
00243 string id
00244
00245 # The padding used for filtering points near the object.
00246 # This does not affect collision checking for the object.
00247 # Set to negative to get zero padding.
00248 float32 padding
00249
00250 #This contains what is to be done with the object
00251 CollisionObjectOperation operation
00252
00253 #the shapes associated with the object
00254 arm_navigation_msgs/Shape[] shapes
00255
00256 #the poses associated with the shapes - will be transformed using the header
00257 geometry_msgs/Pose[] poses
00258
00259 ================================================================================
00260 MSG: arm_navigation_msgs/CollisionObjectOperation
00261 #Puts the object into the environment
00262 #or updates the object if already added
00263 byte ADD=0
00264
00265 #Removes the object from the environment entirely
00266 byte REMOVE=1
00267
00268 #Only valid within the context of a CollisionAttachedObject message
00269 #Will be ignored if sent with an CollisionObject message
00270 #Takes an attached object, detaches from the attached link
00271 #But adds back in as regular object
00272 byte DETACH_AND_ADD_AS_OBJECT=2
00273
00274 #Only valid within the context of a CollisionAttachedObject message
00275 #Will be ignored if sent with an CollisionObject message
00276 #Takes current object in the environment and removes it as
00277 #a regular object
00278 byte ATTACH_AND_REMOVE_AS_OBJECT=3
00279
00280 # Byte code for operation
00281 byte operation
00282
00283 ================================================================================
00284 MSG: arm_navigation_msgs/AttachedCollisionObject
00285 # The CollisionObject will be attached with a fixed joint to this link
00286 # If link name is set to REMOVE_ALL_ATTACHED_OBJECTS and object.operation
00287 # is set to REMOVE will remove all attached bodies attached to any object
00288 string link_name
00289
00290 #Reserved for indicating that all attached objects should be removed
00291 string REMOVE_ALL_ATTACHED_OBJECTS = "all"
00292
00293 #This contains the actual shapes and poses for the CollisionObject
00294 #to be attached to the link
00295 #If action is remove and no object.id is set, all objects
00296 #attached to the link indicated by link_name will be removed
00297 CollisionObject object
00298
00299 # The set of links that the attached objects are allowed to touch
00300 # by default - the link_name is included by default
00301 string[] touch_links
00302
00303 ================================================================================
00304 MSG: arm_navigation_msgs/CollisionMap
00305 #header for interpreting box positions
00306 Header header
00307
00308 #boxes for use in collision testing
00309 OrientedBoundingBox[] boxes
00310
00311 ================================================================================
00312 MSG: arm_navigation_msgs/OrientedBoundingBox
00313 #the center of the box
00314 geometry_msgs/Point32 center
00315
00316 #the extents of the box, assuming the center is at the point
00317 geometry_msgs/Point32 extents
00318
00319 #the axis of the box
00320 geometry_msgs/Point32 axis
00321
00322 #the angle of rotation around the axis
00323 float32 angle
00324
00325 ================================================================================
00326 MSG: geometry_msgs/Point32
00327 # This contains the position of a point in free space(with 32 bits of precision).
00328 # It is recommeded to use Point wherever possible instead of Point32.
00329 #
00330 # This recommendation is to promote interoperability.
00331 #
00332 # This message is designed to take up less space when sending
00333 # lots of points at once, as in the case of a PointCloud.
00334
00335 float32 x
00336 float32 y
00337 float32 z
00338 """
00339 __slots__ = ['planning_scene']
00340 _slot_types = ['arm_navigation_msgs/PlanningScene']
00341
00342 def __init__(self, *args, **kwds):
00343 """
00344 Constructor. Any message fields that are implicitly/explicitly
00345 set to None will be assigned a default value. The recommend
00346 use is keyword arguments as this is more robust to future message
00347 changes. You cannot mix in-order arguments and keyword arguments.
00348
00349 The available fields are:
00350 planning_scene
00351
00352 @param args: complete set of field values, in .msg order
00353 @param kwds: use keyword arguments corresponding to message field names
00354 to set specific fields.
00355 """
00356 if args or kwds:
00357 super(SyncPlanningSceneGoal, self).__init__(*args, **kwds)
00358
00359 if self.planning_scene is None:
00360 self.planning_scene = arm_navigation_msgs.msg.PlanningScene()
00361 else:
00362 self.planning_scene = arm_navigation_msgs.msg.PlanningScene()
00363
00364 def _get_types(self):
00365 """
00366 internal API method
00367 """
00368 return self._slot_types
00369
00370 def serialize(self, buff):
00371 """
00372 serialize message into buffer
00373 @param buff: buffer
00374 @type buff: StringIO
00375 """
00376 try:
00377 _x = self
00378 buff.write(_struct_3I.pack(_x.planning_scene.robot_state.joint_state.header.seq, _x.planning_scene.robot_state.joint_state.header.stamp.secs, _x.planning_scene.robot_state.joint_state.header.stamp.nsecs))
00379 _x = self.planning_scene.robot_state.joint_state.header.frame_id
00380 length = len(_x)
00381 buff.write(struct.pack('<I%ss'%length, length, _x))
00382 length = len(self.planning_scene.robot_state.joint_state.name)
00383 buff.write(_struct_I.pack(length))
00384 for val1 in self.planning_scene.robot_state.joint_state.name:
00385 length = len(val1)
00386 buff.write(struct.pack('<I%ss'%length, length, val1))
00387 length = len(self.planning_scene.robot_state.joint_state.position)
00388 buff.write(_struct_I.pack(length))
00389 pattern = '<%sd'%length
00390 buff.write(struct.pack(pattern, *self.planning_scene.robot_state.joint_state.position))
00391 length = len(self.planning_scene.robot_state.joint_state.velocity)
00392 buff.write(_struct_I.pack(length))
00393 pattern = '<%sd'%length
00394 buff.write(struct.pack(pattern, *self.planning_scene.robot_state.joint_state.velocity))
00395 length = len(self.planning_scene.robot_state.joint_state.effort)
00396 buff.write(_struct_I.pack(length))
00397 pattern = '<%sd'%length
00398 buff.write(struct.pack(pattern, *self.planning_scene.robot_state.joint_state.effort))
00399 _x = self
00400 buff.write(_struct_2I.pack(_x.planning_scene.robot_state.multi_dof_joint_state.stamp.secs, _x.planning_scene.robot_state.multi_dof_joint_state.stamp.nsecs))
00401 length = len(self.planning_scene.robot_state.multi_dof_joint_state.joint_names)
00402 buff.write(_struct_I.pack(length))
00403 for val1 in self.planning_scene.robot_state.multi_dof_joint_state.joint_names:
00404 length = len(val1)
00405 buff.write(struct.pack('<I%ss'%length, length, val1))
00406 length = len(self.planning_scene.robot_state.multi_dof_joint_state.frame_ids)
00407 buff.write(_struct_I.pack(length))
00408 for val1 in self.planning_scene.robot_state.multi_dof_joint_state.frame_ids:
00409 length = len(val1)
00410 buff.write(struct.pack('<I%ss'%length, length, val1))
00411 length = len(self.planning_scene.robot_state.multi_dof_joint_state.child_frame_ids)
00412 buff.write(_struct_I.pack(length))
00413 for val1 in self.planning_scene.robot_state.multi_dof_joint_state.child_frame_ids:
00414 length = len(val1)
00415 buff.write(struct.pack('<I%ss'%length, length, val1))
00416 length = len(self.planning_scene.robot_state.multi_dof_joint_state.poses)
00417 buff.write(_struct_I.pack(length))
00418 for val1 in self.planning_scene.robot_state.multi_dof_joint_state.poses:
00419 _v1 = val1.position
00420 _x = _v1
00421 buff.write(_struct_3d.pack(_x.x, _x.y, _x.z))
00422 _v2 = val1.orientation
00423 _x = _v2
00424 buff.write(_struct_4d.pack(_x.x, _x.y, _x.z, _x.w))
00425 length = len(self.planning_scene.fixed_frame_transforms)
00426 buff.write(_struct_I.pack(length))
00427 for val1 in self.planning_scene.fixed_frame_transforms:
00428 _v3 = val1.header
00429 buff.write(_struct_I.pack(_v3.seq))
00430 _v4 = _v3.stamp
00431 _x = _v4
00432 buff.write(_struct_2I.pack(_x.secs, _x.nsecs))
00433 _x = _v3.frame_id
00434 length = len(_x)
00435 buff.write(struct.pack('<I%ss'%length, length, _x))
00436 _x = val1.child_frame_id
00437 length = len(_x)
00438 buff.write(struct.pack('<I%ss'%length, length, _x))
00439 _v5 = val1.transform
00440 _v6 = _v5.translation
00441 _x = _v6
00442 buff.write(_struct_3d.pack(_x.x, _x.y, _x.z))
00443 _v7 = _v5.rotation
00444 _x = _v7
00445 buff.write(_struct_4d.pack(_x.x, _x.y, _x.z, _x.w))
00446 length = len(self.planning_scene.allowed_collision_matrix.link_names)
00447 buff.write(_struct_I.pack(length))
00448 for val1 in self.planning_scene.allowed_collision_matrix.link_names:
00449 length = len(val1)
00450 buff.write(struct.pack('<I%ss'%length, length, val1))
00451 length = len(self.planning_scene.allowed_collision_matrix.entries)
00452 buff.write(_struct_I.pack(length))
00453 for val1 in self.planning_scene.allowed_collision_matrix.entries:
00454 length = len(val1.enabled)
00455 buff.write(_struct_I.pack(length))
00456 pattern = '<%sB'%length
00457 buff.write(struct.pack(pattern, *val1.enabled))
00458 length = len(self.planning_scene.allowed_contacts)
00459 buff.write(_struct_I.pack(length))
00460 for val1 in self.planning_scene.allowed_contacts:
00461 _x = val1.name
00462 length = len(_x)
00463 buff.write(struct.pack('<I%ss'%length, length, _x))
00464 _v8 = val1.shape
00465 buff.write(_struct_b.pack(_v8.type))
00466 length = len(_v8.dimensions)
00467 buff.write(_struct_I.pack(length))
00468 pattern = '<%sd'%length
00469 buff.write(struct.pack(pattern, *_v8.dimensions))
00470 length = len(_v8.triangles)
00471 buff.write(_struct_I.pack(length))
00472 pattern = '<%si'%length
00473 buff.write(struct.pack(pattern, *_v8.triangles))
00474 length = len(_v8.vertices)
00475 buff.write(_struct_I.pack(length))
00476 for val3 in _v8.vertices:
00477 _x = val3
00478 buff.write(_struct_3d.pack(_x.x, _x.y, _x.z))
00479 _v9 = val1.pose_stamped
00480 _v10 = _v9.header
00481 buff.write(_struct_I.pack(_v10.seq))
00482 _v11 = _v10.stamp
00483 _x = _v11
00484 buff.write(_struct_2I.pack(_x.secs, _x.nsecs))
00485 _x = _v10.frame_id
00486 length = len(_x)
00487 buff.write(struct.pack('<I%ss'%length, length, _x))
00488 _v12 = _v9.pose
00489 _v13 = _v12.position
00490 _x = _v13
00491 buff.write(_struct_3d.pack(_x.x, _x.y, _x.z))
00492 _v14 = _v12.orientation
00493 _x = _v14
00494 buff.write(_struct_4d.pack(_x.x, _x.y, _x.z, _x.w))
00495 length = len(val1.link_names)
00496 buff.write(_struct_I.pack(length))
00497 for val2 in val1.link_names:
00498 length = len(val2)
00499 buff.write(struct.pack('<I%ss'%length, length, val2))
00500 buff.write(_struct_d.pack(val1.penetration_depth))
00501 length = len(self.planning_scene.link_padding)
00502 buff.write(_struct_I.pack(length))
00503 for val1 in self.planning_scene.link_padding:
00504 _x = val1.link_name
00505 length = len(_x)
00506 buff.write(struct.pack('<I%ss'%length, length, _x))
00507 buff.write(_struct_d.pack(val1.padding))
00508 length = len(self.planning_scene.collision_objects)
00509 buff.write(_struct_I.pack(length))
00510 for val1 in self.planning_scene.collision_objects:
00511 _v15 = val1.header
00512 buff.write(_struct_I.pack(_v15.seq))
00513 _v16 = _v15.stamp
00514 _x = _v16
00515 buff.write(_struct_2I.pack(_x.secs, _x.nsecs))
00516 _x = _v15.frame_id
00517 length = len(_x)
00518 buff.write(struct.pack('<I%ss'%length, length, _x))
00519 _x = val1.id
00520 length = len(_x)
00521 buff.write(struct.pack('<I%ss'%length, length, _x))
00522 buff.write(_struct_f.pack(val1.padding))
00523 _v17 = val1.operation
00524 buff.write(_struct_b.pack(_v17.operation))
00525 length = len(val1.shapes)
00526 buff.write(_struct_I.pack(length))
00527 for val2 in val1.shapes:
00528 buff.write(_struct_b.pack(val2.type))
00529 length = len(val2.dimensions)
00530 buff.write(_struct_I.pack(length))
00531 pattern = '<%sd'%length
00532 buff.write(struct.pack(pattern, *val2.dimensions))
00533 length = len(val2.triangles)
00534 buff.write(_struct_I.pack(length))
00535 pattern = '<%si'%length
00536 buff.write(struct.pack(pattern, *val2.triangles))
00537 length = len(val2.vertices)
00538 buff.write(_struct_I.pack(length))
00539 for val3 in val2.vertices:
00540 _x = val3
00541 buff.write(_struct_3d.pack(_x.x, _x.y, _x.z))
00542 length = len(val1.poses)
00543 buff.write(_struct_I.pack(length))
00544 for val2 in val1.poses:
00545 _v18 = val2.position
00546 _x = _v18
00547 buff.write(_struct_3d.pack(_x.x, _x.y, _x.z))
00548 _v19 = val2.orientation
00549 _x = _v19
00550 buff.write(_struct_4d.pack(_x.x, _x.y, _x.z, _x.w))
00551 length = len(self.planning_scene.attached_collision_objects)
00552 buff.write(_struct_I.pack(length))
00553 for val1 in self.planning_scene.attached_collision_objects:
00554 _x = val1.link_name
00555 length = len(_x)
00556 buff.write(struct.pack('<I%ss'%length, length, _x))
00557 _v20 = val1.object
00558 _v21 = _v20.header
00559 buff.write(_struct_I.pack(_v21.seq))
00560 _v22 = _v21.stamp
00561 _x = _v22
00562 buff.write(_struct_2I.pack(_x.secs, _x.nsecs))
00563 _x = _v21.frame_id
00564 length = len(_x)
00565 buff.write(struct.pack('<I%ss'%length, length, _x))
00566 _x = _v20.id
00567 length = len(_x)
00568 buff.write(struct.pack('<I%ss'%length, length, _x))
00569 buff.write(_struct_f.pack(_v20.padding))
00570 _v23 = _v20.operation
00571 buff.write(_struct_b.pack(_v23.operation))
00572 length = len(_v20.shapes)
00573 buff.write(_struct_I.pack(length))
00574 for val3 in _v20.shapes:
00575 buff.write(_struct_b.pack(val3.type))
00576 length = len(val3.dimensions)
00577 buff.write(_struct_I.pack(length))
00578 pattern = '<%sd'%length
00579 buff.write(struct.pack(pattern, *val3.dimensions))
00580 length = len(val3.triangles)
00581 buff.write(_struct_I.pack(length))
00582 pattern = '<%si'%length
00583 buff.write(struct.pack(pattern, *val3.triangles))
00584 length = len(val3.vertices)
00585 buff.write(_struct_I.pack(length))
00586 for val4 in val3.vertices:
00587 _x = val4
00588 buff.write(_struct_3d.pack(_x.x, _x.y, _x.z))
00589 length = len(_v20.poses)
00590 buff.write(_struct_I.pack(length))
00591 for val3 in _v20.poses:
00592 _v24 = val3.position
00593 _x = _v24
00594 buff.write(_struct_3d.pack(_x.x, _x.y, _x.z))
00595 _v25 = val3.orientation
00596 _x = _v25
00597 buff.write(_struct_4d.pack(_x.x, _x.y, _x.z, _x.w))
00598 length = len(val1.touch_links)
00599 buff.write(_struct_I.pack(length))
00600 for val2 in val1.touch_links:
00601 length = len(val2)
00602 buff.write(struct.pack('<I%ss'%length, length, val2))
00603 _x = self
00604 buff.write(_struct_3I.pack(_x.planning_scene.collision_map.header.seq, _x.planning_scene.collision_map.header.stamp.secs, _x.planning_scene.collision_map.header.stamp.nsecs))
00605 _x = self.planning_scene.collision_map.header.frame_id
00606 length = len(_x)
00607 buff.write(struct.pack('<I%ss'%length, length, _x))
00608 length = len(self.planning_scene.collision_map.boxes)
00609 buff.write(_struct_I.pack(length))
00610 for val1 in self.planning_scene.collision_map.boxes:
00611 _v26 = val1.center
00612 _x = _v26
00613 buff.write(_struct_3f.pack(_x.x, _x.y, _x.z))
00614 _v27 = val1.extents
00615 _x = _v27
00616 buff.write(_struct_3f.pack(_x.x, _x.y, _x.z))
00617 _v28 = val1.axis
00618 _x = _v28
00619 buff.write(_struct_3f.pack(_x.x, _x.y, _x.z))
00620 buff.write(_struct_f.pack(val1.angle))
00621 except struct.error as se: self._check_types(se)
00622 except TypeError as te: self._check_types(te)
00623
00624 def deserialize(self, str):
00625 """
00626 unpack serialized message in str into this message instance
00627 @param str: byte array of serialized message
00628 @type str: str
00629 """
00630 try:
00631 if self.planning_scene is None:
00632 self.planning_scene = arm_navigation_msgs.msg.PlanningScene()
00633 end = 0
00634 _x = self
00635 start = end
00636 end += 12
00637 (_x.planning_scene.robot_state.joint_state.header.seq, _x.planning_scene.robot_state.joint_state.header.stamp.secs, _x.planning_scene.robot_state.joint_state.header.stamp.nsecs,) = _struct_3I.unpack(str[start:end])
00638 start = end
00639 end += 4
00640 (length,) = _struct_I.unpack(str[start:end])
00641 start = end
00642 end += length
00643 self.planning_scene.robot_state.joint_state.header.frame_id = str[start:end]
00644 start = end
00645 end += 4
00646 (length,) = _struct_I.unpack(str[start:end])
00647 self.planning_scene.robot_state.joint_state.name = []
00648 for i in range(0, length):
00649 start = end
00650 end += 4
00651 (length,) = _struct_I.unpack(str[start:end])
00652 start = end
00653 end += length
00654 val1 = str[start:end]
00655 self.planning_scene.robot_state.joint_state.name.append(val1)
00656 start = end
00657 end += 4
00658 (length,) = _struct_I.unpack(str[start:end])
00659 pattern = '<%sd'%length
00660 start = end
00661 end += struct.calcsize(pattern)
00662 self.planning_scene.robot_state.joint_state.position = struct.unpack(pattern, str[start:end])
00663 start = end
00664 end += 4
00665 (length,) = _struct_I.unpack(str[start:end])
00666 pattern = '<%sd'%length
00667 start = end
00668 end += struct.calcsize(pattern)
00669 self.planning_scene.robot_state.joint_state.velocity = struct.unpack(pattern, str[start:end])
00670 start = end
00671 end += 4
00672 (length,) = _struct_I.unpack(str[start:end])
00673 pattern = '<%sd'%length
00674 start = end
00675 end += struct.calcsize(pattern)
00676 self.planning_scene.robot_state.joint_state.effort = struct.unpack(pattern, str[start:end])
00677 _x = self
00678 start = end
00679 end += 8
00680 (_x.planning_scene.robot_state.multi_dof_joint_state.stamp.secs, _x.planning_scene.robot_state.multi_dof_joint_state.stamp.nsecs,) = _struct_2I.unpack(str[start:end])
00681 start = end
00682 end += 4
00683 (length,) = _struct_I.unpack(str[start:end])
00684 self.planning_scene.robot_state.multi_dof_joint_state.joint_names = []
00685 for i in range(0, length):
00686 start = end
00687 end += 4
00688 (length,) = _struct_I.unpack(str[start:end])
00689 start = end
00690 end += length
00691 val1 = str[start:end]
00692 self.planning_scene.robot_state.multi_dof_joint_state.joint_names.append(val1)
00693 start = end
00694 end += 4
00695 (length,) = _struct_I.unpack(str[start:end])
00696 self.planning_scene.robot_state.multi_dof_joint_state.frame_ids = []
00697 for i in range(0, length):
00698 start = end
00699 end += 4
00700 (length,) = _struct_I.unpack(str[start:end])
00701 start = end
00702 end += length
00703 val1 = str[start:end]
00704 self.planning_scene.robot_state.multi_dof_joint_state.frame_ids.append(val1)
00705 start = end
00706 end += 4
00707 (length,) = _struct_I.unpack(str[start:end])
00708 self.planning_scene.robot_state.multi_dof_joint_state.child_frame_ids = []
00709 for i in range(0, length):
00710 start = end
00711 end += 4
00712 (length,) = _struct_I.unpack(str[start:end])
00713 start = end
00714 end += length
00715 val1 = str[start:end]
00716 self.planning_scene.robot_state.multi_dof_joint_state.child_frame_ids.append(val1)
00717 start = end
00718 end += 4
00719 (length,) = _struct_I.unpack(str[start:end])
00720 self.planning_scene.robot_state.multi_dof_joint_state.poses = []
00721 for i in range(0, length):
00722 val1 = geometry_msgs.msg.Pose()
00723 _v29 = val1.position
00724 _x = _v29
00725 start = end
00726 end += 24
00727 (_x.x, _x.y, _x.z,) = _struct_3d.unpack(str[start:end])
00728 _v30 = val1.orientation
00729 _x = _v30
00730 start = end
00731 end += 32
00732 (_x.x, _x.y, _x.z, _x.w,) = _struct_4d.unpack(str[start:end])
00733 self.planning_scene.robot_state.multi_dof_joint_state.poses.append(val1)
00734 start = end
00735 end += 4
00736 (length,) = _struct_I.unpack(str[start:end])
00737 self.planning_scene.fixed_frame_transforms = []
00738 for i in range(0, length):
00739 val1 = geometry_msgs.msg.TransformStamped()
00740 _v31 = val1.header
00741 start = end
00742 end += 4
00743 (_v31.seq,) = _struct_I.unpack(str[start:end])
00744 _v32 = _v31.stamp
00745 _x = _v32
00746 start = end
00747 end += 8
00748 (_x.secs, _x.nsecs,) = _struct_2I.unpack(str[start:end])
00749 start = end
00750 end += 4
00751 (length,) = _struct_I.unpack(str[start:end])
00752 start = end
00753 end += length
00754 _v31.frame_id = str[start:end]
00755 start = end
00756 end += 4
00757 (length,) = _struct_I.unpack(str[start:end])
00758 start = end
00759 end += length
00760 val1.child_frame_id = str[start:end]
00761 _v33 = val1.transform
00762 _v34 = _v33.translation
00763 _x = _v34
00764 start = end
00765 end += 24
00766 (_x.x, _x.y, _x.z,) = _struct_3d.unpack(str[start:end])
00767 _v35 = _v33.rotation
00768 _x = _v35
00769 start = end
00770 end += 32
00771 (_x.x, _x.y, _x.z, _x.w,) = _struct_4d.unpack(str[start:end])
00772 self.planning_scene.fixed_frame_transforms.append(val1)
00773 start = end
00774 end += 4
00775 (length,) = _struct_I.unpack(str[start:end])
00776 self.planning_scene.allowed_collision_matrix.link_names = []
00777 for i in range(0, length):
00778 start = end
00779 end += 4
00780 (length,) = _struct_I.unpack(str[start:end])
00781 start = end
00782 end += length
00783 val1 = str[start:end]
00784 self.planning_scene.allowed_collision_matrix.link_names.append(val1)
00785 start = end
00786 end += 4
00787 (length,) = _struct_I.unpack(str[start:end])
00788 self.planning_scene.allowed_collision_matrix.entries = []
00789 for i in range(0, length):
00790 val1 = arm_navigation_msgs.msg.AllowedCollisionEntry()
00791 start = end
00792 end += 4
00793 (length,) = _struct_I.unpack(str[start:end])
00794 pattern = '<%sB'%length
00795 start = end
00796 end += struct.calcsize(pattern)
00797 val1.enabled = struct.unpack(pattern, str[start:end])
00798 val1.enabled = map(bool, val1.enabled)
00799 self.planning_scene.allowed_collision_matrix.entries.append(val1)
00800 start = end
00801 end += 4
00802 (length,) = _struct_I.unpack(str[start:end])
00803 self.planning_scene.allowed_contacts = []
00804 for i in range(0, length):
00805 val1 = arm_navigation_msgs.msg.AllowedContactSpecification()
00806 start = end
00807 end += 4
00808 (length,) = _struct_I.unpack(str[start:end])
00809 start = end
00810 end += length
00811 val1.name = str[start:end]
00812 _v36 = val1.shape
00813 start = end
00814 end += 1
00815 (_v36.type,) = _struct_b.unpack(str[start:end])
00816 start = end
00817 end += 4
00818 (length,) = _struct_I.unpack(str[start:end])
00819 pattern = '<%sd'%length
00820 start = end
00821 end += struct.calcsize(pattern)
00822 _v36.dimensions = struct.unpack(pattern, str[start:end])
00823 start = end
00824 end += 4
00825 (length,) = _struct_I.unpack(str[start:end])
00826 pattern = '<%si'%length
00827 start = end
00828 end += struct.calcsize(pattern)
00829 _v36.triangles = struct.unpack(pattern, str[start:end])
00830 start = end
00831 end += 4
00832 (length,) = _struct_I.unpack(str[start:end])
00833 _v36.vertices = []
00834 for i in range(0, length):
00835 val3 = geometry_msgs.msg.Point()
00836 _x = val3
00837 start = end
00838 end += 24
00839 (_x.x, _x.y, _x.z,) = _struct_3d.unpack(str[start:end])
00840 _v36.vertices.append(val3)
00841 _v37 = val1.pose_stamped
00842 _v38 = _v37.header
00843 start = end
00844 end += 4
00845 (_v38.seq,) = _struct_I.unpack(str[start:end])
00846 _v39 = _v38.stamp
00847 _x = _v39
00848 start = end
00849 end += 8
00850 (_x.secs, _x.nsecs,) = _struct_2I.unpack(str[start:end])
00851 start = end
00852 end += 4
00853 (length,) = _struct_I.unpack(str[start:end])
00854 start = end
00855 end += length
00856 _v38.frame_id = str[start:end]
00857 _v40 = _v37.pose
00858 _v41 = _v40.position
00859 _x = _v41
00860 start = end
00861 end += 24
00862 (_x.x, _x.y, _x.z,) = _struct_3d.unpack(str[start:end])
00863 _v42 = _v40.orientation
00864 _x = _v42
00865 start = end
00866 end += 32
00867 (_x.x, _x.y, _x.z, _x.w,) = _struct_4d.unpack(str[start:end])
00868 start = end
00869 end += 4
00870 (length,) = _struct_I.unpack(str[start:end])
00871 val1.link_names = []
00872 for i in range(0, length):
00873 start = end
00874 end += 4
00875 (length,) = _struct_I.unpack(str[start:end])
00876 start = end
00877 end += length
00878 val2 = str[start:end]
00879 val1.link_names.append(val2)
00880 start = end
00881 end += 8
00882 (val1.penetration_depth,) = _struct_d.unpack(str[start:end])
00883 self.planning_scene.allowed_contacts.append(val1)
00884 start = end
00885 end += 4
00886 (length,) = _struct_I.unpack(str[start:end])
00887 self.planning_scene.link_padding = []
00888 for i in range(0, length):
00889 val1 = arm_navigation_msgs.msg.LinkPadding()
00890 start = end
00891 end += 4
00892 (length,) = _struct_I.unpack(str[start:end])
00893 start = end
00894 end += length
00895 val1.link_name = str[start:end]
00896 start = end
00897 end += 8
00898 (val1.padding,) = _struct_d.unpack(str[start:end])
00899 self.planning_scene.link_padding.append(val1)
00900 start = end
00901 end += 4
00902 (length,) = _struct_I.unpack(str[start:end])
00903 self.planning_scene.collision_objects = []
00904 for i in range(0, length):
00905 val1 = arm_navigation_msgs.msg.CollisionObject()
00906 _v43 = val1.header
00907 start = end
00908 end += 4
00909 (_v43.seq,) = _struct_I.unpack(str[start:end])
00910 _v44 = _v43.stamp
00911 _x = _v44
00912 start = end
00913 end += 8
00914 (_x.secs, _x.nsecs,) = _struct_2I.unpack(str[start:end])
00915 start = end
00916 end += 4
00917 (length,) = _struct_I.unpack(str[start:end])
00918 start = end
00919 end += length
00920 _v43.frame_id = str[start:end]
00921 start = end
00922 end += 4
00923 (length,) = _struct_I.unpack(str[start:end])
00924 start = end
00925 end += length
00926 val1.id = str[start:end]
00927 start = end
00928 end += 4
00929 (val1.padding,) = _struct_f.unpack(str[start:end])
00930 _v45 = val1.operation
00931 start = end
00932 end += 1
00933 (_v45.operation,) = _struct_b.unpack(str[start:end])
00934 start = end
00935 end += 4
00936 (length,) = _struct_I.unpack(str[start:end])
00937 val1.shapes = []
00938 for i in range(0, length):
00939 val2 = arm_navigation_msgs.msg.Shape()
00940 start = end
00941 end += 1
00942 (val2.type,) = _struct_b.unpack(str[start:end])
00943 start = end
00944 end += 4
00945 (length,) = _struct_I.unpack(str[start:end])
00946 pattern = '<%sd'%length
00947 start = end
00948 end += struct.calcsize(pattern)
00949 val2.dimensions = struct.unpack(pattern, str[start:end])
00950 start = end
00951 end += 4
00952 (length,) = _struct_I.unpack(str[start:end])
00953 pattern = '<%si'%length
00954 start = end
00955 end += struct.calcsize(pattern)
00956 val2.triangles = struct.unpack(pattern, str[start:end])
00957 start = end
00958 end += 4
00959 (length,) = _struct_I.unpack(str[start:end])
00960 val2.vertices = []
00961 for i in range(0, length):
00962 val3 = geometry_msgs.msg.Point()
00963 _x = val3
00964 start = end
00965 end += 24
00966 (_x.x, _x.y, _x.z,) = _struct_3d.unpack(str[start:end])
00967 val2.vertices.append(val3)
00968 val1.shapes.append(val2)
00969 start = end
00970 end += 4
00971 (length,) = _struct_I.unpack(str[start:end])
00972 val1.poses = []
00973 for i in range(0, length):
00974 val2 = geometry_msgs.msg.Pose()
00975 _v46 = val2.position
00976 _x = _v46
00977 start = end
00978 end += 24
00979 (_x.x, _x.y, _x.z,) = _struct_3d.unpack(str[start:end])
00980 _v47 = val2.orientation
00981 _x = _v47
00982 start = end
00983 end += 32
00984 (_x.x, _x.y, _x.z, _x.w,) = _struct_4d.unpack(str[start:end])
00985 val1.poses.append(val2)
00986 self.planning_scene.collision_objects.append(val1)
00987 start = end
00988 end += 4
00989 (length,) = _struct_I.unpack(str[start:end])
00990 self.planning_scene.attached_collision_objects = []
00991 for i in range(0, length):
00992 val1 = arm_navigation_msgs.msg.AttachedCollisionObject()
00993 start = end
00994 end += 4
00995 (length,) = _struct_I.unpack(str[start:end])
00996 start = end
00997 end += length
00998 val1.link_name = str[start:end]
00999 _v48 = val1.object
01000 _v49 = _v48.header
01001 start = end
01002 end += 4
01003 (_v49.seq,) = _struct_I.unpack(str[start:end])
01004 _v50 = _v49.stamp
01005 _x = _v50
01006 start = end
01007 end += 8
01008 (_x.secs, _x.nsecs,) = _struct_2I.unpack(str[start:end])
01009 start = end
01010 end += 4
01011 (length,) = _struct_I.unpack(str[start:end])
01012 start = end
01013 end += length
01014 _v49.frame_id = str[start:end]
01015 start = end
01016 end += 4
01017 (length,) = _struct_I.unpack(str[start:end])
01018 start = end
01019 end += length
01020 _v48.id = str[start:end]
01021 start = end
01022 end += 4
01023 (_v48.padding,) = _struct_f.unpack(str[start:end])
01024 _v51 = _v48.operation
01025 start = end
01026 end += 1
01027 (_v51.operation,) = _struct_b.unpack(str[start:end])
01028 start = end
01029 end += 4
01030 (length,) = _struct_I.unpack(str[start:end])
01031 _v48.shapes = []
01032 for i in range(0, length):
01033 val3 = arm_navigation_msgs.msg.Shape()
01034 start = end
01035 end += 1
01036 (val3.type,) = _struct_b.unpack(str[start:end])
01037 start = end
01038 end += 4
01039 (length,) = _struct_I.unpack(str[start:end])
01040 pattern = '<%sd'%length
01041 start = end
01042 end += struct.calcsize(pattern)
01043 val3.dimensions = struct.unpack(pattern, str[start:end])
01044 start = end
01045 end += 4
01046 (length,) = _struct_I.unpack(str[start:end])
01047 pattern = '<%si'%length
01048 start = end
01049 end += struct.calcsize(pattern)
01050 val3.triangles = struct.unpack(pattern, str[start:end])
01051 start = end
01052 end += 4
01053 (length,) = _struct_I.unpack(str[start:end])
01054 val3.vertices = []
01055 for i in range(0, length):
01056 val4 = geometry_msgs.msg.Point()
01057 _x = val4
01058 start = end
01059 end += 24
01060 (_x.x, _x.y, _x.z,) = _struct_3d.unpack(str[start:end])
01061 val3.vertices.append(val4)
01062 _v48.shapes.append(val3)
01063 start = end
01064 end += 4
01065 (length,) = _struct_I.unpack(str[start:end])
01066 _v48.poses = []
01067 for i in range(0, length):
01068 val3 = geometry_msgs.msg.Pose()
01069 _v52 = val3.position
01070 _x = _v52
01071 start = end
01072 end += 24
01073 (_x.x, _x.y, _x.z,) = _struct_3d.unpack(str[start:end])
01074 _v53 = val3.orientation
01075 _x = _v53
01076 start = end
01077 end += 32
01078 (_x.x, _x.y, _x.z, _x.w,) = _struct_4d.unpack(str[start:end])
01079 _v48.poses.append(val3)
01080 start = end
01081 end += 4
01082 (length,) = _struct_I.unpack(str[start:end])
01083 val1.touch_links = []
01084 for i in range(0, length):
01085 start = end
01086 end += 4
01087 (length,) = _struct_I.unpack(str[start:end])
01088 start = end
01089 end += length
01090 val2 = str[start:end]
01091 val1.touch_links.append(val2)
01092 self.planning_scene.attached_collision_objects.append(val1)
01093 _x = self
01094 start = end
01095 end += 12
01096 (_x.planning_scene.collision_map.header.seq, _x.planning_scene.collision_map.header.stamp.secs, _x.planning_scene.collision_map.header.stamp.nsecs,) = _struct_3I.unpack(str[start:end])
01097 start = end
01098 end += 4
01099 (length,) = _struct_I.unpack(str[start:end])
01100 start = end
01101 end += length
01102 self.planning_scene.collision_map.header.frame_id = str[start:end]
01103 start = end
01104 end += 4
01105 (length,) = _struct_I.unpack(str[start:end])
01106 self.planning_scene.collision_map.boxes = []
01107 for i in range(0, length):
01108 val1 = arm_navigation_msgs.msg.OrientedBoundingBox()
01109 _v54 = val1.center
01110 _x = _v54
01111 start = end
01112 end += 12
01113 (_x.x, _x.y, _x.z,) = _struct_3f.unpack(str[start:end])
01114 _v55 = val1.extents
01115 _x = _v55
01116 start = end
01117 end += 12
01118 (_x.x, _x.y, _x.z,) = _struct_3f.unpack(str[start:end])
01119 _v56 = val1.axis
01120 _x = _v56
01121 start = end
01122 end += 12
01123 (_x.x, _x.y, _x.z,) = _struct_3f.unpack(str[start:end])
01124 start = end
01125 end += 4
01126 (val1.angle,) = _struct_f.unpack(str[start:end])
01127 self.planning_scene.collision_map.boxes.append(val1)
01128 return self
01129 except struct.error as e:
01130 raise roslib.message.DeserializationError(e)
01131
01132
01133 def serialize_numpy(self, buff, numpy):
01134 """
01135 serialize message with numpy array types into buffer
01136 @param buff: buffer
01137 @type buff: StringIO
01138 @param numpy: numpy python module
01139 @type numpy module
01140 """
01141 try:
01142 _x = self
01143 buff.write(_struct_3I.pack(_x.planning_scene.robot_state.joint_state.header.seq, _x.planning_scene.robot_state.joint_state.header.stamp.secs, _x.planning_scene.robot_state.joint_state.header.stamp.nsecs))
01144 _x = self.planning_scene.robot_state.joint_state.header.frame_id
01145 length = len(_x)
01146 buff.write(struct.pack('<I%ss'%length, length, _x))
01147 length = len(self.planning_scene.robot_state.joint_state.name)
01148 buff.write(_struct_I.pack(length))
01149 for val1 in self.planning_scene.robot_state.joint_state.name:
01150 length = len(val1)
01151 buff.write(struct.pack('<I%ss'%length, length, val1))
01152 length = len(self.planning_scene.robot_state.joint_state.position)
01153 buff.write(_struct_I.pack(length))
01154 pattern = '<%sd'%length
01155 buff.write(self.planning_scene.robot_state.joint_state.position.tostring())
01156 length = len(self.planning_scene.robot_state.joint_state.velocity)
01157 buff.write(_struct_I.pack(length))
01158 pattern = '<%sd'%length
01159 buff.write(self.planning_scene.robot_state.joint_state.velocity.tostring())
01160 length = len(self.planning_scene.robot_state.joint_state.effort)
01161 buff.write(_struct_I.pack(length))
01162 pattern = '<%sd'%length
01163 buff.write(self.planning_scene.robot_state.joint_state.effort.tostring())
01164 _x = self
01165 buff.write(_struct_2I.pack(_x.planning_scene.robot_state.multi_dof_joint_state.stamp.secs, _x.planning_scene.robot_state.multi_dof_joint_state.stamp.nsecs))
01166 length = len(self.planning_scene.robot_state.multi_dof_joint_state.joint_names)
01167 buff.write(_struct_I.pack(length))
01168 for val1 in self.planning_scene.robot_state.multi_dof_joint_state.joint_names:
01169 length = len(val1)
01170 buff.write(struct.pack('<I%ss'%length, length, val1))
01171 length = len(self.planning_scene.robot_state.multi_dof_joint_state.frame_ids)
01172 buff.write(_struct_I.pack(length))
01173 for val1 in self.planning_scene.robot_state.multi_dof_joint_state.frame_ids:
01174 length = len(val1)
01175 buff.write(struct.pack('<I%ss'%length, length, val1))
01176 length = len(self.planning_scene.robot_state.multi_dof_joint_state.child_frame_ids)
01177 buff.write(_struct_I.pack(length))
01178 for val1 in self.planning_scene.robot_state.multi_dof_joint_state.child_frame_ids:
01179 length = len(val1)
01180 buff.write(struct.pack('<I%ss'%length, length, val1))
01181 length = len(self.planning_scene.robot_state.multi_dof_joint_state.poses)
01182 buff.write(_struct_I.pack(length))
01183 for val1 in self.planning_scene.robot_state.multi_dof_joint_state.poses:
01184 _v57 = val1.position
01185 _x = _v57
01186 buff.write(_struct_3d.pack(_x.x, _x.y, _x.z))
01187 _v58 = val1.orientation
01188 _x = _v58
01189 buff.write(_struct_4d.pack(_x.x, _x.y, _x.z, _x.w))
01190 length = len(self.planning_scene.fixed_frame_transforms)
01191 buff.write(_struct_I.pack(length))
01192 for val1 in self.planning_scene.fixed_frame_transforms:
01193 _v59 = val1.header
01194 buff.write(_struct_I.pack(_v59.seq))
01195 _v60 = _v59.stamp
01196 _x = _v60
01197 buff.write(_struct_2I.pack(_x.secs, _x.nsecs))
01198 _x = _v59.frame_id
01199 length = len(_x)
01200 buff.write(struct.pack('<I%ss'%length, length, _x))
01201 _x = val1.child_frame_id
01202 length = len(_x)
01203 buff.write(struct.pack('<I%ss'%length, length, _x))
01204 _v61 = val1.transform
01205 _v62 = _v61.translation
01206 _x = _v62
01207 buff.write(_struct_3d.pack(_x.x, _x.y, _x.z))
01208 _v63 = _v61.rotation
01209 _x = _v63
01210 buff.write(_struct_4d.pack(_x.x, _x.y, _x.z, _x.w))
01211 length = len(self.planning_scene.allowed_collision_matrix.link_names)
01212 buff.write(_struct_I.pack(length))
01213 for val1 in self.planning_scene.allowed_collision_matrix.link_names:
01214 length = len(val1)
01215 buff.write(struct.pack('<I%ss'%length, length, val1))
01216 length = len(self.planning_scene.allowed_collision_matrix.entries)
01217 buff.write(_struct_I.pack(length))
01218 for val1 in self.planning_scene.allowed_collision_matrix.entries:
01219 length = len(val1.enabled)
01220 buff.write(_struct_I.pack(length))
01221 pattern = '<%sB'%length
01222 buff.write(val1.enabled.tostring())
01223 length = len(self.planning_scene.allowed_contacts)
01224 buff.write(_struct_I.pack(length))
01225 for val1 in self.planning_scene.allowed_contacts:
01226 _x = val1.name
01227 length = len(_x)
01228 buff.write(struct.pack('<I%ss'%length, length, _x))
01229 _v64 = val1.shape
01230 buff.write(_struct_b.pack(_v64.type))
01231 length = len(_v64.dimensions)
01232 buff.write(_struct_I.pack(length))
01233 pattern = '<%sd'%length
01234 buff.write(_v64.dimensions.tostring())
01235 length = len(_v64.triangles)
01236 buff.write(_struct_I.pack(length))
01237 pattern = '<%si'%length
01238 buff.write(_v64.triangles.tostring())
01239 length = len(_v64.vertices)
01240 buff.write(_struct_I.pack(length))
01241 for val3 in _v64.vertices:
01242 _x = val3
01243 buff.write(_struct_3d.pack(_x.x, _x.y, _x.z))
01244 _v65 = val1.pose_stamped
01245 _v66 = _v65.header
01246 buff.write(_struct_I.pack(_v66.seq))
01247 _v67 = _v66.stamp
01248 _x = _v67
01249 buff.write(_struct_2I.pack(_x.secs, _x.nsecs))
01250 _x = _v66.frame_id
01251 length = len(_x)
01252 buff.write(struct.pack('<I%ss'%length, length, _x))
01253 _v68 = _v65.pose
01254 _v69 = _v68.position
01255 _x = _v69
01256 buff.write(_struct_3d.pack(_x.x, _x.y, _x.z))
01257 _v70 = _v68.orientation
01258 _x = _v70
01259 buff.write(_struct_4d.pack(_x.x, _x.y, _x.z, _x.w))
01260 length = len(val1.link_names)
01261 buff.write(_struct_I.pack(length))
01262 for val2 in val1.link_names:
01263 length = len(val2)
01264 buff.write(struct.pack('<I%ss'%length, length, val2))
01265 buff.write(_struct_d.pack(val1.penetration_depth))
01266 length = len(self.planning_scene.link_padding)
01267 buff.write(_struct_I.pack(length))
01268 for val1 in self.planning_scene.link_padding:
01269 _x = val1.link_name
01270 length = len(_x)
01271 buff.write(struct.pack('<I%ss'%length, length, _x))
01272 buff.write(_struct_d.pack(val1.padding))
01273 length = len(self.planning_scene.collision_objects)
01274 buff.write(_struct_I.pack(length))
01275 for val1 in self.planning_scene.collision_objects:
01276 _v71 = val1.header
01277 buff.write(_struct_I.pack(_v71.seq))
01278 _v72 = _v71.stamp
01279 _x = _v72
01280 buff.write(_struct_2I.pack(_x.secs, _x.nsecs))
01281 _x = _v71.frame_id
01282 length = len(_x)
01283 buff.write(struct.pack('<I%ss'%length, length, _x))
01284 _x = val1.id
01285 length = len(_x)
01286 buff.write(struct.pack('<I%ss'%length, length, _x))
01287 buff.write(_struct_f.pack(val1.padding))
01288 _v73 = val1.operation
01289 buff.write(_struct_b.pack(_v73.operation))
01290 length = len(val1.shapes)
01291 buff.write(_struct_I.pack(length))
01292 for val2 in val1.shapes:
01293 buff.write(_struct_b.pack(val2.type))
01294 length = len(val2.dimensions)
01295 buff.write(_struct_I.pack(length))
01296 pattern = '<%sd'%length
01297 buff.write(val2.dimensions.tostring())
01298 length = len(val2.triangles)
01299 buff.write(_struct_I.pack(length))
01300 pattern = '<%si'%length
01301 buff.write(val2.triangles.tostring())
01302 length = len(val2.vertices)
01303 buff.write(_struct_I.pack(length))
01304 for val3 in val2.vertices:
01305 _x = val3
01306 buff.write(_struct_3d.pack(_x.x, _x.y, _x.z))
01307 length = len(val1.poses)
01308 buff.write(_struct_I.pack(length))
01309 for val2 in val1.poses:
01310 _v74 = val2.position
01311 _x = _v74
01312 buff.write(_struct_3d.pack(_x.x, _x.y, _x.z))
01313 _v75 = val2.orientation
01314 _x = _v75
01315 buff.write(_struct_4d.pack(_x.x, _x.y, _x.z, _x.w))
01316 length = len(self.planning_scene.attached_collision_objects)
01317 buff.write(_struct_I.pack(length))
01318 for val1 in self.planning_scene.attached_collision_objects:
01319 _x = val1.link_name
01320 length = len(_x)
01321 buff.write(struct.pack('<I%ss'%length, length, _x))
01322 _v76 = val1.object
01323 _v77 = _v76.header
01324 buff.write(_struct_I.pack(_v77.seq))
01325 _v78 = _v77.stamp
01326 _x = _v78
01327 buff.write(_struct_2I.pack(_x.secs, _x.nsecs))
01328 _x = _v77.frame_id
01329 length = len(_x)
01330 buff.write(struct.pack('<I%ss'%length, length, _x))
01331 _x = _v76.id
01332 length = len(_x)
01333 buff.write(struct.pack('<I%ss'%length, length, _x))
01334 buff.write(_struct_f.pack(_v76.padding))
01335 _v79 = _v76.operation
01336 buff.write(_struct_b.pack(_v79.operation))
01337 length = len(_v76.shapes)
01338 buff.write(_struct_I.pack(length))
01339 for val3 in _v76.shapes:
01340 buff.write(_struct_b.pack(val3.type))
01341 length = len(val3.dimensions)
01342 buff.write(_struct_I.pack(length))
01343 pattern = '<%sd'%length
01344 buff.write(val3.dimensions.tostring())
01345 length = len(val3.triangles)
01346 buff.write(_struct_I.pack(length))
01347 pattern = '<%si'%length
01348 buff.write(val3.triangles.tostring())
01349 length = len(val3.vertices)
01350 buff.write(_struct_I.pack(length))
01351 for val4 in val3.vertices:
01352 _x = val4
01353 buff.write(_struct_3d.pack(_x.x, _x.y, _x.z))
01354 length = len(_v76.poses)
01355 buff.write(_struct_I.pack(length))
01356 for val3 in _v76.poses:
01357 _v80 = val3.position
01358 _x = _v80
01359 buff.write(_struct_3d.pack(_x.x, _x.y, _x.z))
01360 _v81 = val3.orientation
01361 _x = _v81
01362 buff.write(_struct_4d.pack(_x.x, _x.y, _x.z, _x.w))
01363 length = len(val1.touch_links)
01364 buff.write(_struct_I.pack(length))
01365 for val2 in val1.touch_links:
01366 length = len(val2)
01367 buff.write(struct.pack('<I%ss'%length, length, val2))
01368 _x = self
01369 buff.write(_struct_3I.pack(_x.planning_scene.collision_map.header.seq, _x.planning_scene.collision_map.header.stamp.secs, _x.planning_scene.collision_map.header.stamp.nsecs))
01370 _x = self.planning_scene.collision_map.header.frame_id
01371 length = len(_x)
01372 buff.write(struct.pack('<I%ss'%length, length, _x))
01373 length = len(self.planning_scene.collision_map.boxes)
01374 buff.write(_struct_I.pack(length))
01375 for val1 in self.planning_scene.collision_map.boxes:
01376 _v82 = val1.center
01377 _x = _v82
01378 buff.write(_struct_3f.pack(_x.x, _x.y, _x.z))
01379 _v83 = val1.extents
01380 _x = _v83
01381 buff.write(_struct_3f.pack(_x.x, _x.y, _x.z))
01382 _v84 = val1.axis
01383 _x = _v84
01384 buff.write(_struct_3f.pack(_x.x, _x.y, _x.z))
01385 buff.write(_struct_f.pack(val1.angle))
01386 except struct.error as se: self._check_types(se)
01387 except TypeError as te: self._check_types(te)
01388
01389 def deserialize_numpy(self, str, numpy):
01390 """
01391 unpack serialized message in str into this message instance using numpy for array types
01392 @param str: byte array of serialized message
01393 @type str: str
01394 @param numpy: numpy python module
01395 @type numpy: module
01396 """
01397 try:
01398 if self.planning_scene is None:
01399 self.planning_scene = arm_navigation_msgs.msg.PlanningScene()
01400 end = 0
01401 _x = self
01402 start = end
01403 end += 12
01404 (_x.planning_scene.robot_state.joint_state.header.seq, _x.planning_scene.robot_state.joint_state.header.stamp.secs, _x.planning_scene.robot_state.joint_state.header.stamp.nsecs,) = _struct_3I.unpack(str[start:end])
01405 start = end
01406 end += 4
01407 (length,) = _struct_I.unpack(str[start:end])
01408 start = end
01409 end += length
01410 self.planning_scene.robot_state.joint_state.header.frame_id = str[start:end]
01411 start = end
01412 end += 4
01413 (length,) = _struct_I.unpack(str[start:end])
01414 self.planning_scene.robot_state.joint_state.name = []
01415 for i in range(0, length):
01416 start = end
01417 end += 4
01418 (length,) = _struct_I.unpack(str[start:end])
01419 start = end
01420 end += length
01421 val1 = str[start:end]
01422 self.planning_scene.robot_state.joint_state.name.append(val1)
01423 start = end
01424 end += 4
01425 (length,) = _struct_I.unpack(str[start:end])
01426 pattern = '<%sd'%length
01427 start = end
01428 end += struct.calcsize(pattern)
01429 self.planning_scene.robot_state.joint_state.position = numpy.frombuffer(str[start:end], dtype=numpy.float64, count=length)
01430 start = end
01431 end += 4
01432 (length,) = _struct_I.unpack(str[start:end])
01433 pattern = '<%sd'%length
01434 start = end
01435 end += struct.calcsize(pattern)
01436 self.planning_scene.robot_state.joint_state.velocity = numpy.frombuffer(str[start:end], dtype=numpy.float64, count=length)
01437 start = end
01438 end += 4
01439 (length,) = _struct_I.unpack(str[start:end])
01440 pattern = '<%sd'%length
01441 start = end
01442 end += struct.calcsize(pattern)
01443 self.planning_scene.robot_state.joint_state.effort = numpy.frombuffer(str[start:end], dtype=numpy.float64, count=length)
01444 _x = self
01445 start = end
01446 end += 8
01447 (_x.planning_scene.robot_state.multi_dof_joint_state.stamp.secs, _x.planning_scene.robot_state.multi_dof_joint_state.stamp.nsecs,) = _struct_2I.unpack(str[start:end])
01448 start = end
01449 end += 4
01450 (length,) = _struct_I.unpack(str[start:end])
01451 self.planning_scene.robot_state.multi_dof_joint_state.joint_names = []
01452 for i in range(0, length):
01453 start = end
01454 end += 4
01455 (length,) = _struct_I.unpack(str[start:end])
01456 start = end
01457 end += length
01458 val1 = str[start:end]
01459 self.planning_scene.robot_state.multi_dof_joint_state.joint_names.append(val1)
01460 start = end
01461 end += 4
01462 (length,) = _struct_I.unpack(str[start:end])
01463 self.planning_scene.robot_state.multi_dof_joint_state.frame_ids = []
01464 for i in range(0, length):
01465 start = end
01466 end += 4
01467 (length,) = _struct_I.unpack(str[start:end])
01468 start = end
01469 end += length
01470 val1 = str[start:end]
01471 self.planning_scene.robot_state.multi_dof_joint_state.frame_ids.append(val1)
01472 start = end
01473 end += 4
01474 (length,) = _struct_I.unpack(str[start:end])
01475 self.planning_scene.robot_state.multi_dof_joint_state.child_frame_ids = []
01476 for i in range(0, length):
01477 start = end
01478 end += 4
01479 (length,) = _struct_I.unpack(str[start:end])
01480 start = end
01481 end += length
01482 val1 = str[start:end]
01483 self.planning_scene.robot_state.multi_dof_joint_state.child_frame_ids.append(val1)
01484 start = end
01485 end += 4
01486 (length,) = _struct_I.unpack(str[start:end])
01487 self.planning_scene.robot_state.multi_dof_joint_state.poses = []
01488 for i in range(0, length):
01489 val1 = geometry_msgs.msg.Pose()
01490 _v85 = val1.position
01491 _x = _v85
01492 start = end
01493 end += 24
01494 (_x.x, _x.y, _x.z,) = _struct_3d.unpack(str[start:end])
01495 _v86 = val1.orientation
01496 _x = _v86
01497 start = end
01498 end += 32
01499 (_x.x, _x.y, _x.z, _x.w,) = _struct_4d.unpack(str[start:end])
01500 self.planning_scene.robot_state.multi_dof_joint_state.poses.append(val1)
01501 start = end
01502 end += 4
01503 (length,) = _struct_I.unpack(str[start:end])
01504 self.planning_scene.fixed_frame_transforms = []
01505 for i in range(0, length):
01506 val1 = geometry_msgs.msg.TransformStamped()
01507 _v87 = val1.header
01508 start = end
01509 end += 4
01510 (_v87.seq,) = _struct_I.unpack(str[start:end])
01511 _v88 = _v87.stamp
01512 _x = _v88
01513 start = end
01514 end += 8
01515 (_x.secs, _x.nsecs,) = _struct_2I.unpack(str[start:end])
01516 start = end
01517 end += 4
01518 (length,) = _struct_I.unpack(str[start:end])
01519 start = end
01520 end += length
01521 _v87.frame_id = str[start:end]
01522 start = end
01523 end += 4
01524 (length,) = _struct_I.unpack(str[start:end])
01525 start = end
01526 end += length
01527 val1.child_frame_id = str[start:end]
01528 _v89 = val1.transform
01529 _v90 = _v89.translation
01530 _x = _v90
01531 start = end
01532 end += 24
01533 (_x.x, _x.y, _x.z,) = _struct_3d.unpack(str[start:end])
01534 _v91 = _v89.rotation
01535 _x = _v91
01536 start = end
01537 end += 32
01538 (_x.x, _x.y, _x.z, _x.w,) = _struct_4d.unpack(str[start:end])
01539 self.planning_scene.fixed_frame_transforms.append(val1)
01540 start = end
01541 end += 4
01542 (length,) = _struct_I.unpack(str[start:end])
01543 self.planning_scene.allowed_collision_matrix.link_names = []
01544 for i in range(0, length):
01545 start = end
01546 end += 4
01547 (length,) = _struct_I.unpack(str[start:end])
01548 start = end
01549 end += length
01550 val1 = str[start:end]
01551 self.planning_scene.allowed_collision_matrix.link_names.append(val1)
01552 start = end
01553 end += 4
01554 (length,) = _struct_I.unpack(str[start:end])
01555 self.planning_scene.allowed_collision_matrix.entries = []
01556 for i in range(0, length):
01557 val1 = arm_navigation_msgs.msg.AllowedCollisionEntry()
01558 start = end
01559 end += 4
01560 (length,) = _struct_I.unpack(str[start:end])
01561 pattern = '<%sB'%length
01562 start = end
01563 end += struct.calcsize(pattern)
01564 val1.enabled = numpy.frombuffer(str[start:end], dtype=numpy.bool, count=length)
01565 val1.enabled = map(bool, val1.enabled)
01566 self.planning_scene.allowed_collision_matrix.entries.append(val1)
01567 start = end
01568 end += 4
01569 (length,) = _struct_I.unpack(str[start:end])
01570 self.planning_scene.allowed_contacts = []
01571 for i in range(0, length):
01572 val1 = arm_navigation_msgs.msg.AllowedContactSpecification()
01573 start = end
01574 end += 4
01575 (length,) = _struct_I.unpack(str[start:end])
01576 start = end
01577 end += length
01578 val1.name = str[start:end]
01579 _v92 = val1.shape
01580 start = end
01581 end += 1
01582 (_v92.type,) = _struct_b.unpack(str[start:end])
01583 start = end
01584 end += 4
01585 (length,) = _struct_I.unpack(str[start:end])
01586 pattern = '<%sd'%length
01587 start = end
01588 end += struct.calcsize(pattern)
01589 _v92.dimensions = numpy.frombuffer(str[start:end], dtype=numpy.float64, count=length)
01590 start = end
01591 end += 4
01592 (length,) = _struct_I.unpack(str[start:end])
01593 pattern = '<%si'%length
01594 start = end
01595 end += struct.calcsize(pattern)
01596 _v92.triangles = numpy.frombuffer(str[start:end], dtype=numpy.int32, count=length)
01597 start = end
01598 end += 4
01599 (length,) = _struct_I.unpack(str[start:end])
01600 _v92.vertices = []
01601 for i in range(0, length):
01602 val3 = geometry_msgs.msg.Point()
01603 _x = val3
01604 start = end
01605 end += 24
01606 (_x.x, _x.y, _x.z,) = _struct_3d.unpack(str[start:end])
01607 _v92.vertices.append(val3)
01608 _v93 = val1.pose_stamped
01609 _v94 = _v93.header
01610 start = end
01611 end += 4
01612 (_v94.seq,) = _struct_I.unpack(str[start:end])
01613 _v95 = _v94.stamp
01614 _x = _v95
01615 start = end
01616 end += 8
01617 (_x.secs, _x.nsecs,) = _struct_2I.unpack(str[start:end])
01618 start = end
01619 end += 4
01620 (length,) = _struct_I.unpack(str[start:end])
01621 start = end
01622 end += length
01623 _v94.frame_id = str[start:end]
01624 _v96 = _v93.pose
01625 _v97 = _v96.position
01626 _x = _v97
01627 start = end
01628 end += 24
01629 (_x.x, _x.y, _x.z,) = _struct_3d.unpack(str[start:end])
01630 _v98 = _v96.orientation
01631 _x = _v98
01632 start = end
01633 end += 32
01634 (_x.x, _x.y, _x.z, _x.w,) = _struct_4d.unpack(str[start:end])
01635 start = end
01636 end += 4
01637 (length,) = _struct_I.unpack(str[start:end])
01638 val1.link_names = []
01639 for i in range(0, length):
01640 start = end
01641 end += 4
01642 (length,) = _struct_I.unpack(str[start:end])
01643 start = end
01644 end += length
01645 val2 = str[start:end]
01646 val1.link_names.append(val2)
01647 start = end
01648 end += 8
01649 (val1.penetration_depth,) = _struct_d.unpack(str[start:end])
01650 self.planning_scene.allowed_contacts.append(val1)
01651 start = end
01652 end += 4
01653 (length,) = _struct_I.unpack(str[start:end])
01654 self.planning_scene.link_padding = []
01655 for i in range(0, length):
01656 val1 = arm_navigation_msgs.msg.LinkPadding()
01657 start = end
01658 end += 4
01659 (length,) = _struct_I.unpack(str[start:end])
01660 start = end
01661 end += length
01662 val1.link_name = str[start:end]
01663 start = end
01664 end += 8
01665 (val1.padding,) = _struct_d.unpack(str[start:end])
01666 self.planning_scene.link_padding.append(val1)
01667 start = end
01668 end += 4
01669 (length,) = _struct_I.unpack(str[start:end])
01670 self.planning_scene.collision_objects = []
01671 for i in range(0, length):
01672 val1 = arm_navigation_msgs.msg.CollisionObject()
01673 _v99 = val1.header
01674 start = end
01675 end += 4
01676 (_v99.seq,) = _struct_I.unpack(str[start:end])
01677 _v100 = _v99.stamp
01678 _x = _v100
01679 start = end
01680 end += 8
01681 (_x.secs, _x.nsecs,) = _struct_2I.unpack(str[start:end])
01682 start = end
01683 end += 4
01684 (length,) = _struct_I.unpack(str[start:end])
01685 start = end
01686 end += length
01687 _v99.frame_id = str[start:end]
01688 start = end
01689 end += 4
01690 (length,) = _struct_I.unpack(str[start:end])
01691 start = end
01692 end += length
01693 val1.id = str[start:end]
01694 start = end
01695 end += 4
01696 (val1.padding,) = _struct_f.unpack(str[start:end])
01697 _v101 = val1.operation
01698 start = end
01699 end += 1
01700 (_v101.operation,) = _struct_b.unpack(str[start:end])
01701 start = end
01702 end += 4
01703 (length,) = _struct_I.unpack(str[start:end])
01704 val1.shapes = []
01705 for i in range(0, length):
01706 val2 = arm_navigation_msgs.msg.Shape()
01707 start = end
01708 end += 1
01709 (val2.type,) = _struct_b.unpack(str[start:end])
01710 start = end
01711 end += 4
01712 (length,) = _struct_I.unpack(str[start:end])
01713 pattern = '<%sd'%length
01714 start = end
01715 end += struct.calcsize(pattern)
01716 val2.dimensions = numpy.frombuffer(str[start:end], dtype=numpy.float64, count=length)
01717 start = end
01718 end += 4
01719 (length,) = _struct_I.unpack(str[start:end])
01720 pattern = '<%si'%length
01721 start = end
01722 end += struct.calcsize(pattern)
01723 val2.triangles = numpy.frombuffer(str[start:end], dtype=numpy.int32, count=length)
01724 start = end
01725 end += 4
01726 (length,) = _struct_I.unpack(str[start:end])
01727 val2.vertices = []
01728 for i in range(0, length):
01729 val3 = geometry_msgs.msg.Point()
01730 _x = val3
01731 start = end
01732 end += 24
01733 (_x.x, _x.y, _x.z,) = _struct_3d.unpack(str[start:end])
01734 val2.vertices.append(val3)
01735 val1.shapes.append(val2)
01736 start = end
01737 end += 4
01738 (length,) = _struct_I.unpack(str[start:end])
01739 val1.poses = []
01740 for i in range(0, length):
01741 val2 = geometry_msgs.msg.Pose()
01742 _v102 = val2.position
01743 _x = _v102
01744 start = end
01745 end += 24
01746 (_x.x, _x.y, _x.z,) = _struct_3d.unpack(str[start:end])
01747 _v103 = val2.orientation
01748 _x = _v103
01749 start = end
01750 end += 32
01751 (_x.x, _x.y, _x.z, _x.w,) = _struct_4d.unpack(str[start:end])
01752 val1.poses.append(val2)
01753 self.planning_scene.collision_objects.append(val1)
01754 start = end
01755 end += 4
01756 (length,) = _struct_I.unpack(str[start:end])
01757 self.planning_scene.attached_collision_objects = []
01758 for i in range(0, length):
01759 val1 = arm_navigation_msgs.msg.AttachedCollisionObject()
01760 start = end
01761 end += 4
01762 (length,) = _struct_I.unpack(str[start:end])
01763 start = end
01764 end += length
01765 val1.link_name = str[start:end]
01766 _v104 = val1.object
01767 _v105 = _v104.header
01768 start = end
01769 end += 4
01770 (_v105.seq,) = _struct_I.unpack(str[start:end])
01771 _v106 = _v105.stamp
01772 _x = _v106
01773 start = end
01774 end += 8
01775 (_x.secs, _x.nsecs,) = _struct_2I.unpack(str[start:end])
01776 start = end
01777 end += 4
01778 (length,) = _struct_I.unpack(str[start:end])
01779 start = end
01780 end += length
01781 _v105.frame_id = str[start:end]
01782 start = end
01783 end += 4
01784 (length,) = _struct_I.unpack(str[start:end])
01785 start = end
01786 end += length
01787 _v104.id = str[start:end]
01788 start = end
01789 end += 4
01790 (_v104.padding,) = _struct_f.unpack(str[start:end])
01791 _v107 = _v104.operation
01792 start = end
01793 end += 1
01794 (_v107.operation,) = _struct_b.unpack(str[start:end])
01795 start = end
01796 end += 4
01797 (length,) = _struct_I.unpack(str[start:end])
01798 _v104.shapes = []
01799 for i in range(0, length):
01800 val3 = arm_navigation_msgs.msg.Shape()
01801 start = end
01802 end += 1
01803 (val3.type,) = _struct_b.unpack(str[start:end])
01804 start = end
01805 end += 4
01806 (length,) = _struct_I.unpack(str[start:end])
01807 pattern = '<%sd'%length
01808 start = end
01809 end += struct.calcsize(pattern)
01810 val3.dimensions = numpy.frombuffer(str[start:end], dtype=numpy.float64, count=length)
01811 start = end
01812 end += 4
01813 (length,) = _struct_I.unpack(str[start:end])
01814 pattern = '<%si'%length
01815 start = end
01816 end += struct.calcsize(pattern)
01817 val3.triangles = numpy.frombuffer(str[start:end], dtype=numpy.int32, count=length)
01818 start = end
01819 end += 4
01820 (length,) = _struct_I.unpack(str[start:end])
01821 val3.vertices = []
01822 for i in range(0, length):
01823 val4 = geometry_msgs.msg.Point()
01824 _x = val4
01825 start = end
01826 end += 24
01827 (_x.x, _x.y, _x.z,) = _struct_3d.unpack(str[start:end])
01828 val3.vertices.append(val4)
01829 _v104.shapes.append(val3)
01830 start = end
01831 end += 4
01832 (length,) = _struct_I.unpack(str[start:end])
01833 _v104.poses = []
01834 for i in range(0, length):
01835 val3 = geometry_msgs.msg.Pose()
01836 _v108 = val3.position
01837 _x = _v108
01838 start = end
01839 end += 24
01840 (_x.x, _x.y, _x.z,) = _struct_3d.unpack(str[start:end])
01841 _v109 = val3.orientation
01842 _x = _v109
01843 start = end
01844 end += 32
01845 (_x.x, _x.y, _x.z, _x.w,) = _struct_4d.unpack(str[start:end])
01846 _v104.poses.append(val3)
01847 start = end
01848 end += 4
01849 (length,) = _struct_I.unpack(str[start:end])
01850 val1.touch_links = []
01851 for i in range(0, length):
01852 start = end
01853 end += 4
01854 (length,) = _struct_I.unpack(str[start:end])
01855 start = end
01856 end += length
01857 val2 = str[start:end]
01858 val1.touch_links.append(val2)
01859 self.planning_scene.attached_collision_objects.append(val1)
01860 _x = self
01861 start = end
01862 end += 12
01863 (_x.planning_scene.collision_map.header.seq, _x.planning_scene.collision_map.header.stamp.secs, _x.planning_scene.collision_map.header.stamp.nsecs,) = _struct_3I.unpack(str[start:end])
01864 start = end
01865 end += 4
01866 (length,) = _struct_I.unpack(str[start:end])
01867 start = end
01868 end += length
01869 self.planning_scene.collision_map.header.frame_id = str[start:end]
01870 start = end
01871 end += 4
01872 (length,) = _struct_I.unpack(str[start:end])
01873 self.planning_scene.collision_map.boxes = []
01874 for i in range(0, length):
01875 val1 = arm_navigation_msgs.msg.OrientedBoundingBox()
01876 _v110 = val1.center
01877 _x = _v110
01878 start = end
01879 end += 12
01880 (_x.x, _x.y, _x.z,) = _struct_3f.unpack(str[start:end])
01881 _v111 = val1.extents
01882 _x = _v111
01883 start = end
01884 end += 12
01885 (_x.x, _x.y, _x.z,) = _struct_3f.unpack(str[start:end])
01886 _v112 = val1.axis
01887 _x = _v112
01888 start = end
01889 end += 12
01890 (_x.x, _x.y, _x.z,) = _struct_3f.unpack(str[start:end])
01891 start = end
01892 end += 4
01893 (val1.angle,) = _struct_f.unpack(str[start:end])
01894 self.planning_scene.collision_map.boxes.append(val1)
01895 return self
01896 except struct.error as e:
01897 raise roslib.message.DeserializationError(e)
01898
01899 _struct_I = roslib.message.struct_I
01900 _struct_b = struct.Struct("<b")
01901 _struct_d = struct.Struct("<d")
01902 _struct_f = struct.Struct("<f")
01903 _struct_3f = struct.Struct("<3f")
01904 _struct_3I = struct.Struct("<3I")
01905 _struct_4d = struct.Struct("<4d")
01906 _struct_2I = struct.Struct("<2I")
01907 _struct_3d = struct.Struct("<3d")