00001 """autogenerated by genpy from arm_navigation_msgs/SetPlanningSceneDiffRequest.msg. Do not edit."""
00002 import sys
00003 python3 = True if sys.hexversion > 0x03000000 else False
00004 import genpy
00005 import struct
00006
00007 import arm_navigation_msgs.msg
00008 import geometry_msgs.msg
00009 import std_msgs.msg
00010 import genpy
00011 import sensor_msgs.msg
00012
00013 class SetPlanningSceneDiffRequest(genpy.Message):
00014 _md5sum = "67ad55e9bed9c8f21dfb4b9b1ca8df7d"
00015 _type = "arm_navigation_msgs/SetPlanningSceneDiffRequest"
00016 _has_header = False
00017 _full_text = """
00018
00019
00020 PlanningScene planning_scene_diff
00021
00022
00023 arm_navigation_msgs/OrderedCollisionOperations operations
00024
00025 ================================================================================
00026 MSG: arm_navigation_msgs/PlanningScene
00027 #full robot state
00028 arm_navigation_msgs/RobotState robot_state
00029
00030 #additional frames for duplicating tf
00031 geometry_msgs/TransformStamped[] fixed_frame_transforms
00032
00033 #full allowed collision matrix
00034 AllowedCollisionMatrix allowed_collision_matrix
00035
00036 #allowed contacts
00037 arm_navigation_msgs/AllowedContactSpecification[] allowed_contacts
00038
00039 #all link paddings
00040 arm_navigation_msgs/LinkPadding[] link_padding
00041
00042 #collision objects
00043 arm_navigation_msgs/CollisionObject[] collision_objects
00044 arm_navigation_msgs/AttachedCollisionObject[] attached_collision_objects
00045
00046 #the collision map
00047 arm_navigation_msgs/CollisionMap collision_map
00048
00049 ================================================================================
00050 MSG: arm_navigation_msgs/RobotState
00051 # This message contains information about the robot state, i.e. the positions of its joints and links
00052 sensor_msgs/JointState joint_state
00053 arm_navigation_msgs/MultiDOFJointState multi_dof_joint_state
00054
00055 ================================================================================
00056 MSG: sensor_msgs/JointState
00057 # This is a message that holds data to describe the state of a set of torque controlled joints.
00058 #
00059 # The state of each joint (revolute or prismatic) is defined by:
00060 # * the position of the joint (rad or m),
00061 # * the velocity of the joint (rad/s or m/s) and
00062 # * the effort that is applied in the joint (Nm or N).
00063 #
00064 # Each joint is uniquely identified by its name
00065 # The header specifies the time at which the joint states were recorded. All the joint states
00066 # in one message have to be recorded at the same time.
00067 #
00068 # This message consists of a multiple arrays, one for each part of the joint state.
00069 # The goal is to make each of the fields optional. When e.g. your joints have no
00070 # effort associated with them, you can leave the effort array empty.
00071 #
00072 # All arrays in this message should have the same size, or be empty.
00073 # This is the only way to uniquely associate the joint name with the correct
00074 # states.
00075
00076
00077 Header header
00078
00079 string[] name
00080 float64[] position
00081 float64[] velocity
00082 float64[] effort
00083
00084 ================================================================================
00085 MSG: std_msgs/Header
00086 # Standard metadata for higher-level stamped data types.
00087 # This is generally used to communicate timestamped data
00088 # in a particular coordinate frame.
00089 #
00090 # sequence ID: consecutively increasing ID
00091 uint32 seq
00092 #Two-integer timestamp that is expressed as:
00093 # * stamp.secs: seconds (stamp_secs) since epoch
00094 # * stamp.nsecs: nanoseconds since stamp_secs
00095 # time-handling sugar is provided by the client library
00096 time stamp
00097 #Frame this data is associated with
00098 # 0: no frame
00099 # 1: global frame
00100 string frame_id
00101
00102 ================================================================================
00103 MSG: arm_navigation_msgs/MultiDOFJointState
00104 #A representation of a multi-dof joint state
00105 time stamp
00106 string[] joint_names
00107 string[] frame_ids
00108 string[] child_frame_ids
00109 geometry_msgs/Pose[] poses
00110
00111 ================================================================================
00112 MSG: geometry_msgs/Pose
00113 # A representation of pose in free space, composed of postion and orientation.
00114 Point position
00115 Quaternion orientation
00116
00117 ================================================================================
00118 MSG: geometry_msgs/Point
00119 # This contains the position of a point in free space
00120 float64 x
00121 float64 y
00122 float64 z
00123
00124 ================================================================================
00125 MSG: geometry_msgs/Quaternion
00126 # This represents an orientation in free space in quaternion form.
00127
00128 float64 x
00129 float64 y
00130 float64 z
00131 float64 w
00132
00133 ================================================================================
00134 MSG: geometry_msgs/TransformStamped
00135 # This expresses a transform from coordinate frame header.frame_id
00136 # to the coordinate frame child_frame_id
00137 #
00138 # This message is mostly used by the
00139 # <a href="http://www.ros.org/wiki/tf">tf</a> package.
00140 # See it's documentation for more information.
00141
00142 Header header
00143 string child_frame_id # the frame id of the child frame
00144 Transform transform
00145
00146 ================================================================================
00147 MSG: geometry_msgs/Transform
00148 # This represents the transform between two coordinate frames in free space.
00149
00150 Vector3 translation
00151 Quaternion rotation
00152
00153 ================================================================================
00154 MSG: geometry_msgs/Vector3
00155 # This represents a vector in free space.
00156
00157 float64 x
00158 float64 y
00159 float64 z
00160 ================================================================================
00161 MSG: arm_navigation_msgs/AllowedCollisionMatrix
00162 # the list of link names in the matrix
00163 string[] link_names
00164
00165 # the individual entries in the allowed collision matrix
00166 # symmetric, with same order as link_names
00167 AllowedCollisionEntry[] entries
00168
00169 ================================================================================
00170 MSG: arm_navigation_msgs/AllowedCollisionEntry
00171 # whether or not collision checking is enabled
00172 bool[] enabled
00173
00174 ================================================================================
00175 MSG: arm_navigation_msgs/AllowedContactSpecification
00176 # The names of the regions
00177 string name
00178
00179 # The shape of the region in the environment
00180 arm_navigation_msgs/Shape shape
00181
00182 # The pose of the space defining the region
00183 geometry_msgs/PoseStamped pose_stamped
00184
00185 # The set of links that will be allowed to have penetration contact within this region
00186 string[] link_names
00187
00188 # The maximum penetration depth allowed for every link
00189 float64 penetration_depth
00190
00191 ================================================================================
00192 MSG: arm_navigation_msgs/Shape
00193 byte SPHERE=0
00194 byte BOX=1
00195 byte CYLINDER=2
00196 byte MESH=3
00197
00198 byte type
00199
00200
00201 #### define sphere, box, cylinder ####
00202 # the origin of each shape is considered at the shape's center
00203
00204 # for sphere
00205 # radius := dimensions[0]
00206
00207 # for cylinder
00208 # radius := dimensions[0]
00209 # length := dimensions[1]
00210 # the length is along the Z axis
00211
00212 # for box
00213 # size_x := dimensions[0]
00214 # size_y := dimensions[1]
00215 # size_z := dimensions[2]
00216 float64[] dimensions
00217
00218
00219 #### define mesh ####
00220
00221 # list of triangles; triangle k is defined by tre vertices located
00222 # at indices triangles[3k], triangles[3k+1], triangles[3k+2]
00223 int32[] triangles
00224 geometry_msgs/Point[] vertices
00225
00226 ================================================================================
00227 MSG: geometry_msgs/PoseStamped
00228 # A Pose with reference coordinate frame and timestamp
00229 Header header
00230 Pose pose
00231
00232 ================================================================================
00233 MSG: arm_navigation_msgs/LinkPadding
00234 #name for the link
00235 string link_name
00236
00237 # padding to apply to the link
00238 float64 padding
00239
00240 ================================================================================
00241 MSG: arm_navigation_msgs/CollisionObject
00242 # a header, used for interpreting the poses
00243 Header header
00244
00245 # the id of the object
00246 string id
00247
00248 # The padding used for filtering points near the object.
00249 # This does not affect collision checking for the object.
00250 # Set to negative to get zero padding.
00251 float32 padding
00252
00253 #This contains what is to be done with the object
00254 CollisionObjectOperation operation
00255
00256 #the shapes associated with the object
00257 arm_navigation_msgs/Shape[] shapes
00258
00259 #the poses associated with the shapes - will be transformed using the header
00260 geometry_msgs/Pose[] poses
00261
00262 ================================================================================
00263 MSG: arm_navigation_msgs/CollisionObjectOperation
00264 #Puts the object into the environment
00265 #or updates the object if already added
00266 byte ADD=0
00267
00268 #Removes the object from the environment entirely
00269 byte REMOVE=1
00270
00271 #Only valid within the context of a CollisionAttachedObject message
00272 #Will be ignored if sent with an CollisionObject message
00273 #Takes an attached object, detaches from the attached link
00274 #But adds back in as regular object
00275 byte DETACH_AND_ADD_AS_OBJECT=2
00276
00277 #Only valid within the context of a CollisionAttachedObject message
00278 #Will be ignored if sent with an CollisionObject message
00279 #Takes current object in the environment and removes it as
00280 #a regular object
00281 byte ATTACH_AND_REMOVE_AS_OBJECT=3
00282
00283 # Byte code for operation
00284 byte operation
00285
00286 ================================================================================
00287 MSG: arm_navigation_msgs/AttachedCollisionObject
00288 # The CollisionObject will be attached with a fixed joint to this link
00289 # If link name is set to REMOVE_ALL_ATTACHED_OBJECTS and object.operation
00290 # is set to REMOVE will remove all attached bodies attached to any object
00291 string link_name
00292
00293 #Reserved for indicating that all attached objects should be removed
00294 string REMOVE_ALL_ATTACHED_OBJECTS = "all"
00295
00296 #This contains the actual shapes and poses for the CollisionObject
00297 #to be attached to the link
00298 #If action is remove and no object.id is set, all objects
00299 #attached to the link indicated by link_name will be removed
00300 CollisionObject object
00301
00302 # The set of links that the attached objects are allowed to touch
00303 # by default - the link_name is included by default
00304 string[] touch_links
00305
00306 ================================================================================
00307 MSG: arm_navigation_msgs/CollisionMap
00308 #header for interpreting box positions
00309 Header header
00310
00311 #boxes for use in collision testing
00312 OrientedBoundingBox[] boxes
00313
00314 ================================================================================
00315 MSG: arm_navigation_msgs/OrientedBoundingBox
00316 #the center of the box
00317 geometry_msgs/Point32 center
00318
00319 #the extents of the box, assuming the center is at the point
00320 geometry_msgs/Point32 extents
00321
00322 #the axis of the box
00323 geometry_msgs/Point32 axis
00324
00325 #the angle of rotation around the axis
00326 float32 angle
00327
00328 ================================================================================
00329 MSG: geometry_msgs/Point32
00330 # This contains the position of a point in free space(with 32 bits of precision).
00331 # It is recommeded to use Point wherever possible instead of Point32.
00332 #
00333 # This recommendation is to promote interoperability.
00334 #
00335 # This message is designed to take up less space when sending
00336 # lots of points at once, as in the case of a PointCloud.
00337
00338 float32 x
00339 float32 y
00340 float32 z
00341 ================================================================================
00342 MSG: arm_navigation_msgs/OrderedCollisionOperations
00343 # A set of collision operations that will be performed in the order they are specified
00344 CollisionOperation[] collision_operations
00345 ================================================================================
00346 MSG: arm_navigation_msgs/CollisionOperation
00347 # A definition of a collision operation
00348 # E.g. ("gripper",COLLISION_SET_ALL,ENABLE) will enable collisions
00349 # between the gripper and all objects in the collision space
00350
00351 string object1
00352 string object2
00353 string COLLISION_SET_ALL="all"
00354 string COLLISION_SET_OBJECTS="objects"
00355 string COLLISION_SET_ATTACHED_OBJECTS="attached"
00356
00357 # The penetration distance to which collisions are allowed. This is 0.0 by default.
00358 float64 penetration_distance
00359
00360 # Flag that determines whether collisions will be enabled or disabled for the pair of objects specified above
00361 int32 operation
00362 int32 DISABLE=0
00363 int32 ENABLE=1
00364
00365 """
00366 __slots__ = ['planning_scene_diff','operations']
00367 _slot_types = ['arm_navigation_msgs/PlanningScene','arm_navigation_msgs/OrderedCollisionOperations']
00368
00369 def __init__(self, *args, **kwds):
00370 """
00371 Constructor. Any message fields that are implicitly/explicitly
00372 set to None will be assigned a default value. The recommend
00373 use is keyword arguments as this is more robust to future message
00374 changes. You cannot mix in-order arguments and keyword arguments.
00375
00376 The available fields are:
00377 planning_scene_diff,operations
00378
00379 :param args: complete set of field values, in .msg order
00380 :param kwds: use keyword arguments corresponding to message field names
00381 to set specific fields.
00382 """
00383 if args or kwds:
00384 super(SetPlanningSceneDiffRequest, self).__init__(*args, **kwds)
00385
00386 if self.planning_scene_diff is None:
00387 self.planning_scene_diff = arm_navigation_msgs.msg.PlanningScene()
00388 if self.operations is None:
00389 self.operations = arm_navigation_msgs.msg.OrderedCollisionOperations()
00390 else:
00391 self.planning_scene_diff = arm_navigation_msgs.msg.PlanningScene()
00392 self.operations = arm_navigation_msgs.msg.OrderedCollisionOperations()
00393
00394 def _get_types(self):
00395 """
00396 internal API method
00397 """
00398 return self._slot_types
00399
00400 def serialize(self, buff):
00401 """
00402 serialize message into buffer
00403 :param buff: buffer, ``StringIO``
00404 """
00405 try:
00406 _x = self
00407 buff.write(_struct_3I.pack(_x.planning_scene_diff.robot_state.joint_state.header.seq, _x.planning_scene_diff.robot_state.joint_state.header.stamp.secs, _x.planning_scene_diff.robot_state.joint_state.header.stamp.nsecs))
00408 _x = self.planning_scene_diff.robot_state.joint_state.header.frame_id
00409 length = len(_x)
00410 if python3 or type(_x) == unicode:
00411 _x = _x.encode('utf-8')
00412 length = len(_x)
00413 buff.write(struct.pack('<I%ss'%length, length, _x))
00414 length = len(self.planning_scene_diff.robot_state.joint_state.name)
00415 buff.write(_struct_I.pack(length))
00416 for val1 in self.planning_scene_diff.robot_state.joint_state.name:
00417 length = len(val1)
00418 if python3 or type(val1) == unicode:
00419 val1 = val1.encode('utf-8')
00420 length = len(val1)
00421 buff.write(struct.pack('<I%ss'%length, length, val1))
00422 length = len(self.planning_scene_diff.robot_state.joint_state.position)
00423 buff.write(_struct_I.pack(length))
00424 pattern = '<%sd'%length
00425 buff.write(struct.pack(pattern, *self.planning_scene_diff.robot_state.joint_state.position))
00426 length = len(self.planning_scene_diff.robot_state.joint_state.velocity)
00427 buff.write(_struct_I.pack(length))
00428 pattern = '<%sd'%length
00429 buff.write(struct.pack(pattern, *self.planning_scene_diff.robot_state.joint_state.velocity))
00430 length = len(self.planning_scene_diff.robot_state.joint_state.effort)
00431 buff.write(_struct_I.pack(length))
00432 pattern = '<%sd'%length
00433 buff.write(struct.pack(pattern, *self.planning_scene_diff.robot_state.joint_state.effort))
00434 _x = self
00435 buff.write(_struct_2I.pack(_x.planning_scene_diff.robot_state.multi_dof_joint_state.stamp.secs, _x.planning_scene_diff.robot_state.multi_dof_joint_state.stamp.nsecs))
00436 length = len(self.planning_scene_diff.robot_state.multi_dof_joint_state.joint_names)
00437 buff.write(_struct_I.pack(length))
00438 for val1 in self.planning_scene_diff.robot_state.multi_dof_joint_state.joint_names:
00439 length = len(val1)
00440 if python3 or type(val1) == unicode:
00441 val1 = val1.encode('utf-8')
00442 length = len(val1)
00443 buff.write(struct.pack('<I%ss'%length, length, val1))
00444 length = len(self.planning_scene_diff.robot_state.multi_dof_joint_state.frame_ids)
00445 buff.write(_struct_I.pack(length))
00446 for val1 in self.planning_scene_diff.robot_state.multi_dof_joint_state.frame_ids:
00447 length = len(val1)
00448 if python3 or type(val1) == unicode:
00449 val1 = val1.encode('utf-8')
00450 length = len(val1)
00451 buff.write(struct.pack('<I%ss'%length, length, val1))
00452 length = len(self.planning_scene_diff.robot_state.multi_dof_joint_state.child_frame_ids)
00453 buff.write(_struct_I.pack(length))
00454 for val1 in self.planning_scene_diff.robot_state.multi_dof_joint_state.child_frame_ids:
00455 length = len(val1)
00456 if python3 or type(val1) == unicode:
00457 val1 = val1.encode('utf-8')
00458 length = len(val1)
00459 buff.write(struct.pack('<I%ss'%length, length, val1))
00460 length = len(self.planning_scene_diff.robot_state.multi_dof_joint_state.poses)
00461 buff.write(_struct_I.pack(length))
00462 for val1 in self.planning_scene_diff.robot_state.multi_dof_joint_state.poses:
00463 _v1 = val1.position
00464 _x = _v1
00465 buff.write(_struct_3d.pack(_x.x, _x.y, _x.z))
00466 _v2 = val1.orientation
00467 _x = _v2
00468 buff.write(_struct_4d.pack(_x.x, _x.y, _x.z, _x.w))
00469 length = len(self.planning_scene_diff.fixed_frame_transforms)
00470 buff.write(_struct_I.pack(length))
00471 for val1 in self.planning_scene_diff.fixed_frame_transforms:
00472 _v3 = val1.header
00473 buff.write(_struct_I.pack(_v3.seq))
00474 _v4 = _v3.stamp
00475 _x = _v4
00476 buff.write(_struct_2I.pack(_x.secs, _x.nsecs))
00477 _x = _v3.frame_id
00478 length = len(_x)
00479 if python3 or type(_x) == unicode:
00480 _x = _x.encode('utf-8')
00481 length = len(_x)
00482 buff.write(struct.pack('<I%ss'%length, length, _x))
00483 _x = val1.child_frame_id
00484 length = len(_x)
00485 if python3 or type(_x) == unicode:
00486 _x = _x.encode('utf-8')
00487 length = len(_x)
00488 buff.write(struct.pack('<I%ss'%length, length, _x))
00489 _v5 = val1.transform
00490 _v6 = _v5.translation
00491 _x = _v6
00492 buff.write(_struct_3d.pack(_x.x, _x.y, _x.z))
00493 _v7 = _v5.rotation
00494 _x = _v7
00495 buff.write(_struct_4d.pack(_x.x, _x.y, _x.z, _x.w))
00496 length = len(self.planning_scene_diff.allowed_collision_matrix.link_names)
00497 buff.write(_struct_I.pack(length))
00498 for val1 in self.planning_scene_diff.allowed_collision_matrix.link_names:
00499 length = len(val1)
00500 if python3 or type(val1) == unicode:
00501 val1 = val1.encode('utf-8')
00502 length = len(val1)
00503 buff.write(struct.pack('<I%ss'%length, length, val1))
00504 length = len(self.planning_scene_diff.allowed_collision_matrix.entries)
00505 buff.write(_struct_I.pack(length))
00506 for val1 in self.planning_scene_diff.allowed_collision_matrix.entries:
00507 length = len(val1.enabled)
00508 buff.write(_struct_I.pack(length))
00509 pattern = '<%sB'%length
00510 buff.write(struct.pack(pattern, *val1.enabled))
00511 length = len(self.planning_scene_diff.allowed_contacts)
00512 buff.write(_struct_I.pack(length))
00513 for val1 in self.planning_scene_diff.allowed_contacts:
00514 _x = val1.name
00515 length = len(_x)
00516 if python3 or type(_x) == unicode:
00517 _x = _x.encode('utf-8')
00518 length = len(_x)
00519 buff.write(struct.pack('<I%ss'%length, length, _x))
00520 _v8 = val1.shape
00521 buff.write(_struct_b.pack(_v8.type))
00522 length = len(_v8.dimensions)
00523 buff.write(_struct_I.pack(length))
00524 pattern = '<%sd'%length
00525 buff.write(struct.pack(pattern, *_v8.dimensions))
00526 length = len(_v8.triangles)
00527 buff.write(_struct_I.pack(length))
00528 pattern = '<%si'%length
00529 buff.write(struct.pack(pattern, *_v8.triangles))
00530 length = len(_v8.vertices)
00531 buff.write(_struct_I.pack(length))
00532 for val3 in _v8.vertices:
00533 _x = val3
00534 buff.write(_struct_3d.pack(_x.x, _x.y, _x.z))
00535 _v9 = val1.pose_stamped
00536 _v10 = _v9.header
00537 buff.write(_struct_I.pack(_v10.seq))
00538 _v11 = _v10.stamp
00539 _x = _v11
00540 buff.write(_struct_2I.pack(_x.secs, _x.nsecs))
00541 _x = _v10.frame_id
00542 length = len(_x)
00543 if python3 or type(_x) == unicode:
00544 _x = _x.encode('utf-8')
00545 length = len(_x)
00546 buff.write(struct.pack('<I%ss'%length, length, _x))
00547 _v12 = _v9.pose
00548 _v13 = _v12.position
00549 _x = _v13
00550 buff.write(_struct_3d.pack(_x.x, _x.y, _x.z))
00551 _v14 = _v12.orientation
00552 _x = _v14
00553 buff.write(_struct_4d.pack(_x.x, _x.y, _x.z, _x.w))
00554 length = len(val1.link_names)
00555 buff.write(_struct_I.pack(length))
00556 for val2 in val1.link_names:
00557 length = len(val2)
00558 if python3 or type(val2) == unicode:
00559 val2 = val2.encode('utf-8')
00560 length = len(val2)
00561 buff.write(struct.pack('<I%ss'%length, length, val2))
00562 buff.write(_struct_d.pack(val1.penetration_depth))
00563 length = len(self.planning_scene_diff.link_padding)
00564 buff.write(_struct_I.pack(length))
00565 for val1 in self.planning_scene_diff.link_padding:
00566 _x = val1.link_name
00567 length = len(_x)
00568 if python3 or type(_x) == unicode:
00569 _x = _x.encode('utf-8')
00570 length = len(_x)
00571 buff.write(struct.pack('<I%ss'%length, length, _x))
00572 buff.write(_struct_d.pack(val1.padding))
00573 length = len(self.planning_scene_diff.collision_objects)
00574 buff.write(_struct_I.pack(length))
00575 for val1 in self.planning_scene_diff.collision_objects:
00576 _v15 = val1.header
00577 buff.write(_struct_I.pack(_v15.seq))
00578 _v16 = _v15.stamp
00579 _x = _v16
00580 buff.write(_struct_2I.pack(_x.secs, _x.nsecs))
00581 _x = _v15.frame_id
00582 length = len(_x)
00583 if python3 or type(_x) == unicode:
00584 _x = _x.encode('utf-8')
00585 length = len(_x)
00586 buff.write(struct.pack('<I%ss'%length, length, _x))
00587 _x = val1.id
00588 length = len(_x)
00589 if python3 or type(_x) == unicode:
00590 _x = _x.encode('utf-8')
00591 length = len(_x)
00592 buff.write(struct.pack('<I%ss'%length, length, _x))
00593 buff.write(_struct_f.pack(val1.padding))
00594 _v17 = val1.operation
00595 buff.write(_struct_b.pack(_v17.operation))
00596 length = len(val1.shapes)
00597 buff.write(_struct_I.pack(length))
00598 for val2 in val1.shapes:
00599 buff.write(_struct_b.pack(val2.type))
00600 length = len(val2.dimensions)
00601 buff.write(_struct_I.pack(length))
00602 pattern = '<%sd'%length
00603 buff.write(struct.pack(pattern, *val2.dimensions))
00604 length = len(val2.triangles)
00605 buff.write(_struct_I.pack(length))
00606 pattern = '<%si'%length
00607 buff.write(struct.pack(pattern, *val2.triangles))
00608 length = len(val2.vertices)
00609 buff.write(_struct_I.pack(length))
00610 for val3 in val2.vertices:
00611 _x = val3
00612 buff.write(_struct_3d.pack(_x.x, _x.y, _x.z))
00613 length = len(val1.poses)
00614 buff.write(_struct_I.pack(length))
00615 for val2 in val1.poses:
00616 _v18 = val2.position
00617 _x = _v18
00618 buff.write(_struct_3d.pack(_x.x, _x.y, _x.z))
00619 _v19 = val2.orientation
00620 _x = _v19
00621 buff.write(_struct_4d.pack(_x.x, _x.y, _x.z, _x.w))
00622 length = len(self.planning_scene_diff.attached_collision_objects)
00623 buff.write(_struct_I.pack(length))
00624 for val1 in self.planning_scene_diff.attached_collision_objects:
00625 _x = val1.link_name
00626 length = len(_x)
00627 if python3 or type(_x) == unicode:
00628 _x = _x.encode('utf-8')
00629 length = len(_x)
00630 buff.write(struct.pack('<I%ss'%length, length, _x))
00631 _v20 = val1.object
00632 _v21 = _v20.header
00633 buff.write(_struct_I.pack(_v21.seq))
00634 _v22 = _v21.stamp
00635 _x = _v22
00636 buff.write(_struct_2I.pack(_x.secs, _x.nsecs))
00637 _x = _v21.frame_id
00638 length = len(_x)
00639 if python3 or type(_x) == unicode:
00640 _x = _x.encode('utf-8')
00641 length = len(_x)
00642 buff.write(struct.pack('<I%ss'%length, length, _x))
00643 _x = _v20.id
00644 length = len(_x)
00645 if python3 or type(_x) == unicode:
00646 _x = _x.encode('utf-8')
00647 length = len(_x)
00648 buff.write(struct.pack('<I%ss'%length, length, _x))
00649 buff.write(_struct_f.pack(_v20.padding))
00650 _v23 = _v20.operation
00651 buff.write(_struct_b.pack(_v23.operation))
00652 length = len(_v20.shapes)
00653 buff.write(_struct_I.pack(length))
00654 for val3 in _v20.shapes:
00655 buff.write(_struct_b.pack(val3.type))
00656 length = len(val3.dimensions)
00657 buff.write(_struct_I.pack(length))
00658 pattern = '<%sd'%length
00659 buff.write(struct.pack(pattern, *val3.dimensions))
00660 length = len(val3.triangles)
00661 buff.write(_struct_I.pack(length))
00662 pattern = '<%si'%length
00663 buff.write(struct.pack(pattern, *val3.triangles))
00664 length = len(val3.vertices)
00665 buff.write(_struct_I.pack(length))
00666 for val4 in val3.vertices:
00667 _x = val4
00668 buff.write(_struct_3d.pack(_x.x, _x.y, _x.z))
00669 length = len(_v20.poses)
00670 buff.write(_struct_I.pack(length))
00671 for val3 in _v20.poses:
00672 _v24 = val3.position
00673 _x = _v24
00674 buff.write(_struct_3d.pack(_x.x, _x.y, _x.z))
00675 _v25 = val3.orientation
00676 _x = _v25
00677 buff.write(_struct_4d.pack(_x.x, _x.y, _x.z, _x.w))
00678 length = len(val1.touch_links)
00679 buff.write(_struct_I.pack(length))
00680 for val2 in val1.touch_links:
00681 length = len(val2)
00682 if python3 or type(val2) == unicode:
00683 val2 = val2.encode('utf-8')
00684 length = len(val2)
00685 buff.write(struct.pack('<I%ss'%length, length, val2))
00686 _x = self
00687 buff.write(_struct_3I.pack(_x.planning_scene_diff.collision_map.header.seq, _x.planning_scene_diff.collision_map.header.stamp.secs, _x.planning_scene_diff.collision_map.header.stamp.nsecs))
00688 _x = self.planning_scene_diff.collision_map.header.frame_id
00689 length = len(_x)
00690 if python3 or type(_x) == unicode:
00691 _x = _x.encode('utf-8')
00692 length = len(_x)
00693 buff.write(struct.pack('<I%ss'%length, length, _x))
00694 length = len(self.planning_scene_diff.collision_map.boxes)
00695 buff.write(_struct_I.pack(length))
00696 for val1 in self.planning_scene_diff.collision_map.boxes:
00697 _v26 = val1.center
00698 _x = _v26
00699 buff.write(_struct_3f.pack(_x.x, _x.y, _x.z))
00700 _v27 = val1.extents
00701 _x = _v27
00702 buff.write(_struct_3f.pack(_x.x, _x.y, _x.z))
00703 _v28 = val1.axis
00704 _x = _v28
00705 buff.write(_struct_3f.pack(_x.x, _x.y, _x.z))
00706 buff.write(_struct_f.pack(val1.angle))
00707 length = len(self.operations.collision_operations)
00708 buff.write(_struct_I.pack(length))
00709 for val1 in self.operations.collision_operations:
00710 _x = val1.object1
00711 length = len(_x)
00712 if python3 or type(_x) == unicode:
00713 _x = _x.encode('utf-8')
00714 length = len(_x)
00715 buff.write(struct.pack('<I%ss'%length, length, _x))
00716 _x = val1.object2
00717 length = len(_x)
00718 if python3 or type(_x) == unicode:
00719 _x = _x.encode('utf-8')
00720 length = len(_x)
00721 buff.write(struct.pack('<I%ss'%length, length, _x))
00722 _x = val1
00723 buff.write(_struct_di.pack(_x.penetration_distance, _x.operation))
00724 except struct.error as se: self._check_types(se)
00725 except TypeError as te: self._check_types(te)
00726
00727 def deserialize(self, str):
00728 """
00729 unpack serialized message in str into this message instance
00730 :param str: byte array of serialized message, ``str``
00731 """
00732 try:
00733 if self.planning_scene_diff is None:
00734 self.planning_scene_diff = arm_navigation_msgs.msg.PlanningScene()
00735 if self.operations is None:
00736 self.operations = arm_navigation_msgs.msg.OrderedCollisionOperations()
00737 end = 0
00738 _x = self
00739 start = end
00740 end += 12
00741 (_x.planning_scene_diff.robot_state.joint_state.header.seq, _x.planning_scene_diff.robot_state.joint_state.header.stamp.secs, _x.planning_scene_diff.robot_state.joint_state.header.stamp.nsecs,) = _struct_3I.unpack(str[start:end])
00742 start = end
00743 end += 4
00744 (length,) = _struct_I.unpack(str[start:end])
00745 start = end
00746 end += length
00747 if python3:
00748 self.planning_scene_diff.robot_state.joint_state.header.frame_id = str[start:end].decode('utf-8')
00749 else:
00750 self.planning_scene_diff.robot_state.joint_state.header.frame_id = str[start:end]
00751 start = end
00752 end += 4
00753 (length,) = _struct_I.unpack(str[start:end])
00754 self.planning_scene_diff.robot_state.joint_state.name = []
00755 for i in range(0, length):
00756 start = end
00757 end += 4
00758 (length,) = _struct_I.unpack(str[start:end])
00759 start = end
00760 end += length
00761 if python3:
00762 val1 = str[start:end].decode('utf-8')
00763 else:
00764 val1 = str[start:end]
00765 self.planning_scene_diff.robot_state.joint_state.name.append(val1)
00766 start = end
00767 end += 4
00768 (length,) = _struct_I.unpack(str[start:end])
00769 pattern = '<%sd'%length
00770 start = end
00771 end += struct.calcsize(pattern)
00772 self.planning_scene_diff.robot_state.joint_state.position = struct.unpack(pattern, str[start:end])
00773 start = end
00774 end += 4
00775 (length,) = _struct_I.unpack(str[start:end])
00776 pattern = '<%sd'%length
00777 start = end
00778 end += struct.calcsize(pattern)
00779 self.planning_scene_diff.robot_state.joint_state.velocity = struct.unpack(pattern, str[start:end])
00780 start = end
00781 end += 4
00782 (length,) = _struct_I.unpack(str[start:end])
00783 pattern = '<%sd'%length
00784 start = end
00785 end += struct.calcsize(pattern)
00786 self.planning_scene_diff.robot_state.joint_state.effort = struct.unpack(pattern, str[start:end])
00787 _x = self
00788 start = end
00789 end += 8
00790 (_x.planning_scene_diff.robot_state.multi_dof_joint_state.stamp.secs, _x.planning_scene_diff.robot_state.multi_dof_joint_state.stamp.nsecs,) = _struct_2I.unpack(str[start:end])
00791 start = end
00792 end += 4
00793 (length,) = _struct_I.unpack(str[start:end])
00794 self.planning_scene_diff.robot_state.multi_dof_joint_state.joint_names = []
00795 for i in range(0, length):
00796 start = end
00797 end += 4
00798 (length,) = _struct_I.unpack(str[start:end])
00799 start = end
00800 end += length
00801 if python3:
00802 val1 = str[start:end].decode('utf-8')
00803 else:
00804 val1 = str[start:end]
00805 self.planning_scene_diff.robot_state.multi_dof_joint_state.joint_names.append(val1)
00806 start = end
00807 end += 4
00808 (length,) = _struct_I.unpack(str[start:end])
00809 self.planning_scene_diff.robot_state.multi_dof_joint_state.frame_ids = []
00810 for i in range(0, length):
00811 start = end
00812 end += 4
00813 (length,) = _struct_I.unpack(str[start:end])
00814 start = end
00815 end += length
00816 if python3:
00817 val1 = str[start:end].decode('utf-8')
00818 else:
00819 val1 = str[start:end]
00820 self.planning_scene_diff.robot_state.multi_dof_joint_state.frame_ids.append(val1)
00821 start = end
00822 end += 4
00823 (length,) = _struct_I.unpack(str[start:end])
00824 self.planning_scene_diff.robot_state.multi_dof_joint_state.child_frame_ids = []
00825 for i in range(0, length):
00826 start = end
00827 end += 4
00828 (length,) = _struct_I.unpack(str[start:end])
00829 start = end
00830 end += length
00831 if python3:
00832 val1 = str[start:end].decode('utf-8')
00833 else:
00834 val1 = str[start:end]
00835 self.planning_scene_diff.robot_state.multi_dof_joint_state.child_frame_ids.append(val1)
00836 start = end
00837 end += 4
00838 (length,) = _struct_I.unpack(str[start:end])
00839 self.planning_scene_diff.robot_state.multi_dof_joint_state.poses = []
00840 for i in range(0, length):
00841 val1 = geometry_msgs.msg.Pose()
00842 _v29 = val1.position
00843 _x = _v29
00844 start = end
00845 end += 24
00846 (_x.x, _x.y, _x.z,) = _struct_3d.unpack(str[start:end])
00847 _v30 = val1.orientation
00848 _x = _v30
00849 start = end
00850 end += 32
00851 (_x.x, _x.y, _x.z, _x.w,) = _struct_4d.unpack(str[start:end])
00852 self.planning_scene_diff.robot_state.multi_dof_joint_state.poses.append(val1)
00853 start = end
00854 end += 4
00855 (length,) = _struct_I.unpack(str[start:end])
00856 self.planning_scene_diff.fixed_frame_transforms = []
00857 for i in range(0, length):
00858 val1 = geometry_msgs.msg.TransformStamped()
00859 _v31 = val1.header
00860 start = end
00861 end += 4
00862 (_v31.seq,) = _struct_I.unpack(str[start:end])
00863 _v32 = _v31.stamp
00864 _x = _v32
00865 start = end
00866 end += 8
00867 (_x.secs, _x.nsecs,) = _struct_2I.unpack(str[start:end])
00868 start = end
00869 end += 4
00870 (length,) = _struct_I.unpack(str[start:end])
00871 start = end
00872 end += length
00873 if python3:
00874 _v31.frame_id = str[start:end].decode('utf-8')
00875 else:
00876 _v31.frame_id = str[start:end]
00877 start = end
00878 end += 4
00879 (length,) = _struct_I.unpack(str[start:end])
00880 start = end
00881 end += length
00882 if python3:
00883 val1.child_frame_id = str[start:end].decode('utf-8')
00884 else:
00885 val1.child_frame_id = str[start:end]
00886 _v33 = val1.transform
00887 _v34 = _v33.translation
00888 _x = _v34
00889 start = end
00890 end += 24
00891 (_x.x, _x.y, _x.z,) = _struct_3d.unpack(str[start:end])
00892 _v35 = _v33.rotation
00893 _x = _v35
00894 start = end
00895 end += 32
00896 (_x.x, _x.y, _x.z, _x.w,) = _struct_4d.unpack(str[start:end])
00897 self.planning_scene_diff.fixed_frame_transforms.append(val1)
00898 start = end
00899 end += 4
00900 (length,) = _struct_I.unpack(str[start:end])
00901 self.planning_scene_diff.allowed_collision_matrix.link_names = []
00902 for i in range(0, length):
00903 start = end
00904 end += 4
00905 (length,) = _struct_I.unpack(str[start:end])
00906 start = end
00907 end += length
00908 if python3:
00909 val1 = str[start:end].decode('utf-8')
00910 else:
00911 val1 = str[start:end]
00912 self.planning_scene_diff.allowed_collision_matrix.link_names.append(val1)
00913 start = end
00914 end += 4
00915 (length,) = _struct_I.unpack(str[start:end])
00916 self.planning_scene_diff.allowed_collision_matrix.entries = []
00917 for i in range(0, length):
00918 val1 = arm_navigation_msgs.msg.AllowedCollisionEntry()
00919 start = end
00920 end += 4
00921 (length,) = _struct_I.unpack(str[start:end])
00922 pattern = '<%sB'%length
00923 start = end
00924 end += struct.calcsize(pattern)
00925 val1.enabled = struct.unpack(pattern, str[start:end])
00926 val1.enabled = map(bool, val1.enabled)
00927 self.planning_scene_diff.allowed_collision_matrix.entries.append(val1)
00928 start = end
00929 end += 4
00930 (length,) = _struct_I.unpack(str[start:end])
00931 self.planning_scene_diff.allowed_contacts = []
00932 for i in range(0, length):
00933 val1 = arm_navigation_msgs.msg.AllowedContactSpecification()
00934 start = end
00935 end += 4
00936 (length,) = _struct_I.unpack(str[start:end])
00937 start = end
00938 end += length
00939 if python3:
00940 val1.name = str[start:end].decode('utf-8')
00941 else:
00942 val1.name = str[start:end]
00943 _v36 = val1.shape
00944 start = end
00945 end += 1
00946 (_v36.type,) = _struct_b.unpack(str[start:end])
00947 start = end
00948 end += 4
00949 (length,) = _struct_I.unpack(str[start:end])
00950 pattern = '<%sd'%length
00951 start = end
00952 end += struct.calcsize(pattern)
00953 _v36.dimensions = struct.unpack(pattern, str[start:end])
00954 start = end
00955 end += 4
00956 (length,) = _struct_I.unpack(str[start:end])
00957 pattern = '<%si'%length
00958 start = end
00959 end += struct.calcsize(pattern)
00960 _v36.triangles = struct.unpack(pattern, str[start:end])
00961 start = end
00962 end += 4
00963 (length,) = _struct_I.unpack(str[start:end])
00964 _v36.vertices = []
00965 for i in range(0, length):
00966 val3 = geometry_msgs.msg.Point()
00967 _x = val3
00968 start = end
00969 end += 24
00970 (_x.x, _x.y, _x.z,) = _struct_3d.unpack(str[start:end])
00971 _v36.vertices.append(val3)
00972 _v37 = val1.pose_stamped
00973 _v38 = _v37.header
00974 start = end
00975 end += 4
00976 (_v38.seq,) = _struct_I.unpack(str[start:end])
00977 _v39 = _v38.stamp
00978 _x = _v39
00979 start = end
00980 end += 8
00981 (_x.secs, _x.nsecs,) = _struct_2I.unpack(str[start:end])
00982 start = end
00983 end += 4
00984 (length,) = _struct_I.unpack(str[start:end])
00985 start = end
00986 end += length
00987 if python3:
00988 _v38.frame_id = str[start:end].decode('utf-8')
00989 else:
00990 _v38.frame_id = str[start:end]
00991 _v40 = _v37.pose
00992 _v41 = _v40.position
00993 _x = _v41
00994 start = end
00995 end += 24
00996 (_x.x, _x.y, _x.z,) = _struct_3d.unpack(str[start:end])
00997 _v42 = _v40.orientation
00998 _x = _v42
00999 start = end
01000 end += 32
01001 (_x.x, _x.y, _x.z, _x.w,) = _struct_4d.unpack(str[start:end])
01002 start = end
01003 end += 4
01004 (length,) = _struct_I.unpack(str[start:end])
01005 val1.link_names = []
01006 for i in range(0, length):
01007 start = end
01008 end += 4
01009 (length,) = _struct_I.unpack(str[start:end])
01010 start = end
01011 end += length
01012 if python3:
01013 val2 = str[start:end].decode('utf-8')
01014 else:
01015 val2 = str[start:end]
01016 val1.link_names.append(val2)
01017 start = end
01018 end += 8
01019 (val1.penetration_depth,) = _struct_d.unpack(str[start:end])
01020 self.planning_scene_diff.allowed_contacts.append(val1)
01021 start = end
01022 end += 4
01023 (length,) = _struct_I.unpack(str[start:end])
01024 self.planning_scene_diff.link_padding = []
01025 for i in range(0, length):
01026 val1 = arm_navigation_msgs.msg.LinkPadding()
01027 start = end
01028 end += 4
01029 (length,) = _struct_I.unpack(str[start:end])
01030 start = end
01031 end += length
01032 if python3:
01033 val1.link_name = str[start:end].decode('utf-8')
01034 else:
01035 val1.link_name = str[start:end]
01036 start = end
01037 end += 8
01038 (val1.padding,) = _struct_d.unpack(str[start:end])
01039 self.planning_scene_diff.link_padding.append(val1)
01040 start = end
01041 end += 4
01042 (length,) = _struct_I.unpack(str[start:end])
01043 self.planning_scene_diff.collision_objects = []
01044 for i in range(0, length):
01045 val1 = arm_navigation_msgs.msg.CollisionObject()
01046 _v43 = val1.header
01047 start = end
01048 end += 4
01049 (_v43.seq,) = _struct_I.unpack(str[start:end])
01050 _v44 = _v43.stamp
01051 _x = _v44
01052 start = end
01053 end += 8
01054 (_x.secs, _x.nsecs,) = _struct_2I.unpack(str[start:end])
01055 start = end
01056 end += 4
01057 (length,) = _struct_I.unpack(str[start:end])
01058 start = end
01059 end += length
01060 if python3:
01061 _v43.frame_id = str[start:end].decode('utf-8')
01062 else:
01063 _v43.frame_id = str[start:end]
01064 start = end
01065 end += 4
01066 (length,) = _struct_I.unpack(str[start:end])
01067 start = end
01068 end += length
01069 if python3:
01070 val1.id = str[start:end].decode('utf-8')
01071 else:
01072 val1.id = str[start:end]
01073 start = end
01074 end += 4
01075 (val1.padding,) = _struct_f.unpack(str[start:end])
01076 _v45 = val1.operation
01077 start = end
01078 end += 1
01079 (_v45.operation,) = _struct_b.unpack(str[start:end])
01080 start = end
01081 end += 4
01082 (length,) = _struct_I.unpack(str[start:end])
01083 val1.shapes = []
01084 for i in range(0, length):
01085 val2 = arm_navigation_msgs.msg.Shape()
01086 start = end
01087 end += 1
01088 (val2.type,) = _struct_b.unpack(str[start:end])
01089 start = end
01090 end += 4
01091 (length,) = _struct_I.unpack(str[start:end])
01092 pattern = '<%sd'%length
01093 start = end
01094 end += struct.calcsize(pattern)
01095 val2.dimensions = struct.unpack(pattern, str[start:end])
01096 start = end
01097 end += 4
01098 (length,) = _struct_I.unpack(str[start:end])
01099 pattern = '<%si'%length
01100 start = end
01101 end += struct.calcsize(pattern)
01102 val2.triangles = struct.unpack(pattern, str[start:end])
01103 start = end
01104 end += 4
01105 (length,) = _struct_I.unpack(str[start:end])
01106 val2.vertices = []
01107 for i in range(0, length):
01108 val3 = geometry_msgs.msg.Point()
01109 _x = val3
01110 start = end
01111 end += 24
01112 (_x.x, _x.y, _x.z,) = _struct_3d.unpack(str[start:end])
01113 val2.vertices.append(val3)
01114 val1.shapes.append(val2)
01115 start = end
01116 end += 4
01117 (length,) = _struct_I.unpack(str[start:end])
01118 val1.poses = []
01119 for i in range(0, length):
01120 val2 = geometry_msgs.msg.Pose()
01121 _v46 = val2.position
01122 _x = _v46
01123 start = end
01124 end += 24
01125 (_x.x, _x.y, _x.z,) = _struct_3d.unpack(str[start:end])
01126 _v47 = val2.orientation
01127 _x = _v47
01128 start = end
01129 end += 32
01130 (_x.x, _x.y, _x.z, _x.w,) = _struct_4d.unpack(str[start:end])
01131 val1.poses.append(val2)
01132 self.planning_scene_diff.collision_objects.append(val1)
01133 start = end
01134 end += 4
01135 (length,) = _struct_I.unpack(str[start:end])
01136 self.planning_scene_diff.attached_collision_objects = []
01137 for i in range(0, length):
01138 val1 = arm_navigation_msgs.msg.AttachedCollisionObject()
01139 start = end
01140 end += 4
01141 (length,) = _struct_I.unpack(str[start:end])
01142 start = end
01143 end += length
01144 if python3:
01145 val1.link_name = str[start:end].decode('utf-8')
01146 else:
01147 val1.link_name = str[start:end]
01148 _v48 = val1.object
01149 _v49 = _v48.header
01150 start = end
01151 end += 4
01152 (_v49.seq,) = _struct_I.unpack(str[start:end])
01153 _v50 = _v49.stamp
01154 _x = _v50
01155 start = end
01156 end += 8
01157 (_x.secs, _x.nsecs,) = _struct_2I.unpack(str[start:end])
01158 start = end
01159 end += 4
01160 (length,) = _struct_I.unpack(str[start:end])
01161 start = end
01162 end += length
01163 if python3:
01164 _v49.frame_id = str[start:end].decode('utf-8')
01165 else:
01166 _v49.frame_id = str[start:end]
01167 start = end
01168 end += 4
01169 (length,) = _struct_I.unpack(str[start:end])
01170 start = end
01171 end += length
01172 if python3:
01173 _v48.id = str[start:end].decode('utf-8')
01174 else:
01175 _v48.id = str[start:end]
01176 start = end
01177 end += 4
01178 (_v48.padding,) = _struct_f.unpack(str[start:end])
01179 _v51 = _v48.operation
01180 start = end
01181 end += 1
01182 (_v51.operation,) = _struct_b.unpack(str[start:end])
01183 start = end
01184 end += 4
01185 (length,) = _struct_I.unpack(str[start:end])
01186 _v48.shapes = []
01187 for i in range(0, length):
01188 val3 = arm_navigation_msgs.msg.Shape()
01189 start = end
01190 end += 1
01191 (val3.type,) = _struct_b.unpack(str[start:end])
01192 start = end
01193 end += 4
01194 (length,) = _struct_I.unpack(str[start:end])
01195 pattern = '<%sd'%length
01196 start = end
01197 end += struct.calcsize(pattern)
01198 val3.dimensions = struct.unpack(pattern, str[start:end])
01199 start = end
01200 end += 4
01201 (length,) = _struct_I.unpack(str[start:end])
01202 pattern = '<%si'%length
01203 start = end
01204 end += struct.calcsize(pattern)
01205 val3.triangles = struct.unpack(pattern, str[start:end])
01206 start = end
01207 end += 4
01208 (length,) = _struct_I.unpack(str[start:end])
01209 val3.vertices = []
01210 for i in range(0, length):
01211 val4 = geometry_msgs.msg.Point()
01212 _x = val4
01213 start = end
01214 end += 24
01215 (_x.x, _x.y, _x.z,) = _struct_3d.unpack(str[start:end])
01216 val3.vertices.append(val4)
01217 _v48.shapes.append(val3)
01218 start = end
01219 end += 4
01220 (length,) = _struct_I.unpack(str[start:end])
01221 _v48.poses = []
01222 for i in range(0, length):
01223 val3 = geometry_msgs.msg.Pose()
01224 _v52 = val3.position
01225 _x = _v52
01226 start = end
01227 end += 24
01228 (_x.x, _x.y, _x.z,) = _struct_3d.unpack(str[start:end])
01229 _v53 = val3.orientation
01230 _x = _v53
01231 start = end
01232 end += 32
01233 (_x.x, _x.y, _x.z, _x.w,) = _struct_4d.unpack(str[start:end])
01234 _v48.poses.append(val3)
01235 start = end
01236 end += 4
01237 (length,) = _struct_I.unpack(str[start:end])
01238 val1.touch_links = []
01239 for i in range(0, length):
01240 start = end
01241 end += 4
01242 (length,) = _struct_I.unpack(str[start:end])
01243 start = end
01244 end += length
01245 if python3:
01246 val2 = str[start:end].decode('utf-8')
01247 else:
01248 val2 = str[start:end]
01249 val1.touch_links.append(val2)
01250 self.planning_scene_diff.attached_collision_objects.append(val1)
01251 _x = self
01252 start = end
01253 end += 12
01254 (_x.planning_scene_diff.collision_map.header.seq, _x.planning_scene_diff.collision_map.header.stamp.secs, _x.planning_scene_diff.collision_map.header.stamp.nsecs,) = _struct_3I.unpack(str[start:end])
01255 start = end
01256 end += 4
01257 (length,) = _struct_I.unpack(str[start:end])
01258 start = end
01259 end += length
01260 if python3:
01261 self.planning_scene_diff.collision_map.header.frame_id = str[start:end].decode('utf-8')
01262 else:
01263 self.planning_scene_diff.collision_map.header.frame_id = str[start:end]
01264 start = end
01265 end += 4
01266 (length,) = _struct_I.unpack(str[start:end])
01267 self.planning_scene_diff.collision_map.boxes = []
01268 for i in range(0, length):
01269 val1 = arm_navigation_msgs.msg.OrientedBoundingBox()
01270 _v54 = val1.center
01271 _x = _v54
01272 start = end
01273 end += 12
01274 (_x.x, _x.y, _x.z,) = _struct_3f.unpack(str[start:end])
01275 _v55 = val1.extents
01276 _x = _v55
01277 start = end
01278 end += 12
01279 (_x.x, _x.y, _x.z,) = _struct_3f.unpack(str[start:end])
01280 _v56 = val1.axis
01281 _x = _v56
01282 start = end
01283 end += 12
01284 (_x.x, _x.y, _x.z,) = _struct_3f.unpack(str[start:end])
01285 start = end
01286 end += 4
01287 (val1.angle,) = _struct_f.unpack(str[start:end])
01288 self.planning_scene_diff.collision_map.boxes.append(val1)
01289 start = end
01290 end += 4
01291 (length,) = _struct_I.unpack(str[start:end])
01292 self.operations.collision_operations = []
01293 for i in range(0, length):
01294 val1 = arm_navigation_msgs.msg.CollisionOperation()
01295 start = end
01296 end += 4
01297 (length,) = _struct_I.unpack(str[start:end])
01298 start = end
01299 end += length
01300 if python3:
01301 val1.object1 = str[start:end].decode('utf-8')
01302 else:
01303 val1.object1 = str[start:end]
01304 start = end
01305 end += 4
01306 (length,) = _struct_I.unpack(str[start:end])
01307 start = end
01308 end += length
01309 if python3:
01310 val1.object2 = str[start:end].decode('utf-8')
01311 else:
01312 val1.object2 = str[start:end]
01313 _x = val1
01314 start = end
01315 end += 12
01316 (_x.penetration_distance, _x.operation,) = _struct_di.unpack(str[start:end])
01317 self.operations.collision_operations.append(val1)
01318 return self
01319 except struct.error as e:
01320 raise genpy.DeserializationError(e)
01321
01322
01323 def serialize_numpy(self, buff, numpy):
01324 """
01325 serialize message with numpy array types into buffer
01326 :param buff: buffer, ``StringIO``
01327 :param numpy: numpy python module
01328 """
01329 try:
01330 _x = self
01331 buff.write(_struct_3I.pack(_x.planning_scene_diff.robot_state.joint_state.header.seq, _x.planning_scene_diff.robot_state.joint_state.header.stamp.secs, _x.planning_scene_diff.robot_state.joint_state.header.stamp.nsecs))
01332 _x = self.planning_scene_diff.robot_state.joint_state.header.frame_id
01333 length = len(_x)
01334 if python3 or type(_x) == unicode:
01335 _x = _x.encode('utf-8')
01336 length = len(_x)
01337 buff.write(struct.pack('<I%ss'%length, length, _x))
01338 length = len(self.planning_scene_diff.robot_state.joint_state.name)
01339 buff.write(_struct_I.pack(length))
01340 for val1 in self.planning_scene_diff.robot_state.joint_state.name:
01341 length = len(val1)
01342 if python3 or type(val1) == unicode:
01343 val1 = val1.encode('utf-8')
01344 length = len(val1)
01345 buff.write(struct.pack('<I%ss'%length, length, val1))
01346 length = len(self.planning_scene_diff.robot_state.joint_state.position)
01347 buff.write(_struct_I.pack(length))
01348 pattern = '<%sd'%length
01349 buff.write(self.planning_scene_diff.robot_state.joint_state.position.tostring())
01350 length = len(self.planning_scene_diff.robot_state.joint_state.velocity)
01351 buff.write(_struct_I.pack(length))
01352 pattern = '<%sd'%length
01353 buff.write(self.planning_scene_diff.robot_state.joint_state.velocity.tostring())
01354 length = len(self.planning_scene_diff.robot_state.joint_state.effort)
01355 buff.write(_struct_I.pack(length))
01356 pattern = '<%sd'%length
01357 buff.write(self.planning_scene_diff.robot_state.joint_state.effort.tostring())
01358 _x = self
01359 buff.write(_struct_2I.pack(_x.planning_scene_diff.robot_state.multi_dof_joint_state.stamp.secs, _x.planning_scene_diff.robot_state.multi_dof_joint_state.stamp.nsecs))
01360 length = len(self.planning_scene_diff.robot_state.multi_dof_joint_state.joint_names)
01361 buff.write(_struct_I.pack(length))
01362 for val1 in self.planning_scene_diff.robot_state.multi_dof_joint_state.joint_names:
01363 length = len(val1)
01364 if python3 or type(val1) == unicode:
01365 val1 = val1.encode('utf-8')
01366 length = len(val1)
01367 buff.write(struct.pack('<I%ss'%length, length, val1))
01368 length = len(self.planning_scene_diff.robot_state.multi_dof_joint_state.frame_ids)
01369 buff.write(_struct_I.pack(length))
01370 for val1 in self.planning_scene_diff.robot_state.multi_dof_joint_state.frame_ids:
01371 length = len(val1)
01372 if python3 or type(val1) == unicode:
01373 val1 = val1.encode('utf-8')
01374 length = len(val1)
01375 buff.write(struct.pack('<I%ss'%length, length, val1))
01376 length = len(self.planning_scene_diff.robot_state.multi_dof_joint_state.child_frame_ids)
01377 buff.write(_struct_I.pack(length))
01378 for val1 in self.planning_scene_diff.robot_state.multi_dof_joint_state.child_frame_ids:
01379 length = len(val1)
01380 if python3 or type(val1) == unicode:
01381 val1 = val1.encode('utf-8')
01382 length = len(val1)
01383 buff.write(struct.pack('<I%ss'%length, length, val1))
01384 length = len(self.planning_scene_diff.robot_state.multi_dof_joint_state.poses)
01385 buff.write(_struct_I.pack(length))
01386 for val1 in self.planning_scene_diff.robot_state.multi_dof_joint_state.poses:
01387 _v57 = val1.position
01388 _x = _v57
01389 buff.write(_struct_3d.pack(_x.x, _x.y, _x.z))
01390 _v58 = val1.orientation
01391 _x = _v58
01392 buff.write(_struct_4d.pack(_x.x, _x.y, _x.z, _x.w))
01393 length = len(self.planning_scene_diff.fixed_frame_transforms)
01394 buff.write(_struct_I.pack(length))
01395 for val1 in self.planning_scene_diff.fixed_frame_transforms:
01396 _v59 = val1.header
01397 buff.write(_struct_I.pack(_v59.seq))
01398 _v60 = _v59.stamp
01399 _x = _v60
01400 buff.write(_struct_2I.pack(_x.secs, _x.nsecs))
01401 _x = _v59.frame_id
01402 length = len(_x)
01403 if python3 or type(_x) == unicode:
01404 _x = _x.encode('utf-8')
01405 length = len(_x)
01406 buff.write(struct.pack('<I%ss'%length, length, _x))
01407 _x = val1.child_frame_id
01408 length = len(_x)
01409 if python3 or type(_x) == unicode:
01410 _x = _x.encode('utf-8')
01411 length = len(_x)
01412 buff.write(struct.pack('<I%ss'%length, length, _x))
01413 _v61 = val1.transform
01414 _v62 = _v61.translation
01415 _x = _v62
01416 buff.write(_struct_3d.pack(_x.x, _x.y, _x.z))
01417 _v63 = _v61.rotation
01418 _x = _v63
01419 buff.write(_struct_4d.pack(_x.x, _x.y, _x.z, _x.w))
01420 length = len(self.planning_scene_diff.allowed_collision_matrix.link_names)
01421 buff.write(_struct_I.pack(length))
01422 for val1 in self.planning_scene_diff.allowed_collision_matrix.link_names:
01423 length = len(val1)
01424 if python3 or type(val1) == unicode:
01425 val1 = val1.encode('utf-8')
01426 length = len(val1)
01427 buff.write(struct.pack('<I%ss'%length, length, val1))
01428 length = len(self.planning_scene_diff.allowed_collision_matrix.entries)
01429 buff.write(_struct_I.pack(length))
01430 for val1 in self.planning_scene_diff.allowed_collision_matrix.entries:
01431 length = len(val1.enabled)
01432 buff.write(_struct_I.pack(length))
01433 pattern = '<%sB'%length
01434 buff.write(val1.enabled.tostring())
01435 length = len(self.planning_scene_diff.allowed_contacts)
01436 buff.write(_struct_I.pack(length))
01437 for val1 in self.planning_scene_diff.allowed_contacts:
01438 _x = val1.name
01439 length = len(_x)
01440 if python3 or type(_x) == unicode:
01441 _x = _x.encode('utf-8')
01442 length = len(_x)
01443 buff.write(struct.pack('<I%ss'%length, length, _x))
01444 _v64 = val1.shape
01445 buff.write(_struct_b.pack(_v64.type))
01446 length = len(_v64.dimensions)
01447 buff.write(_struct_I.pack(length))
01448 pattern = '<%sd'%length
01449 buff.write(_v64.dimensions.tostring())
01450 length = len(_v64.triangles)
01451 buff.write(_struct_I.pack(length))
01452 pattern = '<%si'%length
01453 buff.write(_v64.triangles.tostring())
01454 length = len(_v64.vertices)
01455 buff.write(_struct_I.pack(length))
01456 for val3 in _v64.vertices:
01457 _x = val3
01458 buff.write(_struct_3d.pack(_x.x, _x.y, _x.z))
01459 _v65 = val1.pose_stamped
01460 _v66 = _v65.header
01461 buff.write(_struct_I.pack(_v66.seq))
01462 _v67 = _v66.stamp
01463 _x = _v67
01464 buff.write(_struct_2I.pack(_x.secs, _x.nsecs))
01465 _x = _v66.frame_id
01466 length = len(_x)
01467 if python3 or type(_x) == unicode:
01468 _x = _x.encode('utf-8')
01469 length = len(_x)
01470 buff.write(struct.pack('<I%ss'%length, length, _x))
01471 _v68 = _v65.pose
01472 _v69 = _v68.position
01473 _x = _v69
01474 buff.write(_struct_3d.pack(_x.x, _x.y, _x.z))
01475 _v70 = _v68.orientation
01476 _x = _v70
01477 buff.write(_struct_4d.pack(_x.x, _x.y, _x.z, _x.w))
01478 length = len(val1.link_names)
01479 buff.write(_struct_I.pack(length))
01480 for val2 in val1.link_names:
01481 length = len(val2)
01482 if python3 or type(val2) == unicode:
01483 val2 = val2.encode('utf-8')
01484 length = len(val2)
01485 buff.write(struct.pack('<I%ss'%length, length, val2))
01486 buff.write(_struct_d.pack(val1.penetration_depth))
01487 length = len(self.planning_scene_diff.link_padding)
01488 buff.write(_struct_I.pack(length))
01489 for val1 in self.planning_scene_diff.link_padding:
01490 _x = val1.link_name
01491 length = len(_x)
01492 if python3 or type(_x) == unicode:
01493 _x = _x.encode('utf-8')
01494 length = len(_x)
01495 buff.write(struct.pack('<I%ss'%length, length, _x))
01496 buff.write(_struct_d.pack(val1.padding))
01497 length = len(self.planning_scene_diff.collision_objects)
01498 buff.write(_struct_I.pack(length))
01499 for val1 in self.planning_scene_diff.collision_objects:
01500 _v71 = val1.header
01501 buff.write(_struct_I.pack(_v71.seq))
01502 _v72 = _v71.stamp
01503 _x = _v72
01504 buff.write(_struct_2I.pack(_x.secs, _x.nsecs))
01505 _x = _v71.frame_id
01506 length = len(_x)
01507 if python3 or type(_x) == unicode:
01508 _x = _x.encode('utf-8')
01509 length = len(_x)
01510 buff.write(struct.pack('<I%ss'%length, length, _x))
01511 _x = val1.id
01512 length = len(_x)
01513 if python3 or type(_x) == unicode:
01514 _x = _x.encode('utf-8')
01515 length = len(_x)
01516 buff.write(struct.pack('<I%ss'%length, length, _x))
01517 buff.write(_struct_f.pack(val1.padding))
01518 _v73 = val1.operation
01519 buff.write(_struct_b.pack(_v73.operation))
01520 length = len(val1.shapes)
01521 buff.write(_struct_I.pack(length))
01522 for val2 in val1.shapes:
01523 buff.write(_struct_b.pack(val2.type))
01524 length = len(val2.dimensions)
01525 buff.write(_struct_I.pack(length))
01526 pattern = '<%sd'%length
01527 buff.write(val2.dimensions.tostring())
01528 length = len(val2.triangles)
01529 buff.write(_struct_I.pack(length))
01530 pattern = '<%si'%length
01531 buff.write(val2.triangles.tostring())
01532 length = len(val2.vertices)
01533 buff.write(_struct_I.pack(length))
01534 for val3 in val2.vertices:
01535 _x = val3
01536 buff.write(_struct_3d.pack(_x.x, _x.y, _x.z))
01537 length = len(val1.poses)
01538 buff.write(_struct_I.pack(length))
01539 for val2 in val1.poses:
01540 _v74 = val2.position
01541 _x = _v74
01542 buff.write(_struct_3d.pack(_x.x, _x.y, _x.z))
01543 _v75 = val2.orientation
01544 _x = _v75
01545 buff.write(_struct_4d.pack(_x.x, _x.y, _x.z, _x.w))
01546 length = len(self.planning_scene_diff.attached_collision_objects)
01547 buff.write(_struct_I.pack(length))
01548 for val1 in self.planning_scene_diff.attached_collision_objects:
01549 _x = val1.link_name
01550 length = len(_x)
01551 if python3 or type(_x) == unicode:
01552 _x = _x.encode('utf-8')
01553 length = len(_x)
01554 buff.write(struct.pack('<I%ss'%length, length, _x))
01555 _v76 = val1.object
01556 _v77 = _v76.header
01557 buff.write(_struct_I.pack(_v77.seq))
01558 _v78 = _v77.stamp
01559 _x = _v78
01560 buff.write(_struct_2I.pack(_x.secs, _x.nsecs))
01561 _x = _v77.frame_id
01562 length = len(_x)
01563 if python3 or type(_x) == unicode:
01564 _x = _x.encode('utf-8')
01565 length = len(_x)
01566 buff.write(struct.pack('<I%ss'%length, length, _x))
01567 _x = _v76.id
01568 length = len(_x)
01569 if python3 or type(_x) == unicode:
01570 _x = _x.encode('utf-8')
01571 length = len(_x)
01572 buff.write(struct.pack('<I%ss'%length, length, _x))
01573 buff.write(_struct_f.pack(_v76.padding))
01574 _v79 = _v76.operation
01575 buff.write(_struct_b.pack(_v79.operation))
01576 length = len(_v76.shapes)
01577 buff.write(_struct_I.pack(length))
01578 for val3 in _v76.shapes:
01579 buff.write(_struct_b.pack(val3.type))
01580 length = len(val3.dimensions)
01581 buff.write(_struct_I.pack(length))
01582 pattern = '<%sd'%length
01583 buff.write(val3.dimensions.tostring())
01584 length = len(val3.triangles)
01585 buff.write(_struct_I.pack(length))
01586 pattern = '<%si'%length
01587 buff.write(val3.triangles.tostring())
01588 length = len(val3.vertices)
01589 buff.write(_struct_I.pack(length))
01590 for val4 in val3.vertices:
01591 _x = val4
01592 buff.write(_struct_3d.pack(_x.x, _x.y, _x.z))
01593 length = len(_v76.poses)
01594 buff.write(_struct_I.pack(length))
01595 for val3 in _v76.poses:
01596 _v80 = val3.position
01597 _x = _v80
01598 buff.write(_struct_3d.pack(_x.x, _x.y, _x.z))
01599 _v81 = val3.orientation
01600 _x = _v81
01601 buff.write(_struct_4d.pack(_x.x, _x.y, _x.z, _x.w))
01602 length = len(val1.touch_links)
01603 buff.write(_struct_I.pack(length))
01604 for val2 in val1.touch_links:
01605 length = len(val2)
01606 if python3 or type(val2) == unicode:
01607 val2 = val2.encode('utf-8')
01608 length = len(val2)
01609 buff.write(struct.pack('<I%ss'%length, length, val2))
01610 _x = self
01611 buff.write(_struct_3I.pack(_x.planning_scene_diff.collision_map.header.seq, _x.planning_scene_diff.collision_map.header.stamp.secs, _x.planning_scene_diff.collision_map.header.stamp.nsecs))
01612 _x = self.planning_scene_diff.collision_map.header.frame_id
01613 length = len(_x)
01614 if python3 or type(_x) == unicode:
01615 _x = _x.encode('utf-8')
01616 length = len(_x)
01617 buff.write(struct.pack('<I%ss'%length, length, _x))
01618 length = len(self.planning_scene_diff.collision_map.boxes)
01619 buff.write(_struct_I.pack(length))
01620 for val1 in self.planning_scene_diff.collision_map.boxes:
01621 _v82 = val1.center
01622 _x = _v82
01623 buff.write(_struct_3f.pack(_x.x, _x.y, _x.z))
01624 _v83 = val1.extents
01625 _x = _v83
01626 buff.write(_struct_3f.pack(_x.x, _x.y, _x.z))
01627 _v84 = val1.axis
01628 _x = _v84
01629 buff.write(_struct_3f.pack(_x.x, _x.y, _x.z))
01630 buff.write(_struct_f.pack(val1.angle))
01631 length = len(self.operations.collision_operations)
01632 buff.write(_struct_I.pack(length))
01633 for val1 in self.operations.collision_operations:
01634 _x = val1.object1
01635 length = len(_x)
01636 if python3 or type(_x) == unicode:
01637 _x = _x.encode('utf-8')
01638 length = len(_x)
01639 buff.write(struct.pack('<I%ss'%length, length, _x))
01640 _x = val1.object2
01641 length = len(_x)
01642 if python3 or type(_x) == unicode:
01643 _x = _x.encode('utf-8')
01644 length = len(_x)
01645 buff.write(struct.pack('<I%ss'%length, length, _x))
01646 _x = val1
01647 buff.write(_struct_di.pack(_x.penetration_distance, _x.operation))
01648 except struct.error as se: self._check_types(se)
01649 except TypeError as te: self._check_types(te)
01650
01651 def deserialize_numpy(self, str, numpy):
01652 """
01653 unpack serialized message in str into this message instance using numpy for array types
01654 :param str: byte array of serialized message, ``str``
01655 :param numpy: numpy python module
01656 """
01657 try:
01658 if self.planning_scene_diff is None:
01659 self.planning_scene_diff = arm_navigation_msgs.msg.PlanningScene()
01660 if self.operations is None:
01661 self.operations = arm_navigation_msgs.msg.OrderedCollisionOperations()
01662 end = 0
01663 _x = self
01664 start = end
01665 end += 12
01666 (_x.planning_scene_diff.robot_state.joint_state.header.seq, _x.planning_scene_diff.robot_state.joint_state.header.stamp.secs, _x.planning_scene_diff.robot_state.joint_state.header.stamp.nsecs,) = _struct_3I.unpack(str[start:end])
01667 start = end
01668 end += 4
01669 (length,) = _struct_I.unpack(str[start:end])
01670 start = end
01671 end += length
01672 if python3:
01673 self.planning_scene_diff.robot_state.joint_state.header.frame_id = str[start:end].decode('utf-8')
01674 else:
01675 self.planning_scene_diff.robot_state.joint_state.header.frame_id = str[start:end]
01676 start = end
01677 end += 4
01678 (length,) = _struct_I.unpack(str[start:end])
01679 self.planning_scene_diff.robot_state.joint_state.name = []
01680 for i in range(0, length):
01681 start = end
01682 end += 4
01683 (length,) = _struct_I.unpack(str[start:end])
01684 start = end
01685 end += length
01686 if python3:
01687 val1 = str[start:end].decode('utf-8')
01688 else:
01689 val1 = str[start:end]
01690 self.planning_scene_diff.robot_state.joint_state.name.append(val1)
01691 start = end
01692 end += 4
01693 (length,) = _struct_I.unpack(str[start:end])
01694 pattern = '<%sd'%length
01695 start = end
01696 end += struct.calcsize(pattern)
01697 self.planning_scene_diff.robot_state.joint_state.position = numpy.frombuffer(str[start:end], dtype=numpy.float64, count=length)
01698 start = end
01699 end += 4
01700 (length,) = _struct_I.unpack(str[start:end])
01701 pattern = '<%sd'%length
01702 start = end
01703 end += struct.calcsize(pattern)
01704 self.planning_scene_diff.robot_state.joint_state.velocity = numpy.frombuffer(str[start:end], dtype=numpy.float64, count=length)
01705 start = end
01706 end += 4
01707 (length,) = _struct_I.unpack(str[start:end])
01708 pattern = '<%sd'%length
01709 start = end
01710 end += struct.calcsize(pattern)
01711 self.planning_scene_diff.robot_state.joint_state.effort = numpy.frombuffer(str[start:end], dtype=numpy.float64, count=length)
01712 _x = self
01713 start = end
01714 end += 8
01715 (_x.planning_scene_diff.robot_state.multi_dof_joint_state.stamp.secs, _x.planning_scene_diff.robot_state.multi_dof_joint_state.stamp.nsecs,) = _struct_2I.unpack(str[start:end])
01716 start = end
01717 end += 4
01718 (length,) = _struct_I.unpack(str[start:end])
01719 self.planning_scene_diff.robot_state.multi_dof_joint_state.joint_names = []
01720 for i in range(0, length):
01721 start = end
01722 end += 4
01723 (length,) = _struct_I.unpack(str[start:end])
01724 start = end
01725 end += length
01726 if python3:
01727 val1 = str[start:end].decode('utf-8')
01728 else:
01729 val1 = str[start:end]
01730 self.planning_scene_diff.robot_state.multi_dof_joint_state.joint_names.append(val1)
01731 start = end
01732 end += 4
01733 (length,) = _struct_I.unpack(str[start:end])
01734 self.planning_scene_diff.robot_state.multi_dof_joint_state.frame_ids = []
01735 for i in range(0, length):
01736 start = end
01737 end += 4
01738 (length,) = _struct_I.unpack(str[start:end])
01739 start = end
01740 end += length
01741 if python3:
01742 val1 = str[start:end].decode('utf-8')
01743 else:
01744 val1 = str[start:end]
01745 self.planning_scene_diff.robot_state.multi_dof_joint_state.frame_ids.append(val1)
01746 start = end
01747 end += 4
01748 (length,) = _struct_I.unpack(str[start:end])
01749 self.planning_scene_diff.robot_state.multi_dof_joint_state.child_frame_ids = []
01750 for i in range(0, length):
01751 start = end
01752 end += 4
01753 (length,) = _struct_I.unpack(str[start:end])
01754 start = end
01755 end += length
01756 if python3:
01757 val1 = str[start:end].decode('utf-8')
01758 else:
01759 val1 = str[start:end]
01760 self.planning_scene_diff.robot_state.multi_dof_joint_state.child_frame_ids.append(val1)
01761 start = end
01762 end += 4
01763 (length,) = _struct_I.unpack(str[start:end])
01764 self.planning_scene_diff.robot_state.multi_dof_joint_state.poses = []
01765 for i in range(0, length):
01766 val1 = geometry_msgs.msg.Pose()
01767 _v85 = val1.position
01768 _x = _v85
01769 start = end
01770 end += 24
01771 (_x.x, _x.y, _x.z,) = _struct_3d.unpack(str[start:end])
01772 _v86 = val1.orientation
01773 _x = _v86
01774 start = end
01775 end += 32
01776 (_x.x, _x.y, _x.z, _x.w,) = _struct_4d.unpack(str[start:end])
01777 self.planning_scene_diff.robot_state.multi_dof_joint_state.poses.append(val1)
01778 start = end
01779 end += 4
01780 (length,) = _struct_I.unpack(str[start:end])
01781 self.planning_scene_diff.fixed_frame_transforms = []
01782 for i in range(0, length):
01783 val1 = geometry_msgs.msg.TransformStamped()
01784 _v87 = val1.header
01785 start = end
01786 end += 4
01787 (_v87.seq,) = _struct_I.unpack(str[start:end])
01788 _v88 = _v87.stamp
01789 _x = _v88
01790 start = end
01791 end += 8
01792 (_x.secs, _x.nsecs,) = _struct_2I.unpack(str[start:end])
01793 start = end
01794 end += 4
01795 (length,) = _struct_I.unpack(str[start:end])
01796 start = end
01797 end += length
01798 if python3:
01799 _v87.frame_id = str[start:end].decode('utf-8')
01800 else:
01801 _v87.frame_id = str[start:end]
01802 start = end
01803 end += 4
01804 (length,) = _struct_I.unpack(str[start:end])
01805 start = end
01806 end += length
01807 if python3:
01808 val1.child_frame_id = str[start:end].decode('utf-8')
01809 else:
01810 val1.child_frame_id = str[start:end]
01811 _v89 = val1.transform
01812 _v90 = _v89.translation
01813 _x = _v90
01814 start = end
01815 end += 24
01816 (_x.x, _x.y, _x.z,) = _struct_3d.unpack(str[start:end])
01817 _v91 = _v89.rotation
01818 _x = _v91
01819 start = end
01820 end += 32
01821 (_x.x, _x.y, _x.z, _x.w,) = _struct_4d.unpack(str[start:end])
01822 self.planning_scene_diff.fixed_frame_transforms.append(val1)
01823 start = end
01824 end += 4
01825 (length,) = _struct_I.unpack(str[start:end])
01826 self.planning_scene_diff.allowed_collision_matrix.link_names = []
01827 for i in range(0, length):
01828 start = end
01829 end += 4
01830 (length,) = _struct_I.unpack(str[start:end])
01831 start = end
01832 end += length
01833 if python3:
01834 val1 = str[start:end].decode('utf-8')
01835 else:
01836 val1 = str[start:end]
01837 self.planning_scene_diff.allowed_collision_matrix.link_names.append(val1)
01838 start = end
01839 end += 4
01840 (length,) = _struct_I.unpack(str[start:end])
01841 self.planning_scene_diff.allowed_collision_matrix.entries = []
01842 for i in range(0, length):
01843 val1 = arm_navigation_msgs.msg.AllowedCollisionEntry()
01844 start = end
01845 end += 4
01846 (length,) = _struct_I.unpack(str[start:end])
01847 pattern = '<%sB'%length
01848 start = end
01849 end += struct.calcsize(pattern)
01850 val1.enabled = numpy.frombuffer(str[start:end], dtype=numpy.bool, count=length)
01851 val1.enabled = map(bool, val1.enabled)
01852 self.planning_scene_diff.allowed_collision_matrix.entries.append(val1)
01853 start = end
01854 end += 4
01855 (length,) = _struct_I.unpack(str[start:end])
01856 self.planning_scene_diff.allowed_contacts = []
01857 for i in range(0, length):
01858 val1 = arm_navigation_msgs.msg.AllowedContactSpecification()
01859 start = end
01860 end += 4
01861 (length,) = _struct_I.unpack(str[start:end])
01862 start = end
01863 end += length
01864 if python3:
01865 val1.name = str[start:end].decode('utf-8')
01866 else:
01867 val1.name = str[start:end]
01868 _v92 = val1.shape
01869 start = end
01870 end += 1
01871 (_v92.type,) = _struct_b.unpack(str[start:end])
01872 start = end
01873 end += 4
01874 (length,) = _struct_I.unpack(str[start:end])
01875 pattern = '<%sd'%length
01876 start = end
01877 end += struct.calcsize(pattern)
01878 _v92.dimensions = numpy.frombuffer(str[start:end], dtype=numpy.float64, count=length)
01879 start = end
01880 end += 4
01881 (length,) = _struct_I.unpack(str[start:end])
01882 pattern = '<%si'%length
01883 start = end
01884 end += struct.calcsize(pattern)
01885 _v92.triangles = numpy.frombuffer(str[start:end], dtype=numpy.int32, count=length)
01886 start = end
01887 end += 4
01888 (length,) = _struct_I.unpack(str[start:end])
01889 _v92.vertices = []
01890 for i in range(0, length):
01891 val3 = geometry_msgs.msg.Point()
01892 _x = val3
01893 start = end
01894 end += 24
01895 (_x.x, _x.y, _x.z,) = _struct_3d.unpack(str[start:end])
01896 _v92.vertices.append(val3)
01897 _v93 = val1.pose_stamped
01898 _v94 = _v93.header
01899 start = end
01900 end += 4
01901 (_v94.seq,) = _struct_I.unpack(str[start:end])
01902 _v95 = _v94.stamp
01903 _x = _v95
01904 start = end
01905 end += 8
01906 (_x.secs, _x.nsecs,) = _struct_2I.unpack(str[start:end])
01907 start = end
01908 end += 4
01909 (length,) = _struct_I.unpack(str[start:end])
01910 start = end
01911 end += length
01912 if python3:
01913 _v94.frame_id = str[start:end].decode('utf-8')
01914 else:
01915 _v94.frame_id = str[start:end]
01916 _v96 = _v93.pose
01917 _v97 = _v96.position
01918 _x = _v97
01919 start = end
01920 end += 24
01921 (_x.x, _x.y, _x.z,) = _struct_3d.unpack(str[start:end])
01922 _v98 = _v96.orientation
01923 _x = _v98
01924 start = end
01925 end += 32
01926 (_x.x, _x.y, _x.z, _x.w,) = _struct_4d.unpack(str[start:end])
01927 start = end
01928 end += 4
01929 (length,) = _struct_I.unpack(str[start:end])
01930 val1.link_names = []
01931 for i in range(0, length):
01932 start = end
01933 end += 4
01934 (length,) = _struct_I.unpack(str[start:end])
01935 start = end
01936 end += length
01937 if python3:
01938 val2 = str[start:end].decode('utf-8')
01939 else:
01940 val2 = str[start:end]
01941 val1.link_names.append(val2)
01942 start = end
01943 end += 8
01944 (val1.penetration_depth,) = _struct_d.unpack(str[start:end])
01945 self.planning_scene_diff.allowed_contacts.append(val1)
01946 start = end
01947 end += 4
01948 (length,) = _struct_I.unpack(str[start:end])
01949 self.planning_scene_diff.link_padding = []
01950 for i in range(0, length):
01951 val1 = arm_navigation_msgs.msg.LinkPadding()
01952 start = end
01953 end += 4
01954 (length,) = _struct_I.unpack(str[start:end])
01955 start = end
01956 end += length
01957 if python3:
01958 val1.link_name = str[start:end].decode('utf-8')
01959 else:
01960 val1.link_name = str[start:end]
01961 start = end
01962 end += 8
01963 (val1.padding,) = _struct_d.unpack(str[start:end])
01964 self.planning_scene_diff.link_padding.append(val1)
01965 start = end
01966 end += 4
01967 (length,) = _struct_I.unpack(str[start:end])
01968 self.planning_scene_diff.collision_objects = []
01969 for i in range(0, length):
01970 val1 = arm_navigation_msgs.msg.CollisionObject()
01971 _v99 = val1.header
01972 start = end
01973 end += 4
01974 (_v99.seq,) = _struct_I.unpack(str[start:end])
01975 _v100 = _v99.stamp
01976 _x = _v100
01977 start = end
01978 end += 8
01979 (_x.secs, _x.nsecs,) = _struct_2I.unpack(str[start:end])
01980 start = end
01981 end += 4
01982 (length,) = _struct_I.unpack(str[start:end])
01983 start = end
01984 end += length
01985 if python3:
01986 _v99.frame_id = str[start:end].decode('utf-8')
01987 else:
01988 _v99.frame_id = str[start:end]
01989 start = end
01990 end += 4
01991 (length,) = _struct_I.unpack(str[start:end])
01992 start = end
01993 end += length
01994 if python3:
01995 val1.id = str[start:end].decode('utf-8')
01996 else:
01997 val1.id = str[start:end]
01998 start = end
01999 end += 4
02000 (val1.padding,) = _struct_f.unpack(str[start:end])
02001 _v101 = val1.operation
02002 start = end
02003 end += 1
02004 (_v101.operation,) = _struct_b.unpack(str[start:end])
02005 start = end
02006 end += 4
02007 (length,) = _struct_I.unpack(str[start:end])
02008 val1.shapes = []
02009 for i in range(0, length):
02010 val2 = arm_navigation_msgs.msg.Shape()
02011 start = end
02012 end += 1
02013 (val2.type,) = _struct_b.unpack(str[start:end])
02014 start = end
02015 end += 4
02016 (length,) = _struct_I.unpack(str[start:end])
02017 pattern = '<%sd'%length
02018 start = end
02019 end += struct.calcsize(pattern)
02020 val2.dimensions = numpy.frombuffer(str[start:end], dtype=numpy.float64, count=length)
02021 start = end
02022 end += 4
02023 (length,) = _struct_I.unpack(str[start:end])
02024 pattern = '<%si'%length
02025 start = end
02026 end += struct.calcsize(pattern)
02027 val2.triangles = numpy.frombuffer(str[start:end], dtype=numpy.int32, count=length)
02028 start = end
02029 end += 4
02030 (length,) = _struct_I.unpack(str[start:end])
02031 val2.vertices = []
02032 for i in range(0, length):
02033 val3 = geometry_msgs.msg.Point()
02034 _x = val3
02035 start = end
02036 end += 24
02037 (_x.x, _x.y, _x.z,) = _struct_3d.unpack(str[start:end])
02038 val2.vertices.append(val3)
02039 val1.shapes.append(val2)
02040 start = end
02041 end += 4
02042 (length,) = _struct_I.unpack(str[start:end])
02043 val1.poses = []
02044 for i in range(0, length):
02045 val2 = geometry_msgs.msg.Pose()
02046 _v102 = val2.position
02047 _x = _v102
02048 start = end
02049 end += 24
02050 (_x.x, _x.y, _x.z,) = _struct_3d.unpack(str[start:end])
02051 _v103 = val2.orientation
02052 _x = _v103
02053 start = end
02054 end += 32
02055 (_x.x, _x.y, _x.z, _x.w,) = _struct_4d.unpack(str[start:end])
02056 val1.poses.append(val2)
02057 self.planning_scene_diff.collision_objects.append(val1)
02058 start = end
02059 end += 4
02060 (length,) = _struct_I.unpack(str[start:end])
02061 self.planning_scene_diff.attached_collision_objects = []
02062 for i in range(0, length):
02063 val1 = arm_navigation_msgs.msg.AttachedCollisionObject()
02064 start = end
02065 end += 4
02066 (length,) = _struct_I.unpack(str[start:end])
02067 start = end
02068 end += length
02069 if python3:
02070 val1.link_name = str[start:end].decode('utf-8')
02071 else:
02072 val1.link_name = str[start:end]
02073 _v104 = val1.object
02074 _v105 = _v104.header
02075 start = end
02076 end += 4
02077 (_v105.seq,) = _struct_I.unpack(str[start:end])
02078 _v106 = _v105.stamp
02079 _x = _v106
02080 start = end
02081 end += 8
02082 (_x.secs, _x.nsecs,) = _struct_2I.unpack(str[start:end])
02083 start = end
02084 end += 4
02085 (length,) = _struct_I.unpack(str[start:end])
02086 start = end
02087 end += length
02088 if python3:
02089 _v105.frame_id = str[start:end].decode('utf-8')
02090 else:
02091 _v105.frame_id = str[start:end]
02092 start = end
02093 end += 4
02094 (length,) = _struct_I.unpack(str[start:end])
02095 start = end
02096 end += length
02097 if python3:
02098 _v104.id = str[start:end].decode('utf-8')
02099 else:
02100 _v104.id = str[start:end]
02101 start = end
02102 end += 4
02103 (_v104.padding,) = _struct_f.unpack(str[start:end])
02104 _v107 = _v104.operation
02105 start = end
02106 end += 1
02107 (_v107.operation,) = _struct_b.unpack(str[start:end])
02108 start = end
02109 end += 4
02110 (length,) = _struct_I.unpack(str[start:end])
02111 _v104.shapes = []
02112 for i in range(0, length):
02113 val3 = arm_navigation_msgs.msg.Shape()
02114 start = end
02115 end += 1
02116 (val3.type,) = _struct_b.unpack(str[start:end])
02117 start = end
02118 end += 4
02119 (length,) = _struct_I.unpack(str[start:end])
02120 pattern = '<%sd'%length
02121 start = end
02122 end += struct.calcsize(pattern)
02123 val3.dimensions = numpy.frombuffer(str[start:end], dtype=numpy.float64, count=length)
02124 start = end
02125 end += 4
02126 (length,) = _struct_I.unpack(str[start:end])
02127 pattern = '<%si'%length
02128 start = end
02129 end += struct.calcsize(pattern)
02130 val3.triangles = numpy.frombuffer(str[start:end], dtype=numpy.int32, count=length)
02131 start = end
02132 end += 4
02133 (length,) = _struct_I.unpack(str[start:end])
02134 val3.vertices = []
02135 for i in range(0, length):
02136 val4 = geometry_msgs.msg.Point()
02137 _x = val4
02138 start = end
02139 end += 24
02140 (_x.x, _x.y, _x.z,) = _struct_3d.unpack(str[start:end])
02141 val3.vertices.append(val4)
02142 _v104.shapes.append(val3)
02143 start = end
02144 end += 4
02145 (length,) = _struct_I.unpack(str[start:end])
02146 _v104.poses = []
02147 for i in range(0, length):
02148 val3 = geometry_msgs.msg.Pose()
02149 _v108 = val3.position
02150 _x = _v108
02151 start = end
02152 end += 24
02153 (_x.x, _x.y, _x.z,) = _struct_3d.unpack(str[start:end])
02154 _v109 = val3.orientation
02155 _x = _v109
02156 start = end
02157 end += 32
02158 (_x.x, _x.y, _x.z, _x.w,) = _struct_4d.unpack(str[start:end])
02159 _v104.poses.append(val3)
02160 start = end
02161 end += 4
02162 (length,) = _struct_I.unpack(str[start:end])
02163 val1.touch_links = []
02164 for i in range(0, length):
02165 start = end
02166 end += 4
02167 (length,) = _struct_I.unpack(str[start:end])
02168 start = end
02169 end += length
02170 if python3:
02171 val2 = str[start:end].decode('utf-8')
02172 else:
02173 val2 = str[start:end]
02174 val1.touch_links.append(val2)
02175 self.planning_scene_diff.attached_collision_objects.append(val1)
02176 _x = self
02177 start = end
02178 end += 12
02179 (_x.planning_scene_diff.collision_map.header.seq, _x.planning_scene_diff.collision_map.header.stamp.secs, _x.planning_scene_diff.collision_map.header.stamp.nsecs,) = _struct_3I.unpack(str[start:end])
02180 start = end
02181 end += 4
02182 (length,) = _struct_I.unpack(str[start:end])
02183 start = end
02184 end += length
02185 if python3:
02186 self.planning_scene_diff.collision_map.header.frame_id = str[start:end].decode('utf-8')
02187 else:
02188 self.planning_scene_diff.collision_map.header.frame_id = str[start:end]
02189 start = end
02190 end += 4
02191 (length,) = _struct_I.unpack(str[start:end])
02192 self.planning_scene_diff.collision_map.boxes = []
02193 for i in range(0, length):
02194 val1 = arm_navigation_msgs.msg.OrientedBoundingBox()
02195 _v110 = val1.center
02196 _x = _v110
02197 start = end
02198 end += 12
02199 (_x.x, _x.y, _x.z,) = _struct_3f.unpack(str[start:end])
02200 _v111 = val1.extents
02201 _x = _v111
02202 start = end
02203 end += 12
02204 (_x.x, _x.y, _x.z,) = _struct_3f.unpack(str[start:end])
02205 _v112 = val1.axis
02206 _x = _v112
02207 start = end
02208 end += 12
02209 (_x.x, _x.y, _x.z,) = _struct_3f.unpack(str[start:end])
02210 start = end
02211 end += 4
02212 (val1.angle,) = _struct_f.unpack(str[start:end])
02213 self.planning_scene_diff.collision_map.boxes.append(val1)
02214 start = end
02215 end += 4
02216 (length,) = _struct_I.unpack(str[start:end])
02217 self.operations.collision_operations = []
02218 for i in range(0, length):
02219 val1 = arm_navigation_msgs.msg.CollisionOperation()
02220 start = end
02221 end += 4
02222 (length,) = _struct_I.unpack(str[start:end])
02223 start = end
02224 end += length
02225 if python3:
02226 val1.object1 = str[start:end].decode('utf-8')
02227 else:
02228 val1.object1 = str[start:end]
02229 start = end
02230 end += 4
02231 (length,) = _struct_I.unpack(str[start:end])
02232 start = end
02233 end += length
02234 if python3:
02235 val1.object2 = str[start:end].decode('utf-8')
02236 else:
02237 val1.object2 = str[start:end]
02238 _x = val1
02239 start = end
02240 end += 12
02241 (_x.penetration_distance, _x.operation,) = _struct_di.unpack(str[start:end])
02242 self.operations.collision_operations.append(val1)
02243 return self
02244 except struct.error as e:
02245 raise genpy.DeserializationError(e)
02246
02247 _struct_I = genpy.struct_I
02248 _struct_b = struct.Struct("<b")
02249 _struct_d = struct.Struct("<d")
02250 _struct_f = struct.Struct("<f")
02251 _struct_di = struct.Struct("<di")
02252 _struct_3f = struct.Struct("<3f")
02253 _struct_3I = struct.Struct("<3I")
02254 _struct_4d = struct.Struct("<4d")
02255 _struct_2I = struct.Struct("<2I")
02256 _struct_3d = struct.Struct("<3d")
02257 """autogenerated by genpy from arm_navigation_msgs/SetPlanningSceneDiffResponse.msg. Do not edit."""
02258 import sys
02259 python3 = True if sys.hexversion > 0x03000000 else False
02260 import genpy
02261 import struct
02262
02263 import arm_navigation_msgs.msg
02264 import geometry_msgs.msg
02265 import std_msgs.msg
02266 import genpy
02267 import sensor_msgs.msg
02268
02269 class SetPlanningSceneDiffResponse(genpy.Message):
02270 _md5sum = "285525c9abe002fbafa99af84a14b4cb"
02271 _type = "arm_navigation_msgs/SetPlanningSceneDiffResponse"
02272 _has_header = False
02273 _full_text = """
02274
02275 PlanningScene planning_scene
02276
02277
02278
02279
02280
02281 ================================================================================
02282 MSG: arm_navigation_msgs/PlanningScene
02283 #full robot state
02284 arm_navigation_msgs/RobotState robot_state
02285
02286 #additional frames for duplicating tf
02287 geometry_msgs/TransformStamped[] fixed_frame_transforms
02288
02289 #full allowed collision matrix
02290 AllowedCollisionMatrix allowed_collision_matrix
02291
02292 #allowed contacts
02293 arm_navigation_msgs/AllowedContactSpecification[] allowed_contacts
02294
02295 #all link paddings
02296 arm_navigation_msgs/LinkPadding[] link_padding
02297
02298 #collision objects
02299 arm_navigation_msgs/CollisionObject[] collision_objects
02300 arm_navigation_msgs/AttachedCollisionObject[] attached_collision_objects
02301
02302 #the collision map
02303 arm_navigation_msgs/CollisionMap collision_map
02304
02305 ================================================================================
02306 MSG: arm_navigation_msgs/RobotState
02307 # This message contains information about the robot state, i.e. the positions of its joints and links
02308 sensor_msgs/JointState joint_state
02309 arm_navigation_msgs/MultiDOFJointState multi_dof_joint_state
02310
02311 ================================================================================
02312 MSG: sensor_msgs/JointState
02313 # This is a message that holds data to describe the state of a set of torque controlled joints.
02314 #
02315 # The state of each joint (revolute or prismatic) is defined by:
02316 # * the position of the joint (rad or m),
02317 # * the velocity of the joint (rad/s or m/s) and
02318 # * the effort that is applied in the joint (Nm or N).
02319 #
02320 # Each joint is uniquely identified by its name
02321 # The header specifies the time at which the joint states were recorded. All the joint states
02322 # in one message have to be recorded at the same time.
02323 #
02324 # This message consists of a multiple arrays, one for each part of the joint state.
02325 # The goal is to make each of the fields optional. When e.g. your joints have no
02326 # effort associated with them, you can leave the effort array empty.
02327 #
02328 # All arrays in this message should have the same size, or be empty.
02329 # This is the only way to uniquely associate the joint name with the correct
02330 # states.
02331
02332
02333 Header header
02334
02335 string[] name
02336 float64[] position
02337 float64[] velocity
02338 float64[] effort
02339
02340 ================================================================================
02341 MSG: std_msgs/Header
02342 # Standard metadata for higher-level stamped data types.
02343 # This is generally used to communicate timestamped data
02344 # in a particular coordinate frame.
02345 #
02346 # sequence ID: consecutively increasing ID
02347 uint32 seq
02348 #Two-integer timestamp that is expressed as:
02349 # * stamp.secs: seconds (stamp_secs) since epoch
02350 # * stamp.nsecs: nanoseconds since stamp_secs
02351 # time-handling sugar is provided by the client library
02352 time stamp
02353 #Frame this data is associated with
02354 # 0: no frame
02355 # 1: global frame
02356 string frame_id
02357
02358 ================================================================================
02359 MSG: arm_navigation_msgs/MultiDOFJointState
02360 #A representation of a multi-dof joint state
02361 time stamp
02362 string[] joint_names
02363 string[] frame_ids
02364 string[] child_frame_ids
02365 geometry_msgs/Pose[] poses
02366
02367 ================================================================================
02368 MSG: geometry_msgs/Pose
02369 # A representation of pose in free space, composed of postion and orientation.
02370 Point position
02371 Quaternion orientation
02372
02373 ================================================================================
02374 MSG: geometry_msgs/Point
02375 # This contains the position of a point in free space
02376 float64 x
02377 float64 y
02378 float64 z
02379
02380 ================================================================================
02381 MSG: geometry_msgs/Quaternion
02382 # This represents an orientation in free space in quaternion form.
02383
02384 float64 x
02385 float64 y
02386 float64 z
02387 float64 w
02388
02389 ================================================================================
02390 MSG: geometry_msgs/TransformStamped
02391 # This expresses a transform from coordinate frame header.frame_id
02392 # to the coordinate frame child_frame_id
02393 #
02394 # This message is mostly used by the
02395 # <a href="http://www.ros.org/wiki/tf">tf</a> package.
02396 # See it's documentation for more information.
02397
02398 Header header
02399 string child_frame_id # the frame id of the child frame
02400 Transform transform
02401
02402 ================================================================================
02403 MSG: geometry_msgs/Transform
02404 # This represents the transform between two coordinate frames in free space.
02405
02406 Vector3 translation
02407 Quaternion rotation
02408
02409 ================================================================================
02410 MSG: geometry_msgs/Vector3
02411 # This represents a vector in free space.
02412
02413 float64 x
02414 float64 y
02415 float64 z
02416 ================================================================================
02417 MSG: arm_navigation_msgs/AllowedCollisionMatrix
02418 # the list of link names in the matrix
02419 string[] link_names
02420
02421 # the individual entries in the allowed collision matrix
02422 # symmetric, with same order as link_names
02423 AllowedCollisionEntry[] entries
02424
02425 ================================================================================
02426 MSG: arm_navigation_msgs/AllowedCollisionEntry
02427 # whether or not collision checking is enabled
02428 bool[] enabled
02429
02430 ================================================================================
02431 MSG: arm_navigation_msgs/AllowedContactSpecification
02432 # The names of the regions
02433 string name
02434
02435 # The shape of the region in the environment
02436 arm_navigation_msgs/Shape shape
02437
02438 # The pose of the space defining the region
02439 geometry_msgs/PoseStamped pose_stamped
02440
02441 # The set of links that will be allowed to have penetration contact within this region
02442 string[] link_names
02443
02444 # The maximum penetration depth allowed for every link
02445 float64 penetration_depth
02446
02447 ================================================================================
02448 MSG: arm_navigation_msgs/Shape
02449 byte SPHERE=0
02450 byte BOX=1
02451 byte CYLINDER=2
02452 byte MESH=3
02453
02454 byte type
02455
02456
02457 #### define sphere, box, cylinder ####
02458 # the origin of each shape is considered at the shape's center
02459
02460 # for sphere
02461 # radius := dimensions[0]
02462
02463 # for cylinder
02464 # radius := dimensions[0]
02465 # length := dimensions[1]
02466 # the length is along the Z axis
02467
02468 # for box
02469 # size_x := dimensions[0]
02470 # size_y := dimensions[1]
02471 # size_z := dimensions[2]
02472 float64[] dimensions
02473
02474
02475 #### define mesh ####
02476
02477 # list of triangles; triangle k is defined by tre vertices located
02478 # at indices triangles[3k], triangles[3k+1], triangles[3k+2]
02479 int32[] triangles
02480 geometry_msgs/Point[] vertices
02481
02482 ================================================================================
02483 MSG: geometry_msgs/PoseStamped
02484 # A Pose with reference coordinate frame and timestamp
02485 Header header
02486 Pose pose
02487
02488 ================================================================================
02489 MSG: arm_navigation_msgs/LinkPadding
02490 #name for the link
02491 string link_name
02492
02493 # padding to apply to the link
02494 float64 padding
02495
02496 ================================================================================
02497 MSG: arm_navigation_msgs/CollisionObject
02498 # a header, used for interpreting the poses
02499 Header header
02500
02501 # the id of the object
02502 string id
02503
02504 # The padding used for filtering points near the object.
02505 # This does not affect collision checking for the object.
02506 # Set to negative to get zero padding.
02507 float32 padding
02508
02509 #This contains what is to be done with the object
02510 CollisionObjectOperation operation
02511
02512 #the shapes associated with the object
02513 arm_navigation_msgs/Shape[] shapes
02514
02515 #the poses associated with the shapes - will be transformed using the header
02516 geometry_msgs/Pose[] poses
02517
02518 ================================================================================
02519 MSG: arm_navigation_msgs/CollisionObjectOperation
02520 #Puts the object into the environment
02521 #or updates the object if already added
02522 byte ADD=0
02523
02524 #Removes the object from the environment entirely
02525 byte REMOVE=1
02526
02527 #Only valid within the context of a CollisionAttachedObject message
02528 #Will be ignored if sent with an CollisionObject message
02529 #Takes an attached object, detaches from the attached link
02530 #But adds back in as regular object
02531 byte DETACH_AND_ADD_AS_OBJECT=2
02532
02533 #Only valid within the context of a CollisionAttachedObject message
02534 #Will be ignored if sent with an CollisionObject message
02535 #Takes current object in the environment and removes it as
02536 #a regular object
02537 byte ATTACH_AND_REMOVE_AS_OBJECT=3
02538
02539 # Byte code for operation
02540 byte operation
02541
02542 ================================================================================
02543 MSG: arm_navigation_msgs/AttachedCollisionObject
02544 # The CollisionObject will be attached with a fixed joint to this link
02545 # If link name is set to REMOVE_ALL_ATTACHED_OBJECTS and object.operation
02546 # is set to REMOVE will remove all attached bodies attached to any object
02547 string link_name
02548
02549 #Reserved for indicating that all attached objects should be removed
02550 string REMOVE_ALL_ATTACHED_OBJECTS = "all"
02551
02552 #This contains the actual shapes and poses for the CollisionObject
02553 #to be attached to the link
02554 #If action is remove and no object.id is set, all objects
02555 #attached to the link indicated by link_name will be removed
02556 CollisionObject object
02557
02558 # The set of links that the attached objects are allowed to touch
02559 # by default - the link_name is included by default
02560 string[] touch_links
02561
02562 ================================================================================
02563 MSG: arm_navigation_msgs/CollisionMap
02564 #header for interpreting box positions
02565 Header header
02566
02567 #boxes for use in collision testing
02568 OrientedBoundingBox[] boxes
02569
02570 ================================================================================
02571 MSG: arm_navigation_msgs/OrientedBoundingBox
02572 #the center of the box
02573 geometry_msgs/Point32 center
02574
02575 #the extents of the box, assuming the center is at the point
02576 geometry_msgs/Point32 extents
02577
02578 #the axis of the box
02579 geometry_msgs/Point32 axis
02580
02581 #the angle of rotation around the axis
02582 float32 angle
02583
02584 ================================================================================
02585 MSG: geometry_msgs/Point32
02586 # This contains the position of a point in free space(with 32 bits of precision).
02587 # It is recommeded to use Point wherever possible instead of Point32.
02588 #
02589 # This recommendation is to promote interoperability.
02590 #
02591 # This message is designed to take up less space when sending
02592 # lots of points at once, as in the case of a PointCloud.
02593
02594 float32 x
02595 float32 y
02596 float32 z
02597 """
02598 __slots__ = ['planning_scene']
02599 _slot_types = ['arm_navigation_msgs/PlanningScene']
02600
02601 def __init__(self, *args, **kwds):
02602 """
02603 Constructor. Any message fields that are implicitly/explicitly
02604 set to None will be assigned a default value. The recommend
02605 use is keyword arguments as this is more robust to future message
02606 changes. You cannot mix in-order arguments and keyword arguments.
02607
02608 The available fields are:
02609 planning_scene
02610
02611 :param args: complete set of field values, in .msg order
02612 :param kwds: use keyword arguments corresponding to message field names
02613 to set specific fields.
02614 """
02615 if args or kwds:
02616 super(SetPlanningSceneDiffResponse, self).__init__(*args, **kwds)
02617
02618 if self.planning_scene is None:
02619 self.planning_scene = arm_navigation_msgs.msg.PlanningScene()
02620 else:
02621 self.planning_scene = arm_navigation_msgs.msg.PlanningScene()
02622
02623 def _get_types(self):
02624 """
02625 internal API method
02626 """
02627 return self._slot_types
02628
02629 def serialize(self, buff):
02630 """
02631 serialize message into buffer
02632 :param buff: buffer, ``StringIO``
02633 """
02634 try:
02635 _x = self
02636 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))
02637 _x = self.planning_scene.robot_state.joint_state.header.frame_id
02638 length = len(_x)
02639 if python3 or type(_x) == unicode:
02640 _x = _x.encode('utf-8')
02641 length = len(_x)
02642 buff.write(struct.pack('<I%ss'%length, length, _x))
02643 length = len(self.planning_scene.robot_state.joint_state.name)
02644 buff.write(_struct_I.pack(length))
02645 for val1 in self.planning_scene.robot_state.joint_state.name:
02646 length = len(val1)
02647 if python3 or type(val1) == unicode:
02648 val1 = val1.encode('utf-8')
02649 length = len(val1)
02650 buff.write(struct.pack('<I%ss'%length, length, val1))
02651 length = len(self.planning_scene.robot_state.joint_state.position)
02652 buff.write(_struct_I.pack(length))
02653 pattern = '<%sd'%length
02654 buff.write(struct.pack(pattern, *self.planning_scene.robot_state.joint_state.position))
02655 length = len(self.planning_scene.robot_state.joint_state.velocity)
02656 buff.write(_struct_I.pack(length))
02657 pattern = '<%sd'%length
02658 buff.write(struct.pack(pattern, *self.planning_scene.robot_state.joint_state.velocity))
02659 length = len(self.planning_scene.robot_state.joint_state.effort)
02660 buff.write(_struct_I.pack(length))
02661 pattern = '<%sd'%length
02662 buff.write(struct.pack(pattern, *self.planning_scene.robot_state.joint_state.effort))
02663 _x = self
02664 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))
02665 length = len(self.planning_scene.robot_state.multi_dof_joint_state.joint_names)
02666 buff.write(_struct_I.pack(length))
02667 for val1 in self.planning_scene.robot_state.multi_dof_joint_state.joint_names:
02668 length = len(val1)
02669 if python3 or type(val1) == unicode:
02670 val1 = val1.encode('utf-8')
02671 length = len(val1)
02672 buff.write(struct.pack('<I%ss'%length, length, val1))
02673 length = len(self.planning_scene.robot_state.multi_dof_joint_state.frame_ids)
02674 buff.write(_struct_I.pack(length))
02675 for val1 in self.planning_scene.robot_state.multi_dof_joint_state.frame_ids:
02676 length = len(val1)
02677 if python3 or type(val1) == unicode:
02678 val1 = val1.encode('utf-8')
02679 length = len(val1)
02680 buff.write(struct.pack('<I%ss'%length, length, val1))
02681 length = len(self.planning_scene.robot_state.multi_dof_joint_state.child_frame_ids)
02682 buff.write(_struct_I.pack(length))
02683 for val1 in self.planning_scene.robot_state.multi_dof_joint_state.child_frame_ids:
02684 length = len(val1)
02685 if python3 or type(val1) == unicode:
02686 val1 = val1.encode('utf-8')
02687 length = len(val1)
02688 buff.write(struct.pack('<I%ss'%length, length, val1))
02689 length = len(self.planning_scene.robot_state.multi_dof_joint_state.poses)
02690 buff.write(_struct_I.pack(length))
02691 for val1 in self.planning_scene.robot_state.multi_dof_joint_state.poses:
02692 _v113 = val1.position
02693 _x = _v113
02694 buff.write(_struct_3d.pack(_x.x, _x.y, _x.z))
02695 _v114 = val1.orientation
02696 _x = _v114
02697 buff.write(_struct_4d.pack(_x.x, _x.y, _x.z, _x.w))
02698 length = len(self.planning_scene.fixed_frame_transforms)
02699 buff.write(_struct_I.pack(length))
02700 for val1 in self.planning_scene.fixed_frame_transforms:
02701 _v115 = val1.header
02702 buff.write(_struct_I.pack(_v115.seq))
02703 _v116 = _v115.stamp
02704 _x = _v116
02705 buff.write(_struct_2I.pack(_x.secs, _x.nsecs))
02706 _x = _v115.frame_id
02707 length = len(_x)
02708 if python3 or type(_x) == unicode:
02709 _x = _x.encode('utf-8')
02710 length = len(_x)
02711 buff.write(struct.pack('<I%ss'%length, length, _x))
02712 _x = val1.child_frame_id
02713 length = len(_x)
02714 if python3 or type(_x) == unicode:
02715 _x = _x.encode('utf-8')
02716 length = len(_x)
02717 buff.write(struct.pack('<I%ss'%length, length, _x))
02718 _v117 = val1.transform
02719 _v118 = _v117.translation
02720 _x = _v118
02721 buff.write(_struct_3d.pack(_x.x, _x.y, _x.z))
02722 _v119 = _v117.rotation
02723 _x = _v119
02724 buff.write(_struct_4d.pack(_x.x, _x.y, _x.z, _x.w))
02725 length = len(self.planning_scene.allowed_collision_matrix.link_names)
02726 buff.write(_struct_I.pack(length))
02727 for val1 in self.planning_scene.allowed_collision_matrix.link_names:
02728 length = len(val1)
02729 if python3 or type(val1) == unicode:
02730 val1 = val1.encode('utf-8')
02731 length = len(val1)
02732 buff.write(struct.pack('<I%ss'%length, length, val1))
02733 length = len(self.planning_scene.allowed_collision_matrix.entries)
02734 buff.write(_struct_I.pack(length))
02735 for val1 in self.planning_scene.allowed_collision_matrix.entries:
02736 length = len(val1.enabled)
02737 buff.write(_struct_I.pack(length))
02738 pattern = '<%sB'%length
02739 buff.write(struct.pack(pattern, *val1.enabled))
02740 length = len(self.planning_scene.allowed_contacts)
02741 buff.write(_struct_I.pack(length))
02742 for val1 in self.planning_scene.allowed_contacts:
02743 _x = val1.name
02744 length = len(_x)
02745 if python3 or type(_x) == unicode:
02746 _x = _x.encode('utf-8')
02747 length = len(_x)
02748 buff.write(struct.pack('<I%ss'%length, length, _x))
02749 _v120 = val1.shape
02750 buff.write(_struct_b.pack(_v120.type))
02751 length = len(_v120.dimensions)
02752 buff.write(_struct_I.pack(length))
02753 pattern = '<%sd'%length
02754 buff.write(struct.pack(pattern, *_v120.dimensions))
02755 length = len(_v120.triangles)
02756 buff.write(_struct_I.pack(length))
02757 pattern = '<%si'%length
02758 buff.write(struct.pack(pattern, *_v120.triangles))
02759 length = len(_v120.vertices)
02760 buff.write(_struct_I.pack(length))
02761 for val3 in _v120.vertices:
02762 _x = val3
02763 buff.write(_struct_3d.pack(_x.x, _x.y, _x.z))
02764 _v121 = val1.pose_stamped
02765 _v122 = _v121.header
02766 buff.write(_struct_I.pack(_v122.seq))
02767 _v123 = _v122.stamp
02768 _x = _v123
02769 buff.write(_struct_2I.pack(_x.secs, _x.nsecs))
02770 _x = _v122.frame_id
02771 length = len(_x)
02772 if python3 or type(_x) == unicode:
02773 _x = _x.encode('utf-8')
02774 length = len(_x)
02775 buff.write(struct.pack('<I%ss'%length, length, _x))
02776 _v124 = _v121.pose
02777 _v125 = _v124.position
02778 _x = _v125
02779 buff.write(_struct_3d.pack(_x.x, _x.y, _x.z))
02780 _v126 = _v124.orientation
02781 _x = _v126
02782 buff.write(_struct_4d.pack(_x.x, _x.y, _x.z, _x.w))
02783 length = len(val1.link_names)
02784 buff.write(_struct_I.pack(length))
02785 for val2 in val1.link_names:
02786 length = len(val2)
02787 if python3 or type(val2) == unicode:
02788 val2 = val2.encode('utf-8')
02789 length = len(val2)
02790 buff.write(struct.pack('<I%ss'%length, length, val2))
02791 buff.write(_struct_d.pack(val1.penetration_depth))
02792 length = len(self.planning_scene.link_padding)
02793 buff.write(_struct_I.pack(length))
02794 for val1 in self.planning_scene.link_padding:
02795 _x = val1.link_name
02796 length = len(_x)
02797 if python3 or type(_x) == unicode:
02798 _x = _x.encode('utf-8')
02799 length = len(_x)
02800 buff.write(struct.pack('<I%ss'%length, length, _x))
02801 buff.write(_struct_d.pack(val1.padding))
02802 length = len(self.planning_scene.collision_objects)
02803 buff.write(_struct_I.pack(length))
02804 for val1 in self.planning_scene.collision_objects:
02805 _v127 = val1.header
02806 buff.write(_struct_I.pack(_v127.seq))
02807 _v128 = _v127.stamp
02808 _x = _v128
02809 buff.write(_struct_2I.pack(_x.secs, _x.nsecs))
02810 _x = _v127.frame_id
02811 length = len(_x)
02812 if python3 or type(_x) == unicode:
02813 _x = _x.encode('utf-8')
02814 length = len(_x)
02815 buff.write(struct.pack('<I%ss'%length, length, _x))
02816 _x = val1.id
02817 length = len(_x)
02818 if python3 or type(_x) == unicode:
02819 _x = _x.encode('utf-8')
02820 length = len(_x)
02821 buff.write(struct.pack('<I%ss'%length, length, _x))
02822 buff.write(_struct_f.pack(val1.padding))
02823 _v129 = val1.operation
02824 buff.write(_struct_b.pack(_v129.operation))
02825 length = len(val1.shapes)
02826 buff.write(_struct_I.pack(length))
02827 for val2 in val1.shapes:
02828 buff.write(_struct_b.pack(val2.type))
02829 length = len(val2.dimensions)
02830 buff.write(_struct_I.pack(length))
02831 pattern = '<%sd'%length
02832 buff.write(struct.pack(pattern, *val2.dimensions))
02833 length = len(val2.triangles)
02834 buff.write(_struct_I.pack(length))
02835 pattern = '<%si'%length
02836 buff.write(struct.pack(pattern, *val2.triangles))
02837 length = len(val2.vertices)
02838 buff.write(_struct_I.pack(length))
02839 for val3 in val2.vertices:
02840 _x = val3
02841 buff.write(_struct_3d.pack(_x.x, _x.y, _x.z))
02842 length = len(val1.poses)
02843 buff.write(_struct_I.pack(length))
02844 for val2 in val1.poses:
02845 _v130 = val2.position
02846 _x = _v130
02847 buff.write(_struct_3d.pack(_x.x, _x.y, _x.z))
02848 _v131 = val2.orientation
02849 _x = _v131
02850 buff.write(_struct_4d.pack(_x.x, _x.y, _x.z, _x.w))
02851 length = len(self.planning_scene.attached_collision_objects)
02852 buff.write(_struct_I.pack(length))
02853 for val1 in self.planning_scene.attached_collision_objects:
02854 _x = val1.link_name
02855 length = len(_x)
02856 if python3 or type(_x) == unicode:
02857 _x = _x.encode('utf-8')
02858 length = len(_x)
02859 buff.write(struct.pack('<I%ss'%length, length, _x))
02860 _v132 = val1.object
02861 _v133 = _v132.header
02862 buff.write(_struct_I.pack(_v133.seq))
02863 _v134 = _v133.stamp
02864 _x = _v134
02865 buff.write(_struct_2I.pack(_x.secs, _x.nsecs))
02866 _x = _v133.frame_id
02867 length = len(_x)
02868 if python3 or type(_x) == unicode:
02869 _x = _x.encode('utf-8')
02870 length = len(_x)
02871 buff.write(struct.pack('<I%ss'%length, length, _x))
02872 _x = _v132.id
02873 length = len(_x)
02874 if python3 or type(_x) == unicode:
02875 _x = _x.encode('utf-8')
02876 length = len(_x)
02877 buff.write(struct.pack('<I%ss'%length, length, _x))
02878 buff.write(_struct_f.pack(_v132.padding))
02879 _v135 = _v132.operation
02880 buff.write(_struct_b.pack(_v135.operation))
02881 length = len(_v132.shapes)
02882 buff.write(_struct_I.pack(length))
02883 for val3 in _v132.shapes:
02884 buff.write(_struct_b.pack(val3.type))
02885 length = len(val3.dimensions)
02886 buff.write(_struct_I.pack(length))
02887 pattern = '<%sd'%length
02888 buff.write(struct.pack(pattern, *val3.dimensions))
02889 length = len(val3.triangles)
02890 buff.write(_struct_I.pack(length))
02891 pattern = '<%si'%length
02892 buff.write(struct.pack(pattern, *val3.triangles))
02893 length = len(val3.vertices)
02894 buff.write(_struct_I.pack(length))
02895 for val4 in val3.vertices:
02896 _x = val4
02897 buff.write(_struct_3d.pack(_x.x, _x.y, _x.z))
02898 length = len(_v132.poses)
02899 buff.write(_struct_I.pack(length))
02900 for val3 in _v132.poses:
02901 _v136 = val3.position
02902 _x = _v136
02903 buff.write(_struct_3d.pack(_x.x, _x.y, _x.z))
02904 _v137 = val3.orientation
02905 _x = _v137
02906 buff.write(_struct_4d.pack(_x.x, _x.y, _x.z, _x.w))
02907 length = len(val1.touch_links)
02908 buff.write(_struct_I.pack(length))
02909 for val2 in val1.touch_links:
02910 length = len(val2)
02911 if python3 or type(val2) == unicode:
02912 val2 = val2.encode('utf-8')
02913 length = len(val2)
02914 buff.write(struct.pack('<I%ss'%length, length, val2))
02915 _x = self
02916 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))
02917 _x = self.planning_scene.collision_map.header.frame_id
02918 length = len(_x)
02919 if python3 or type(_x) == unicode:
02920 _x = _x.encode('utf-8')
02921 length = len(_x)
02922 buff.write(struct.pack('<I%ss'%length, length, _x))
02923 length = len(self.planning_scene.collision_map.boxes)
02924 buff.write(_struct_I.pack(length))
02925 for val1 in self.planning_scene.collision_map.boxes:
02926 _v138 = val1.center
02927 _x = _v138
02928 buff.write(_struct_3f.pack(_x.x, _x.y, _x.z))
02929 _v139 = val1.extents
02930 _x = _v139
02931 buff.write(_struct_3f.pack(_x.x, _x.y, _x.z))
02932 _v140 = val1.axis
02933 _x = _v140
02934 buff.write(_struct_3f.pack(_x.x, _x.y, _x.z))
02935 buff.write(_struct_f.pack(val1.angle))
02936 except struct.error as se: self._check_types(se)
02937 except TypeError as te: self._check_types(te)
02938
02939 def deserialize(self, str):
02940 """
02941 unpack serialized message in str into this message instance
02942 :param str: byte array of serialized message, ``str``
02943 """
02944 try:
02945 if self.planning_scene is None:
02946 self.planning_scene = arm_navigation_msgs.msg.PlanningScene()
02947 end = 0
02948 _x = self
02949 start = end
02950 end += 12
02951 (_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])
02952 start = end
02953 end += 4
02954 (length,) = _struct_I.unpack(str[start:end])
02955 start = end
02956 end += length
02957 if python3:
02958 self.planning_scene.robot_state.joint_state.header.frame_id = str[start:end].decode('utf-8')
02959 else:
02960 self.planning_scene.robot_state.joint_state.header.frame_id = str[start:end]
02961 start = end
02962 end += 4
02963 (length,) = _struct_I.unpack(str[start:end])
02964 self.planning_scene.robot_state.joint_state.name = []
02965 for i in range(0, length):
02966 start = end
02967 end += 4
02968 (length,) = _struct_I.unpack(str[start:end])
02969 start = end
02970 end += length
02971 if python3:
02972 val1 = str[start:end].decode('utf-8')
02973 else:
02974 val1 = str[start:end]
02975 self.planning_scene.robot_state.joint_state.name.append(val1)
02976 start = end
02977 end += 4
02978 (length,) = _struct_I.unpack(str[start:end])
02979 pattern = '<%sd'%length
02980 start = end
02981 end += struct.calcsize(pattern)
02982 self.planning_scene.robot_state.joint_state.position = struct.unpack(pattern, str[start:end])
02983 start = end
02984 end += 4
02985 (length,) = _struct_I.unpack(str[start:end])
02986 pattern = '<%sd'%length
02987 start = end
02988 end += struct.calcsize(pattern)
02989 self.planning_scene.robot_state.joint_state.velocity = struct.unpack(pattern, str[start:end])
02990 start = end
02991 end += 4
02992 (length,) = _struct_I.unpack(str[start:end])
02993 pattern = '<%sd'%length
02994 start = end
02995 end += struct.calcsize(pattern)
02996 self.planning_scene.robot_state.joint_state.effort = struct.unpack(pattern, str[start:end])
02997 _x = self
02998 start = end
02999 end += 8
03000 (_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])
03001 start = end
03002 end += 4
03003 (length,) = _struct_I.unpack(str[start:end])
03004 self.planning_scene.robot_state.multi_dof_joint_state.joint_names = []
03005 for i in range(0, length):
03006 start = end
03007 end += 4
03008 (length,) = _struct_I.unpack(str[start:end])
03009 start = end
03010 end += length
03011 if python3:
03012 val1 = str[start:end].decode('utf-8')
03013 else:
03014 val1 = str[start:end]
03015 self.planning_scene.robot_state.multi_dof_joint_state.joint_names.append(val1)
03016 start = end
03017 end += 4
03018 (length,) = _struct_I.unpack(str[start:end])
03019 self.planning_scene.robot_state.multi_dof_joint_state.frame_ids = []
03020 for i in range(0, length):
03021 start = end
03022 end += 4
03023 (length,) = _struct_I.unpack(str[start:end])
03024 start = end
03025 end += length
03026 if python3:
03027 val1 = str[start:end].decode('utf-8')
03028 else:
03029 val1 = str[start:end]
03030 self.planning_scene.robot_state.multi_dof_joint_state.frame_ids.append(val1)
03031 start = end
03032 end += 4
03033 (length,) = _struct_I.unpack(str[start:end])
03034 self.planning_scene.robot_state.multi_dof_joint_state.child_frame_ids = []
03035 for i in range(0, length):
03036 start = end
03037 end += 4
03038 (length,) = _struct_I.unpack(str[start:end])
03039 start = end
03040 end += length
03041 if python3:
03042 val1 = str[start:end].decode('utf-8')
03043 else:
03044 val1 = str[start:end]
03045 self.planning_scene.robot_state.multi_dof_joint_state.child_frame_ids.append(val1)
03046 start = end
03047 end += 4
03048 (length,) = _struct_I.unpack(str[start:end])
03049 self.planning_scene.robot_state.multi_dof_joint_state.poses = []
03050 for i in range(0, length):
03051 val1 = geometry_msgs.msg.Pose()
03052 _v141 = val1.position
03053 _x = _v141
03054 start = end
03055 end += 24
03056 (_x.x, _x.y, _x.z,) = _struct_3d.unpack(str[start:end])
03057 _v142 = val1.orientation
03058 _x = _v142
03059 start = end
03060 end += 32
03061 (_x.x, _x.y, _x.z, _x.w,) = _struct_4d.unpack(str[start:end])
03062 self.planning_scene.robot_state.multi_dof_joint_state.poses.append(val1)
03063 start = end
03064 end += 4
03065 (length,) = _struct_I.unpack(str[start:end])
03066 self.planning_scene.fixed_frame_transforms = []
03067 for i in range(0, length):
03068 val1 = geometry_msgs.msg.TransformStamped()
03069 _v143 = val1.header
03070 start = end
03071 end += 4
03072 (_v143.seq,) = _struct_I.unpack(str[start:end])
03073 _v144 = _v143.stamp
03074 _x = _v144
03075 start = end
03076 end += 8
03077 (_x.secs, _x.nsecs,) = _struct_2I.unpack(str[start:end])
03078 start = end
03079 end += 4
03080 (length,) = _struct_I.unpack(str[start:end])
03081 start = end
03082 end += length
03083 if python3:
03084 _v143.frame_id = str[start:end].decode('utf-8')
03085 else:
03086 _v143.frame_id = str[start:end]
03087 start = end
03088 end += 4
03089 (length,) = _struct_I.unpack(str[start:end])
03090 start = end
03091 end += length
03092 if python3:
03093 val1.child_frame_id = str[start:end].decode('utf-8')
03094 else:
03095 val1.child_frame_id = str[start:end]
03096 _v145 = val1.transform
03097 _v146 = _v145.translation
03098 _x = _v146
03099 start = end
03100 end += 24
03101 (_x.x, _x.y, _x.z,) = _struct_3d.unpack(str[start:end])
03102 _v147 = _v145.rotation
03103 _x = _v147
03104 start = end
03105 end += 32
03106 (_x.x, _x.y, _x.z, _x.w,) = _struct_4d.unpack(str[start:end])
03107 self.planning_scene.fixed_frame_transforms.append(val1)
03108 start = end
03109 end += 4
03110 (length,) = _struct_I.unpack(str[start:end])
03111 self.planning_scene.allowed_collision_matrix.link_names = []
03112 for i in range(0, length):
03113 start = end
03114 end += 4
03115 (length,) = _struct_I.unpack(str[start:end])
03116 start = end
03117 end += length
03118 if python3:
03119 val1 = str[start:end].decode('utf-8')
03120 else:
03121 val1 = str[start:end]
03122 self.planning_scene.allowed_collision_matrix.link_names.append(val1)
03123 start = end
03124 end += 4
03125 (length,) = _struct_I.unpack(str[start:end])
03126 self.planning_scene.allowed_collision_matrix.entries = []
03127 for i in range(0, length):
03128 val1 = arm_navigation_msgs.msg.AllowedCollisionEntry()
03129 start = end
03130 end += 4
03131 (length,) = _struct_I.unpack(str[start:end])
03132 pattern = '<%sB'%length
03133 start = end
03134 end += struct.calcsize(pattern)
03135 val1.enabled = struct.unpack(pattern, str[start:end])
03136 val1.enabled = map(bool, val1.enabled)
03137 self.planning_scene.allowed_collision_matrix.entries.append(val1)
03138 start = end
03139 end += 4
03140 (length,) = _struct_I.unpack(str[start:end])
03141 self.planning_scene.allowed_contacts = []
03142 for i in range(0, length):
03143 val1 = arm_navigation_msgs.msg.AllowedContactSpecification()
03144 start = end
03145 end += 4
03146 (length,) = _struct_I.unpack(str[start:end])
03147 start = end
03148 end += length
03149 if python3:
03150 val1.name = str[start:end].decode('utf-8')
03151 else:
03152 val1.name = str[start:end]
03153 _v148 = val1.shape
03154 start = end
03155 end += 1
03156 (_v148.type,) = _struct_b.unpack(str[start:end])
03157 start = end
03158 end += 4
03159 (length,) = _struct_I.unpack(str[start:end])
03160 pattern = '<%sd'%length
03161 start = end
03162 end += struct.calcsize(pattern)
03163 _v148.dimensions = struct.unpack(pattern, str[start:end])
03164 start = end
03165 end += 4
03166 (length,) = _struct_I.unpack(str[start:end])
03167 pattern = '<%si'%length
03168 start = end
03169 end += struct.calcsize(pattern)
03170 _v148.triangles = struct.unpack(pattern, str[start:end])
03171 start = end
03172 end += 4
03173 (length,) = _struct_I.unpack(str[start:end])
03174 _v148.vertices = []
03175 for i in range(0, length):
03176 val3 = geometry_msgs.msg.Point()
03177 _x = val3
03178 start = end
03179 end += 24
03180 (_x.x, _x.y, _x.z,) = _struct_3d.unpack(str[start:end])
03181 _v148.vertices.append(val3)
03182 _v149 = val1.pose_stamped
03183 _v150 = _v149.header
03184 start = end
03185 end += 4
03186 (_v150.seq,) = _struct_I.unpack(str[start:end])
03187 _v151 = _v150.stamp
03188 _x = _v151
03189 start = end
03190 end += 8
03191 (_x.secs, _x.nsecs,) = _struct_2I.unpack(str[start:end])
03192 start = end
03193 end += 4
03194 (length,) = _struct_I.unpack(str[start:end])
03195 start = end
03196 end += length
03197 if python3:
03198 _v150.frame_id = str[start:end].decode('utf-8')
03199 else:
03200 _v150.frame_id = str[start:end]
03201 _v152 = _v149.pose
03202 _v153 = _v152.position
03203 _x = _v153
03204 start = end
03205 end += 24
03206 (_x.x, _x.y, _x.z,) = _struct_3d.unpack(str[start:end])
03207 _v154 = _v152.orientation
03208 _x = _v154
03209 start = end
03210 end += 32
03211 (_x.x, _x.y, _x.z, _x.w,) = _struct_4d.unpack(str[start:end])
03212 start = end
03213 end += 4
03214 (length,) = _struct_I.unpack(str[start:end])
03215 val1.link_names = []
03216 for i in range(0, length):
03217 start = end
03218 end += 4
03219 (length,) = _struct_I.unpack(str[start:end])
03220 start = end
03221 end += length
03222 if python3:
03223 val2 = str[start:end].decode('utf-8')
03224 else:
03225 val2 = str[start:end]
03226 val1.link_names.append(val2)
03227 start = end
03228 end += 8
03229 (val1.penetration_depth,) = _struct_d.unpack(str[start:end])
03230 self.planning_scene.allowed_contacts.append(val1)
03231 start = end
03232 end += 4
03233 (length,) = _struct_I.unpack(str[start:end])
03234 self.planning_scene.link_padding = []
03235 for i in range(0, length):
03236 val1 = arm_navigation_msgs.msg.LinkPadding()
03237 start = end
03238 end += 4
03239 (length,) = _struct_I.unpack(str[start:end])
03240 start = end
03241 end += length
03242 if python3:
03243 val1.link_name = str[start:end].decode('utf-8')
03244 else:
03245 val1.link_name = str[start:end]
03246 start = end
03247 end += 8
03248 (val1.padding,) = _struct_d.unpack(str[start:end])
03249 self.planning_scene.link_padding.append(val1)
03250 start = end
03251 end += 4
03252 (length,) = _struct_I.unpack(str[start:end])
03253 self.planning_scene.collision_objects = []
03254 for i in range(0, length):
03255 val1 = arm_navigation_msgs.msg.CollisionObject()
03256 _v155 = val1.header
03257 start = end
03258 end += 4
03259 (_v155.seq,) = _struct_I.unpack(str[start:end])
03260 _v156 = _v155.stamp
03261 _x = _v156
03262 start = end
03263 end += 8
03264 (_x.secs, _x.nsecs,) = _struct_2I.unpack(str[start:end])
03265 start = end
03266 end += 4
03267 (length,) = _struct_I.unpack(str[start:end])
03268 start = end
03269 end += length
03270 if python3:
03271 _v155.frame_id = str[start:end].decode('utf-8')
03272 else:
03273 _v155.frame_id = str[start:end]
03274 start = end
03275 end += 4
03276 (length,) = _struct_I.unpack(str[start:end])
03277 start = end
03278 end += length
03279 if python3:
03280 val1.id = str[start:end].decode('utf-8')
03281 else:
03282 val1.id = str[start:end]
03283 start = end
03284 end += 4
03285 (val1.padding,) = _struct_f.unpack(str[start:end])
03286 _v157 = val1.operation
03287 start = end
03288 end += 1
03289 (_v157.operation,) = _struct_b.unpack(str[start:end])
03290 start = end
03291 end += 4
03292 (length,) = _struct_I.unpack(str[start:end])
03293 val1.shapes = []
03294 for i in range(0, length):
03295 val2 = arm_navigation_msgs.msg.Shape()
03296 start = end
03297 end += 1
03298 (val2.type,) = _struct_b.unpack(str[start:end])
03299 start = end
03300 end += 4
03301 (length,) = _struct_I.unpack(str[start:end])
03302 pattern = '<%sd'%length
03303 start = end
03304 end += struct.calcsize(pattern)
03305 val2.dimensions = struct.unpack(pattern, str[start:end])
03306 start = end
03307 end += 4
03308 (length,) = _struct_I.unpack(str[start:end])
03309 pattern = '<%si'%length
03310 start = end
03311 end += struct.calcsize(pattern)
03312 val2.triangles = struct.unpack(pattern, str[start:end])
03313 start = end
03314 end += 4
03315 (length,) = _struct_I.unpack(str[start:end])
03316 val2.vertices = []
03317 for i in range(0, length):
03318 val3 = geometry_msgs.msg.Point()
03319 _x = val3
03320 start = end
03321 end += 24
03322 (_x.x, _x.y, _x.z,) = _struct_3d.unpack(str[start:end])
03323 val2.vertices.append(val3)
03324 val1.shapes.append(val2)
03325 start = end
03326 end += 4
03327 (length,) = _struct_I.unpack(str[start:end])
03328 val1.poses = []
03329 for i in range(0, length):
03330 val2 = geometry_msgs.msg.Pose()
03331 _v158 = val2.position
03332 _x = _v158
03333 start = end
03334 end += 24
03335 (_x.x, _x.y, _x.z,) = _struct_3d.unpack(str[start:end])
03336 _v159 = val2.orientation
03337 _x = _v159
03338 start = end
03339 end += 32
03340 (_x.x, _x.y, _x.z, _x.w,) = _struct_4d.unpack(str[start:end])
03341 val1.poses.append(val2)
03342 self.planning_scene.collision_objects.append(val1)
03343 start = end
03344 end += 4
03345 (length,) = _struct_I.unpack(str[start:end])
03346 self.planning_scene.attached_collision_objects = []
03347 for i in range(0, length):
03348 val1 = arm_navigation_msgs.msg.AttachedCollisionObject()
03349 start = end
03350 end += 4
03351 (length,) = _struct_I.unpack(str[start:end])
03352 start = end
03353 end += length
03354 if python3:
03355 val1.link_name = str[start:end].decode('utf-8')
03356 else:
03357 val1.link_name = str[start:end]
03358 _v160 = val1.object
03359 _v161 = _v160.header
03360 start = end
03361 end += 4
03362 (_v161.seq,) = _struct_I.unpack(str[start:end])
03363 _v162 = _v161.stamp
03364 _x = _v162
03365 start = end
03366 end += 8
03367 (_x.secs, _x.nsecs,) = _struct_2I.unpack(str[start:end])
03368 start = end
03369 end += 4
03370 (length,) = _struct_I.unpack(str[start:end])
03371 start = end
03372 end += length
03373 if python3:
03374 _v161.frame_id = str[start:end].decode('utf-8')
03375 else:
03376 _v161.frame_id = str[start:end]
03377 start = end
03378 end += 4
03379 (length,) = _struct_I.unpack(str[start:end])
03380 start = end
03381 end += length
03382 if python3:
03383 _v160.id = str[start:end].decode('utf-8')
03384 else:
03385 _v160.id = str[start:end]
03386 start = end
03387 end += 4
03388 (_v160.padding,) = _struct_f.unpack(str[start:end])
03389 _v163 = _v160.operation
03390 start = end
03391 end += 1
03392 (_v163.operation,) = _struct_b.unpack(str[start:end])
03393 start = end
03394 end += 4
03395 (length,) = _struct_I.unpack(str[start:end])
03396 _v160.shapes = []
03397 for i in range(0, length):
03398 val3 = arm_navigation_msgs.msg.Shape()
03399 start = end
03400 end += 1
03401 (val3.type,) = _struct_b.unpack(str[start:end])
03402 start = end
03403 end += 4
03404 (length,) = _struct_I.unpack(str[start:end])
03405 pattern = '<%sd'%length
03406 start = end
03407 end += struct.calcsize(pattern)
03408 val3.dimensions = struct.unpack(pattern, str[start:end])
03409 start = end
03410 end += 4
03411 (length,) = _struct_I.unpack(str[start:end])
03412 pattern = '<%si'%length
03413 start = end
03414 end += struct.calcsize(pattern)
03415 val3.triangles = struct.unpack(pattern, str[start:end])
03416 start = end
03417 end += 4
03418 (length,) = _struct_I.unpack(str[start:end])
03419 val3.vertices = []
03420 for i in range(0, length):
03421 val4 = geometry_msgs.msg.Point()
03422 _x = val4
03423 start = end
03424 end += 24
03425 (_x.x, _x.y, _x.z,) = _struct_3d.unpack(str[start:end])
03426 val3.vertices.append(val4)
03427 _v160.shapes.append(val3)
03428 start = end
03429 end += 4
03430 (length,) = _struct_I.unpack(str[start:end])
03431 _v160.poses = []
03432 for i in range(0, length):
03433 val3 = geometry_msgs.msg.Pose()
03434 _v164 = val3.position
03435 _x = _v164
03436 start = end
03437 end += 24
03438 (_x.x, _x.y, _x.z,) = _struct_3d.unpack(str[start:end])
03439 _v165 = val3.orientation
03440 _x = _v165
03441 start = end
03442 end += 32
03443 (_x.x, _x.y, _x.z, _x.w,) = _struct_4d.unpack(str[start:end])
03444 _v160.poses.append(val3)
03445 start = end
03446 end += 4
03447 (length,) = _struct_I.unpack(str[start:end])
03448 val1.touch_links = []
03449 for i in range(0, length):
03450 start = end
03451 end += 4
03452 (length,) = _struct_I.unpack(str[start:end])
03453 start = end
03454 end += length
03455 if python3:
03456 val2 = str[start:end].decode('utf-8')
03457 else:
03458 val2 = str[start:end]
03459 val1.touch_links.append(val2)
03460 self.planning_scene.attached_collision_objects.append(val1)
03461 _x = self
03462 start = end
03463 end += 12
03464 (_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])
03465 start = end
03466 end += 4
03467 (length,) = _struct_I.unpack(str[start:end])
03468 start = end
03469 end += length
03470 if python3:
03471 self.planning_scene.collision_map.header.frame_id = str[start:end].decode('utf-8')
03472 else:
03473 self.planning_scene.collision_map.header.frame_id = str[start:end]
03474 start = end
03475 end += 4
03476 (length,) = _struct_I.unpack(str[start:end])
03477 self.planning_scene.collision_map.boxes = []
03478 for i in range(0, length):
03479 val1 = arm_navigation_msgs.msg.OrientedBoundingBox()
03480 _v166 = val1.center
03481 _x = _v166
03482 start = end
03483 end += 12
03484 (_x.x, _x.y, _x.z,) = _struct_3f.unpack(str[start:end])
03485 _v167 = val1.extents
03486 _x = _v167
03487 start = end
03488 end += 12
03489 (_x.x, _x.y, _x.z,) = _struct_3f.unpack(str[start:end])
03490 _v168 = val1.axis
03491 _x = _v168
03492 start = end
03493 end += 12
03494 (_x.x, _x.y, _x.z,) = _struct_3f.unpack(str[start:end])
03495 start = end
03496 end += 4
03497 (val1.angle,) = _struct_f.unpack(str[start:end])
03498 self.planning_scene.collision_map.boxes.append(val1)
03499 return self
03500 except struct.error as e:
03501 raise genpy.DeserializationError(e)
03502
03503
03504 def serialize_numpy(self, buff, numpy):
03505 """
03506 serialize message with numpy array types into buffer
03507 :param buff: buffer, ``StringIO``
03508 :param numpy: numpy python module
03509 """
03510 try:
03511 _x = self
03512 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))
03513 _x = self.planning_scene.robot_state.joint_state.header.frame_id
03514 length = len(_x)
03515 if python3 or type(_x) == unicode:
03516 _x = _x.encode('utf-8')
03517 length = len(_x)
03518 buff.write(struct.pack('<I%ss'%length, length, _x))
03519 length = len(self.planning_scene.robot_state.joint_state.name)
03520 buff.write(_struct_I.pack(length))
03521 for val1 in self.planning_scene.robot_state.joint_state.name:
03522 length = len(val1)
03523 if python3 or type(val1) == unicode:
03524 val1 = val1.encode('utf-8')
03525 length = len(val1)
03526 buff.write(struct.pack('<I%ss'%length, length, val1))
03527 length = len(self.planning_scene.robot_state.joint_state.position)
03528 buff.write(_struct_I.pack(length))
03529 pattern = '<%sd'%length
03530 buff.write(self.planning_scene.robot_state.joint_state.position.tostring())
03531 length = len(self.planning_scene.robot_state.joint_state.velocity)
03532 buff.write(_struct_I.pack(length))
03533 pattern = '<%sd'%length
03534 buff.write(self.planning_scene.robot_state.joint_state.velocity.tostring())
03535 length = len(self.planning_scene.robot_state.joint_state.effort)
03536 buff.write(_struct_I.pack(length))
03537 pattern = '<%sd'%length
03538 buff.write(self.planning_scene.robot_state.joint_state.effort.tostring())
03539 _x = self
03540 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))
03541 length = len(self.planning_scene.robot_state.multi_dof_joint_state.joint_names)
03542 buff.write(_struct_I.pack(length))
03543 for val1 in self.planning_scene.robot_state.multi_dof_joint_state.joint_names:
03544 length = len(val1)
03545 if python3 or type(val1) == unicode:
03546 val1 = val1.encode('utf-8')
03547 length = len(val1)
03548 buff.write(struct.pack('<I%ss'%length, length, val1))
03549 length = len(self.planning_scene.robot_state.multi_dof_joint_state.frame_ids)
03550 buff.write(_struct_I.pack(length))
03551 for val1 in self.planning_scene.robot_state.multi_dof_joint_state.frame_ids:
03552 length = len(val1)
03553 if python3 or type(val1) == unicode:
03554 val1 = val1.encode('utf-8')
03555 length = len(val1)
03556 buff.write(struct.pack('<I%ss'%length, length, val1))
03557 length = len(self.planning_scene.robot_state.multi_dof_joint_state.child_frame_ids)
03558 buff.write(_struct_I.pack(length))
03559 for val1 in self.planning_scene.robot_state.multi_dof_joint_state.child_frame_ids:
03560 length = len(val1)
03561 if python3 or type(val1) == unicode:
03562 val1 = val1.encode('utf-8')
03563 length = len(val1)
03564 buff.write(struct.pack('<I%ss'%length, length, val1))
03565 length = len(self.planning_scene.robot_state.multi_dof_joint_state.poses)
03566 buff.write(_struct_I.pack(length))
03567 for val1 in self.planning_scene.robot_state.multi_dof_joint_state.poses:
03568 _v169 = val1.position
03569 _x = _v169
03570 buff.write(_struct_3d.pack(_x.x, _x.y, _x.z))
03571 _v170 = val1.orientation
03572 _x = _v170
03573 buff.write(_struct_4d.pack(_x.x, _x.y, _x.z, _x.w))
03574 length = len(self.planning_scene.fixed_frame_transforms)
03575 buff.write(_struct_I.pack(length))
03576 for val1 in self.planning_scene.fixed_frame_transforms:
03577 _v171 = val1.header
03578 buff.write(_struct_I.pack(_v171.seq))
03579 _v172 = _v171.stamp
03580 _x = _v172
03581 buff.write(_struct_2I.pack(_x.secs, _x.nsecs))
03582 _x = _v171.frame_id
03583 length = len(_x)
03584 if python3 or type(_x) == unicode:
03585 _x = _x.encode('utf-8')
03586 length = len(_x)
03587 buff.write(struct.pack('<I%ss'%length, length, _x))
03588 _x = val1.child_frame_id
03589 length = len(_x)
03590 if python3 or type(_x) == unicode:
03591 _x = _x.encode('utf-8')
03592 length = len(_x)
03593 buff.write(struct.pack('<I%ss'%length, length, _x))
03594 _v173 = val1.transform
03595 _v174 = _v173.translation
03596 _x = _v174
03597 buff.write(_struct_3d.pack(_x.x, _x.y, _x.z))
03598 _v175 = _v173.rotation
03599 _x = _v175
03600 buff.write(_struct_4d.pack(_x.x, _x.y, _x.z, _x.w))
03601 length = len(self.planning_scene.allowed_collision_matrix.link_names)
03602 buff.write(_struct_I.pack(length))
03603 for val1 in self.planning_scene.allowed_collision_matrix.link_names:
03604 length = len(val1)
03605 if python3 or type(val1) == unicode:
03606 val1 = val1.encode('utf-8')
03607 length = len(val1)
03608 buff.write(struct.pack('<I%ss'%length, length, val1))
03609 length = len(self.planning_scene.allowed_collision_matrix.entries)
03610 buff.write(_struct_I.pack(length))
03611 for val1 in self.planning_scene.allowed_collision_matrix.entries:
03612 length = len(val1.enabled)
03613 buff.write(_struct_I.pack(length))
03614 pattern = '<%sB'%length
03615 buff.write(val1.enabled.tostring())
03616 length = len(self.planning_scene.allowed_contacts)
03617 buff.write(_struct_I.pack(length))
03618 for val1 in self.planning_scene.allowed_contacts:
03619 _x = val1.name
03620 length = len(_x)
03621 if python3 or type(_x) == unicode:
03622 _x = _x.encode('utf-8')
03623 length = len(_x)
03624 buff.write(struct.pack('<I%ss'%length, length, _x))
03625 _v176 = val1.shape
03626 buff.write(_struct_b.pack(_v176.type))
03627 length = len(_v176.dimensions)
03628 buff.write(_struct_I.pack(length))
03629 pattern = '<%sd'%length
03630 buff.write(_v176.dimensions.tostring())
03631 length = len(_v176.triangles)
03632 buff.write(_struct_I.pack(length))
03633 pattern = '<%si'%length
03634 buff.write(_v176.triangles.tostring())
03635 length = len(_v176.vertices)
03636 buff.write(_struct_I.pack(length))
03637 for val3 in _v176.vertices:
03638 _x = val3
03639 buff.write(_struct_3d.pack(_x.x, _x.y, _x.z))
03640 _v177 = val1.pose_stamped
03641 _v178 = _v177.header
03642 buff.write(_struct_I.pack(_v178.seq))
03643 _v179 = _v178.stamp
03644 _x = _v179
03645 buff.write(_struct_2I.pack(_x.secs, _x.nsecs))
03646 _x = _v178.frame_id
03647 length = len(_x)
03648 if python3 or type(_x) == unicode:
03649 _x = _x.encode('utf-8')
03650 length = len(_x)
03651 buff.write(struct.pack('<I%ss'%length, length, _x))
03652 _v180 = _v177.pose
03653 _v181 = _v180.position
03654 _x = _v181
03655 buff.write(_struct_3d.pack(_x.x, _x.y, _x.z))
03656 _v182 = _v180.orientation
03657 _x = _v182
03658 buff.write(_struct_4d.pack(_x.x, _x.y, _x.z, _x.w))
03659 length = len(val1.link_names)
03660 buff.write(_struct_I.pack(length))
03661 for val2 in val1.link_names:
03662 length = len(val2)
03663 if python3 or type(val2) == unicode:
03664 val2 = val2.encode('utf-8')
03665 length = len(val2)
03666 buff.write(struct.pack('<I%ss'%length, length, val2))
03667 buff.write(_struct_d.pack(val1.penetration_depth))
03668 length = len(self.planning_scene.link_padding)
03669 buff.write(_struct_I.pack(length))
03670 for val1 in self.planning_scene.link_padding:
03671 _x = val1.link_name
03672 length = len(_x)
03673 if python3 or type(_x) == unicode:
03674 _x = _x.encode('utf-8')
03675 length = len(_x)
03676 buff.write(struct.pack('<I%ss'%length, length, _x))
03677 buff.write(_struct_d.pack(val1.padding))
03678 length = len(self.planning_scene.collision_objects)
03679 buff.write(_struct_I.pack(length))
03680 for val1 in self.planning_scene.collision_objects:
03681 _v183 = val1.header
03682 buff.write(_struct_I.pack(_v183.seq))
03683 _v184 = _v183.stamp
03684 _x = _v184
03685 buff.write(_struct_2I.pack(_x.secs, _x.nsecs))
03686 _x = _v183.frame_id
03687 length = len(_x)
03688 if python3 or type(_x) == unicode:
03689 _x = _x.encode('utf-8')
03690 length = len(_x)
03691 buff.write(struct.pack('<I%ss'%length, length, _x))
03692 _x = val1.id
03693 length = len(_x)
03694 if python3 or type(_x) == unicode:
03695 _x = _x.encode('utf-8')
03696 length = len(_x)
03697 buff.write(struct.pack('<I%ss'%length, length, _x))
03698 buff.write(_struct_f.pack(val1.padding))
03699 _v185 = val1.operation
03700 buff.write(_struct_b.pack(_v185.operation))
03701 length = len(val1.shapes)
03702 buff.write(_struct_I.pack(length))
03703 for val2 in val1.shapes:
03704 buff.write(_struct_b.pack(val2.type))
03705 length = len(val2.dimensions)
03706 buff.write(_struct_I.pack(length))
03707 pattern = '<%sd'%length
03708 buff.write(val2.dimensions.tostring())
03709 length = len(val2.triangles)
03710 buff.write(_struct_I.pack(length))
03711 pattern = '<%si'%length
03712 buff.write(val2.triangles.tostring())
03713 length = len(val2.vertices)
03714 buff.write(_struct_I.pack(length))
03715 for val3 in val2.vertices:
03716 _x = val3
03717 buff.write(_struct_3d.pack(_x.x, _x.y, _x.z))
03718 length = len(val1.poses)
03719 buff.write(_struct_I.pack(length))
03720 for val2 in val1.poses:
03721 _v186 = val2.position
03722 _x = _v186
03723 buff.write(_struct_3d.pack(_x.x, _x.y, _x.z))
03724 _v187 = val2.orientation
03725 _x = _v187
03726 buff.write(_struct_4d.pack(_x.x, _x.y, _x.z, _x.w))
03727 length = len(self.planning_scene.attached_collision_objects)
03728 buff.write(_struct_I.pack(length))
03729 for val1 in self.planning_scene.attached_collision_objects:
03730 _x = val1.link_name
03731 length = len(_x)
03732 if python3 or type(_x) == unicode:
03733 _x = _x.encode('utf-8')
03734 length = len(_x)
03735 buff.write(struct.pack('<I%ss'%length, length, _x))
03736 _v188 = val1.object
03737 _v189 = _v188.header
03738 buff.write(_struct_I.pack(_v189.seq))
03739 _v190 = _v189.stamp
03740 _x = _v190
03741 buff.write(_struct_2I.pack(_x.secs, _x.nsecs))
03742 _x = _v189.frame_id
03743 length = len(_x)
03744 if python3 or type(_x) == unicode:
03745 _x = _x.encode('utf-8')
03746 length = len(_x)
03747 buff.write(struct.pack('<I%ss'%length, length, _x))
03748 _x = _v188.id
03749 length = len(_x)
03750 if python3 or type(_x) == unicode:
03751 _x = _x.encode('utf-8')
03752 length = len(_x)
03753 buff.write(struct.pack('<I%ss'%length, length, _x))
03754 buff.write(_struct_f.pack(_v188.padding))
03755 _v191 = _v188.operation
03756 buff.write(_struct_b.pack(_v191.operation))
03757 length = len(_v188.shapes)
03758 buff.write(_struct_I.pack(length))
03759 for val3 in _v188.shapes:
03760 buff.write(_struct_b.pack(val3.type))
03761 length = len(val3.dimensions)
03762 buff.write(_struct_I.pack(length))
03763 pattern = '<%sd'%length
03764 buff.write(val3.dimensions.tostring())
03765 length = len(val3.triangles)
03766 buff.write(_struct_I.pack(length))
03767 pattern = '<%si'%length
03768 buff.write(val3.triangles.tostring())
03769 length = len(val3.vertices)
03770 buff.write(_struct_I.pack(length))
03771 for val4 in val3.vertices:
03772 _x = val4
03773 buff.write(_struct_3d.pack(_x.x, _x.y, _x.z))
03774 length = len(_v188.poses)
03775 buff.write(_struct_I.pack(length))
03776 for val3 in _v188.poses:
03777 _v192 = val3.position
03778 _x = _v192
03779 buff.write(_struct_3d.pack(_x.x, _x.y, _x.z))
03780 _v193 = val3.orientation
03781 _x = _v193
03782 buff.write(_struct_4d.pack(_x.x, _x.y, _x.z, _x.w))
03783 length = len(val1.touch_links)
03784 buff.write(_struct_I.pack(length))
03785 for val2 in val1.touch_links:
03786 length = len(val2)
03787 if python3 or type(val2) == unicode:
03788 val2 = val2.encode('utf-8')
03789 length = len(val2)
03790 buff.write(struct.pack('<I%ss'%length, length, val2))
03791 _x = self
03792 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))
03793 _x = self.planning_scene.collision_map.header.frame_id
03794 length = len(_x)
03795 if python3 or type(_x) == unicode:
03796 _x = _x.encode('utf-8')
03797 length = len(_x)
03798 buff.write(struct.pack('<I%ss'%length, length, _x))
03799 length = len(self.planning_scene.collision_map.boxes)
03800 buff.write(_struct_I.pack(length))
03801 for val1 in self.planning_scene.collision_map.boxes:
03802 _v194 = val1.center
03803 _x = _v194
03804 buff.write(_struct_3f.pack(_x.x, _x.y, _x.z))
03805 _v195 = val1.extents
03806 _x = _v195
03807 buff.write(_struct_3f.pack(_x.x, _x.y, _x.z))
03808 _v196 = val1.axis
03809 _x = _v196
03810 buff.write(_struct_3f.pack(_x.x, _x.y, _x.z))
03811 buff.write(_struct_f.pack(val1.angle))
03812 except struct.error as se: self._check_types(se)
03813 except TypeError as te: self._check_types(te)
03814
03815 def deserialize_numpy(self, str, numpy):
03816 """
03817 unpack serialized message in str into this message instance using numpy for array types
03818 :param str: byte array of serialized message, ``str``
03819 :param numpy: numpy python module
03820 """
03821 try:
03822 if self.planning_scene is None:
03823 self.planning_scene = arm_navigation_msgs.msg.PlanningScene()
03824 end = 0
03825 _x = self
03826 start = end
03827 end += 12
03828 (_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])
03829 start = end
03830 end += 4
03831 (length,) = _struct_I.unpack(str[start:end])
03832 start = end
03833 end += length
03834 if python3:
03835 self.planning_scene.robot_state.joint_state.header.frame_id = str[start:end].decode('utf-8')
03836 else:
03837 self.planning_scene.robot_state.joint_state.header.frame_id = str[start:end]
03838 start = end
03839 end += 4
03840 (length,) = _struct_I.unpack(str[start:end])
03841 self.planning_scene.robot_state.joint_state.name = []
03842 for i in range(0, length):
03843 start = end
03844 end += 4
03845 (length,) = _struct_I.unpack(str[start:end])
03846 start = end
03847 end += length
03848 if python3:
03849 val1 = str[start:end].decode('utf-8')
03850 else:
03851 val1 = str[start:end]
03852 self.planning_scene.robot_state.joint_state.name.append(val1)
03853 start = end
03854 end += 4
03855 (length,) = _struct_I.unpack(str[start:end])
03856 pattern = '<%sd'%length
03857 start = end
03858 end += struct.calcsize(pattern)
03859 self.planning_scene.robot_state.joint_state.position = numpy.frombuffer(str[start:end], dtype=numpy.float64, count=length)
03860 start = end
03861 end += 4
03862 (length,) = _struct_I.unpack(str[start:end])
03863 pattern = '<%sd'%length
03864 start = end
03865 end += struct.calcsize(pattern)
03866 self.planning_scene.robot_state.joint_state.velocity = numpy.frombuffer(str[start:end], dtype=numpy.float64, count=length)
03867 start = end
03868 end += 4
03869 (length,) = _struct_I.unpack(str[start:end])
03870 pattern = '<%sd'%length
03871 start = end
03872 end += struct.calcsize(pattern)
03873 self.planning_scene.robot_state.joint_state.effort = numpy.frombuffer(str[start:end], dtype=numpy.float64, count=length)
03874 _x = self
03875 start = end
03876 end += 8
03877 (_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])
03878 start = end
03879 end += 4
03880 (length,) = _struct_I.unpack(str[start:end])
03881 self.planning_scene.robot_state.multi_dof_joint_state.joint_names = []
03882 for i in range(0, length):
03883 start = end
03884 end += 4
03885 (length,) = _struct_I.unpack(str[start:end])
03886 start = end
03887 end += length
03888 if python3:
03889 val1 = str[start:end].decode('utf-8')
03890 else:
03891 val1 = str[start:end]
03892 self.planning_scene.robot_state.multi_dof_joint_state.joint_names.append(val1)
03893 start = end
03894 end += 4
03895 (length,) = _struct_I.unpack(str[start:end])
03896 self.planning_scene.robot_state.multi_dof_joint_state.frame_ids = []
03897 for i in range(0, length):
03898 start = end
03899 end += 4
03900 (length,) = _struct_I.unpack(str[start:end])
03901 start = end
03902 end += length
03903 if python3:
03904 val1 = str[start:end].decode('utf-8')
03905 else:
03906 val1 = str[start:end]
03907 self.planning_scene.robot_state.multi_dof_joint_state.frame_ids.append(val1)
03908 start = end
03909 end += 4
03910 (length,) = _struct_I.unpack(str[start:end])
03911 self.planning_scene.robot_state.multi_dof_joint_state.child_frame_ids = []
03912 for i in range(0, length):
03913 start = end
03914 end += 4
03915 (length,) = _struct_I.unpack(str[start:end])
03916 start = end
03917 end += length
03918 if python3:
03919 val1 = str[start:end].decode('utf-8')
03920 else:
03921 val1 = str[start:end]
03922 self.planning_scene.robot_state.multi_dof_joint_state.child_frame_ids.append(val1)
03923 start = end
03924 end += 4
03925 (length,) = _struct_I.unpack(str[start:end])
03926 self.planning_scene.robot_state.multi_dof_joint_state.poses = []
03927 for i in range(0, length):
03928 val1 = geometry_msgs.msg.Pose()
03929 _v197 = val1.position
03930 _x = _v197
03931 start = end
03932 end += 24
03933 (_x.x, _x.y, _x.z,) = _struct_3d.unpack(str[start:end])
03934 _v198 = val1.orientation
03935 _x = _v198
03936 start = end
03937 end += 32
03938 (_x.x, _x.y, _x.z, _x.w,) = _struct_4d.unpack(str[start:end])
03939 self.planning_scene.robot_state.multi_dof_joint_state.poses.append(val1)
03940 start = end
03941 end += 4
03942 (length,) = _struct_I.unpack(str[start:end])
03943 self.planning_scene.fixed_frame_transforms = []
03944 for i in range(0, length):
03945 val1 = geometry_msgs.msg.TransformStamped()
03946 _v199 = val1.header
03947 start = end
03948 end += 4
03949 (_v199.seq,) = _struct_I.unpack(str[start:end])
03950 _v200 = _v199.stamp
03951 _x = _v200
03952 start = end
03953 end += 8
03954 (_x.secs, _x.nsecs,) = _struct_2I.unpack(str[start:end])
03955 start = end
03956 end += 4
03957 (length,) = _struct_I.unpack(str[start:end])
03958 start = end
03959 end += length
03960 if python3:
03961 _v199.frame_id = str[start:end].decode('utf-8')
03962 else:
03963 _v199.frame_id = str[start:end]
03964 start = end
03965 end += 4
03966 (length,) = _struct_I.unpack(str[start:end])
03967 start = end
03968 end += length
03969 if python3:
03970 val1.child_frame_id = str[start:end].decode('utf-8')
03971 else:
03972 val1.child_frame_id = str[start:end]
03973 _v201 = val1.transform
03974 _v202 = _v201.translation
03975 _x = _v202
03976 start = end
03977 end += 24
03978 (_x.x, _x.y, _x.z,) = _struct_3d.unpack(str[start:end])
03979 _v203 = _v201.rotation
03980 _x = _v203
03981 start = end
03982 end += 32
03983 (_x.x, _x.y, _x.z, _x.w,) = _struct_4d.unpack(str[start:end])
03984 self.planning_scene.fixed_frame_transforms.append(val1)
03985 start = end
03986 end += 4
03987 (length,) = _struct_I.unpack(str[start:end])
03988 self.planning_scene.allowed_collision_matrix.link_names = []
03989 for i in range(0, length):
03990 start = end
03991 end += 4
03992 (length,) = _struct_I.unpack(str[start:end])
03993 start = end
03994 end += length
03995 if python3:
03996 val1 = str[start:end].decode('utf-8')
03997 else:
03998 val1 = str[start:end]
03999 self.planning_scene.allowed_collision_matrix.link_names.append(val1)
04000 start = end
04001 end += 4
04002 (length,) = _struct_I.unpack(str[start:end])
04003 self.planning_scene.allowed_collision_matrix.entries = []
04004 for i in range(0, length):
04005 val1 = arm_navigation_msgs.msg.AllowedCollisionEntry()
04006 start = end
04007 end += 4
04008 (length,) = _struct_I.unpack(str[start:end])
04009 pattern = '<%sB'%length
04010 start = end
04011 end += struct.calcsize(pattern)
04012 val1.enabled = numpy.frombuffer(str[start:end], dtype=numpy.bool, count=length)
04013 val1.enabled = map(bool, val1.enabled)
04014 self.planning_scene.allowed_collision_matrix.entries.append(val1)
04015 start = end
04016 end += 4
04017 (length,) = _struct_I.unpack(str[start:end])
04018 self.planning_scene.allowed_contacts = []
04019 for i in range(0, length):
04020 val1 = arm_navigation_msgs.msg.AllowedContactSpecification()
04021 start = end
04022 end += 4
04023 (length,) = _struct_I.unpack(str[start:end])
04024 start = end
04025 end += length
04026 if python3:
04027 val1.name = str[start:end].decode('utf-8')
04028 else:
04029 val1.name = str[start:end]
04030 _v204 = val1.shape
04031 start = end
04032 end += 1
04033 (_v204.type,) = _struct_b.unpack(str[start:end])
04034 start = end
04035 end += 4
04036 (length,) = _struct_I.unpack(str[start:end])
04037 pattern = '<%sd'%length
04038 start = end
04039 end += struct.calcsize(pattern)
04040 _v204.dimensions = numpy.frombuffer(str[start:end], dtype=numpy.float64, count=length)
04041 start = end
04042 end += 4
04043 (length,) = _struct_I.unpack(str[start:end])
04044 pattern = '<%si'%length
04045 start = end
04046 end += struct.calcsize(pattern)
04047 _v204.triangles = numpy.frombuffer(str[start:end], dtype=numpy.int32, count=length)
04048 start = end
04049 end += 4
04050 (length,) = _struct_I.unpack(str[start:end])
04051 _v204.vertices = []
04052 for i in range(0, length):
04053 val3 = geometry_msgs.msg.Point()
04054 _x = val3
04055 start = end
04056 end += 24
04057 (_x.x, _x.y, _x.z,) = _struct_3d.unpack(str[start:end])
04058 _v204.vertices.append(val3)
04059 _v205 = val1.pose_stamped
04060 _v206 = _v205.header
04061 start = end
04062 end += 4
04063 (_v206.seq,) = _struct_I.unpack(str[start:end])
04064 _v207 = _v206.stamp
04065 _x = _v207
04066 start = end
04067 end += 8
04068 (_x.secs, _x.nsecs,) = _struct_2I.unpack(str[start:end])
04069 start = end
04070 end += 4
04071 (length,) = _struct_I.unpack(str[start:end])
04072 start = end
04073 end += length
04074 if python3:
04075 _v206.frame_id = str[start:end].decode('utf-8')
04076 else:
04077 _v206.frame_id = str[start:end]
04078 _v208 = _v205.pose
04079 _v209 = _v208.position
04080 _x = _v209
04081 start = end
04082 end += 24
04083 (_x.x, _x.y, _x.z,) = _struct_3d.unpack(str[start:end])
04084 _v210 = _v208.orientation
04085 _x = _v210
04086 start = end
04087 end += 32
04088 (_x.x, _x.y, _x.z, _x.w,) = _struct_4d.unpack(str[start:end])
04089 start = end
04090 end += 4
04091 (length,) = _struct_I.unpack(str[start:end])
04092 val1.link_names = []
04093 for i in range(0, length):
04094 start = end
04095 end += 4
04096 (length,) = _struct_I.unpack(str[start:end])
04097 start = end
04098 end += length
04099 if python3:
04100 val2 = str[start:end].decode('utf-8')
04101 else:
04102 val2 = str[start:end]
04103 val1.link_names.append(val2)
04104 start = end
04105 end += 8
04106 (val1.penetration_depth,) = _struct_d.unpack(str[start:end])
04107 self.planning_scene.allowed_contacts.append(val1)
04108 start = end
04109 end += 4
04110 (length,) = _struct_I.unpack(str[start:end])
04111 self.planning_scene.link_padding = []
04112 for i in range(0, length):
04113 val1 = arm_navigation_msgs.msg.LinkPadding()
04114 start = end
04115 end += 4
04116 (length,) = _struct_I.unpack(str[start:end])
04117 start = end
04118 end += length
04119 if python3:
04120 val1.link_name = str[start:end].decode('utf-8')
04121 else:
04122 val1.link_name = str[start:end]
04123 start = end
04124 end += 8
04125 (val1.padding,) = _struct_d.unpack(str[start:end])
04126 self.planning_scene.link_padding.append(val1)
04127 start = end
04128 end += 4
04129 (length,) = _struct_I.unpack(str[start:end])
04130 self.planning_scene.collision_objects = []
04131 for i in range(0, length):
04132 val1 = arm_navigation_msgs.msg.CollisionObject()
04133 _v211 = val1.header
04134 start = end
04135 end += 4
04136 (_v211.seq,) = _struct_I.unpack(str[start:end])
04137 _v212 = _v211.stamp
04138 _x = _v212
04139 start = end
04140 end += 8
04141 (_x.secs, _x.nsecs,) = _struct_2I.unpack(str[start:end])
04142 start = end
04143 end += 4
04144 (length,) = _struct_I.unpack(str[start:end])
04145 start = end
04146 end += length
04147 if python3:
04148 _v211.frame_id = str[start:end].decode('utf-8')
04149 else:
04150 _v211.frame_id = str[start:end]
04151 start = end
04152 end += 4
04153 (length,) = _struct_I.unpack(str[start:end])
04154 start = end
04155 end += length
04156 if python3:
04157 val1.id = str[start:end].decode('utf-8')
04158 else:
04159 val1.id = str[start:end]
04160 start = end
04161 end += 4
04162 (val1.padding,) = _struct_f.unpack(str[start:end])
04163 _v213 = val1.operation
04164 start = end
04165 end += 1
04166 (_v213.operation,) = _struct_b.unpack(str[start:end])
04167 start = end
04168 end += 4
04169 (length,) = _struct_I.unpack(str[start:end])
04170 val1.shapes = []
04171 for i in range(0, length):
04172 val2 = arm_navigation_msgs.msg.Shape()
04173 start = end
04174 end += 1
04175 (val2.type,) = _struct_b.unpack(str[start:end])
04176 start = end
04177 end += 4
04178 (length,) = _struct_I.unpack(str[start:end])
04179 pattern = '<%sd'%length
04180 start = end
04181 end += struct.calcsize(pattern)
04182 val2.dimensions = numpy.frombuffer(str[start:end], dtype=numpy.float64, count=length)
04183 start = end
04184 end += 4
04185 (length,) = _struct_I.unpack(str[start:end])
04186 pattern = '<%si'%length
04187 start = end
04188 end += struct.calcsize(pattern)
04189 val2.triangles = numpy.frombuffer(str[start:end], dtype=numpy.int32, count=length)
04190 start = end
04191 end += 4
04192 (length,) = _struct_I.unpack(str[start:end])
04193 val2.vertices = []
04194 for i in range(0, length):
04195 val3 = geometry_msgs.msg.Point()
04196 _x = val3
04197 start = end
04198 end += 24
04199 (_x.x, _x.y, _x.z,) = _struct_3d.unpack(str[start:end])
04200 val2.vertices.append(val3)
04201 val1.shapes.append(val2)
04202 start = end
04203 end += 4
04204 (length,) = _struct_I.unpack(str[start:end])
04205 val1.poses = []
04206 for i in range(0, length):
04207 val2 = geometry_msgs.msg.Pose()
04208 _v214 = val2.position
04209 _x = _v214
04210 start = end
04211 end += 24
04212 (_x.x, _x.y, _x.z,) = _struct_3d.unpack(str[start:end])
04213 _v215 = val2.orientation
04214 _x = _v215
04215 start = end
04216 end += 32
04217 (_x.x, _x.y, _x.z, _x.w,) = _struct_4d.unpack(str[start:end])
04218 val1.poses.append(val2)
04219 self.planning_scene.collision_objects.append(val1)
04220 start = end
04221 end += 4
04222 (length,) = _struct_I.unpack(str[start:end])
04223 self.planning_scene.attached_collision_objects = []
04224 for i in range(0, length):
04225 val1 = arm_navigation_msgs.msg.AttachedCollisionObject()
04226 start = end
04227 end += 4
04228 (length,) = _struct_I.unpack(str[start:end])
04229 start = end
04230 end += length
04231 if python3:
04232 val1.link_name = str[start:end].decode('utf-8')
04233 else:
04234 val1.link_name = str[start:end]
04235 _v216 = val1.object
04236 _v217 = _v216.header
04237 start = end
04238 end += 4
04239 (_v217.seq,) = _struct_I.unpack(str[start:end])
04240 _v218 = _v217.stamp
04241 _x = _v218
04242 start = end
04243 end += 8
04244 (_x.secs, _x.nsecs,) = _struct_2I.unpack(str[start:end])
04245 start = end
04246 end += 4
04247 (length,) = _struct_I.unpack(str[start:end])
04248 start = end
04249 end += length
04250 if python3:
04251 _v217.frame_id = str[start:end].decode('utf-8')
04252 else:
04253 _v217.frame_id = str[start:end]
04254 start = end
04255 end += 4
04256 (length,) = _struct_I.unpack(str[start:end])
04257 start = end
04258 end += length
04259 if python3:
04260 _v216.id = str[start:end].decode('utf-8')
04261 else:
04262 _v216.id = str[start:end]
04263 start = end
04264 end += 4
04265 (_v216.padding,) = _struct_f.unpack(str[start:end])
04266 _v219 = _v216.operation
04267 start = end
04268 end += 1
04269 (_v219.operation,) = _struct_b.unpack(str[start:end])
04270 start = end
04271 end += 4
04272 (length,) = _struct_I.unpack(str[start:end])
04273 _v216.shapes = []
04274 for i in range(0, length):
04275 val3 = arm_navigation_msgs.msg.Shape()
04276 start = end
04277 end += 1
04278 (val3.type,) = _struct_b.unpack(str[start:end])
04279 start = end
04280 end += 4
04281 (length,) = _struct_I.unpack(str[start:end])
04282 pattern = '<%sd'%length
04283 start = end
04284 end += struct.calcsize(pattern)
04285 val3.dimensions = numpy.frombuffer(str[start:end], dtype=numpy.float64, count=length)
04286 start = end
04287 end += 4
04288 (length,) = _struct_I.unpack(str[start:end])
04289 pattern = '<%si'%length
04290 start = end
04291 end += struct.calcsize(pattern)
04292 val3.triangles = numpy.frombuffer(str[start:end], dtype=numpy.int32, count=length)
04293 start = end
04294 end += 4
04295 (length,) = _struct_I.unpack(str[start:end])
04296 val3.vertices = []
04297 for i in range(0, length):
04298 val4 = geometry_msgs.msg.Point()
04299 _x = val4
04300 start = end
04301 end += 24
04302 (_x.x, _x.y, _x.z,) = _struct_3d.unpack(str[start:end])
04303 val3.vertices.append(val4)
04304 _v216.shapes.append(val3)
04305 start = end
04306 end += 4
04307 (length,) = _struct_I.unpack(str[start:end])
04308 _v216.poses = []
04309 for i in range(0, length):
04310 val3 = geometry_msgs.msg.Pose()
04311 _v220 = val3.position
04312 _x = _v220
04313 start = end
04314 end += 24
04315 (_x.x, _x.y, _x.z,) = _struct_3d.unpack(str[start:end])
04316 _v221 = val3.orientation
04317 _x = _v221
04318 start = end
04319 end += 32
04320 (_x.x, _x.y, _x.z, _x.w,) = _struct_4d.unpack(str[start:end])
04321 _v216.poses.append(val3)
04322 start = end
04323 end += 4
04324 (length,) = _struct_I.unpack(str[start:end])
04325 val1.touch_links = []
04326 for i in range(0, length):
04327 start = end
04328 end += 4
04329 (length,) = _struct_I.unpack(str[start:end])
04330 start = end
04331 end += length
04332 if python3:
04333 val2 = str[start:end].decode('utf-8')
04334 else:
04335 val2 = str[start:end]
04336 val1.touch_links.append(val2)
04337 self.planning_scene.attached_collision_objects.append(val1)
04338 _x = self
04339 start = end
04340 end += 12
04341 (_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])
04342 start = end
04343 end += 4
04344 (length,) = _struct_I.unpack(str[start:end])
04345 start = end
04346 end += length
04347 if python3:
04348 self.planning_scene.collision_map.header.frame_id = str[start:end].decode('utf-8')
04349 else:
04350 self.planning_scene.collision_map.header.frame_id = str[start:end]
04351 start = end
04352 end += 4
04353 (length,) = _struct_I.unpack(str[start:end])
04354 self.planning_scene.collision_map.boxes = []
04355 for i in range(0, length):
04356 val1 = arm_navigation_msgs.msg.OrientedBoundingBox()
04357 _v222 = val1.center
04358 _x = _v222
04359 start = end
04360 end += 12
04361 (_x.x, _x.y, _x.z,) = _struct_3f.unpack(str[start:end])
04362 _v223 = val1.extents
04363 _x = _v223
04364 start = end
04365 end += 12
04366 (_x.x, _x.y, _x.z,) = _struct_3f.unpack(str[start:end])
04367 _v224 = val1.axis
04368 _x = _v224
04369 start = end
04370 end += 12
04371 (_x.x, _x.y, _x.z,) = _struct_3f.unpack(str[start:end])
04372 start = end
04373 end += 4
04374 (val1.angle,) = _struct_f.unpack(str[start:end])
04375 self.planning_scene.collision_map.boxes.append(val1)
04376 return self
04377 except struct.error as e:
04378 raise genpy.DeserializationError(e)
04379
04380 _struct_I = genpy.struct_I
04381 _struct_b = struct.Struct("<b")
04382 _struct_d = struct.Struct("<d")
04383 _struct_f = struct.Struct("<f")
04384 _struct_3f = struct.Struct("<3f")
04385 _struct_3I = struct.Struct("<3I")
04386 _struct_4d = struct.Struct("<4d")
04387 _struct_2I = struct.Struct("<2I")
04388 _struct_3d = struct.Struct("<3d")
04389 class SetPlanningSceneDiff(object):
04390 _type = 'arm_navigation_msgs/SetPlanningSceneDiff'
04391 _md5sum = '0a7b07718e4e5c5d35740c730509a151'
04392 _request_class = SetPlanningSceneDiffRequest
04393 _response_class = SetPlanningSceneDiffResponse