00001 """autogenerated by genmsg_py from DisplayPath.msg. Do not edit."""
00002 import roslib.message
00003 import struct
00004
00005 import geometry_msgs.msg
00006 import roslib.rostime
00007 import sensor_msgs.msg
00008 import motion_planning_msgs.msg
00009 import std_msgs.msg
00010
00011 class DisplayPath(roslib.message.Message):
00012 _md5sum = "b8dfa63887ffce8861d5beaef6427319"
00013 _type = "motion_planning_msgs/DisplayPath"
00014 _has_header = False
00015 _full_text = """# The model id for which this path has been generated
00016 string model_id
00017 # The representation of the path contains position values for all the joints that are moving along the path
00018 JointPath path
00019 # The robot state is used to obtain positions for all/some of the joints of the robot.
00020 # It is used by the path display node to determine the positions of the joints that are not specified in the joint path message above.
00021 # If the robot state message contains joint position information for joints that are also mentioned in the joint path message, the positions in the joint path message will overwrite the positions specified in the robot state message.
00022 RobotState robot_state
00023 ================================================================================
00024 MSG: motion_planning_msgs/JointPath
00025 # This message defines a joint path
00026
00027 # The standard ROS header
00028 Header header
00029
00030 # Vector of joint names for which positions are specified.
00031 # The size of this vector must match the size of each waypoint below
00032 string[] joint_names
00033
00034 # A vector of waypoints.
00035 # Each waypoint is a vector of joint positions.
00036 # Each waypoint must have the same size as the vector of joint names
00037 JointPathPoint[] points
00038 ================================================================================
00039 MSG: std_msgs/Header
00040 # Standard metadata for higher-level stamped data types.
00041 # This is generally used to communicate timestamped data
00042 # in a particular coordinate frame.
00043 #
00044 # sequence ID: consecutively increasing ID
00045 uint32 seq
00046 #Two-integer timestamp that is expressed as:
00047 # * stamp.secs: seconds (stamp_secs) since epoch
00048 # * stamp.nsecs: nanoseconds since stamp_secs
00049 # time-handling sugar is provided by the client library
00050 time stamp
00051 #Frame this data is associated with
00052 # 0: no frame
00053 # 1: global frame
00054 string frame_id
00055
00056 ================================================================================
00057 MSG: motion_planning_msgs/JointPathPoint
00058 # The joint path point contains a vector of joint positions.
00059 float64[] positions
00060
00061 ================================================================================
00062 MSG: motion_planning_msgs/RobotState
00063 # This message contains information about the robot state, i.e. the positions of its joints and links
00064 sensor_msgs/JointState joint_state
00065 motion_planning_msgs/MultiDOFJointState multi_dof_joint_state
00066 ================================================================================
00067 MSG: sensor_msgs/JointState
00068 # This is a message that holds data to describe the state of a set of torque controlled joints.
00069 #
00070 # The state of each joint (revolute or prismatic) is defined by:
00071 # * the position of the joint (rad or m),
00072 # * the velocity of the joint (rad/s or m/s) and
00073 # * the effort that is applied in the joint (Nm or N).
00074 #
00075 # Each joint is uniquely identified by its name
00076 # The header specifies the time at which the joint states were recorded. All the joint states
00077 # in one message have to be recorded at the same time.
00078 #
00079 # This message consists of a multiple arrays, one for each part of the joint state.
00080 # The goal is to make each of the fields optional. When e.g. your joints have no
00081 # effort associated with them, you can leave the effort array empty.
00082 #
00083 # All arrays in this message should have the same size, or be empty.
00084 # This is the only way to uniquely associate the joint name with the correct
00085 # states.
00086
00087
00088 Header header
00089
00090 string[] name
00091 float64[] position
00092 float64[] velocity
00093 float64[] effort
00094
00095 ================================================================================
00096 MSG: motion_planning_msgs/MultiDOFJointState
00097 #A representation of a multi-dof joint state
00098 time stamp
00099 string[] joint_names
00100 string[] frame_ids
00101 string[] child_frame_ids
00102 geometry_msgs/Pose[] poses
00103
00104 ================================================================================
00105 MSG: geometry_msgs/Pose
00106 # A representation of pose in free space, composed of postion and orientation.
00107 Point position
00108 Quaternion orientation
00109
00110 ================================================================================
00111 MSG: geometry_msgs/Point
00112 # This contains the position of a point in free space
00113 float64 x
00114 float64 y
00115 float64 z
00116
00117 ================================================================================
00118 MSG: geometry_msgs/Quaternion
00119 # This represents an orientation in free space in quaternion form.
00120
00121 float64 x
00122 float64 y
00123 float64 z
00124 float64 w
00125
00126 """
00127 __slots__ = ['model_id','path','robot_state']
00128 _slot_types = ['string','motion_planning_msgs/JointPath','motion_planning_msgs/RobotState']
00129
00130 def __init__(self, *args, **kwds):
00131 """
00132 Constructor. Any message fields that are implicitly/explicitly
00133 set to None will be assigned a default value. The recommend
00134 use is keyword arguments as this is more robust to future message
00135 changes. You cannot mix in-order arguments and keyword arguments.
00136
00137 The available fields are:
00138 model_id,path,robot_state
00139
00140 @param args: complete set of field values, in .msg order
00141 @param kwds: use keyword arguments corresponding to message field names
00142 to set specific fields.
00143 """
00144 if args or kwds:
00145 super(DisplayPath, self).__init__(*args, **kwds)
00146
00147 if self.model_id is None:
00148 self.model_id = ''
00149 if self.path is None:
00150 self.path = motion_planning_msgs.msg.JointPath()
00151 if self.robot_state is None:
00152 self.robot_state = motion_planning_msgs.msg.RobotState()
00153 else:
00154 self.model_id = ''
00155 self.path = motion_planning_msgs.msg.JointPath()
00156 self.robot_state = motion_planning_msgs.msg.RobotState()
00157
00158 def _get_types(self):
00159 """
00160 internal API method
00161 """
00162 return self._slot_types
00163
00164 def serialize(self, buff):
00165 """
00166 serialize message into buffer
00167 @param buff: buffer
00168 @type buff: StringIO
00169 """
00170 try:
00171 _x = self.model_id
00172 length = len(_x)
00173 buff.write(struct.pack('<I%ss'%length, length, _x))
00174 _x = self
00175 buff.write(_struct_3I.pack(_x.path.header.seq, _x.path.header.stamp.secs, _x.path.header.stamp.nsecs))
00176 _x = self.path.header.frame_id
00177 length = len(_x)
00178 buff.write(struct.pack('<I%ss'%length, length, _x))
00179 length = len(self.path.joint_names)
00180 buff.write(_struct_I.pack(length))
00181 for val1 in self.path.joint_names:
00182 length = len(val1)
00183 buff.write(struct.pack('<I%ss'%length, length, val1))
00184 length = len(self.path.points)
00185 buff.write(_struct_I.pack(length))
00186 for val1 in self.path.points:
00187 length = len(val1.positions)
00188 buff.write(_struct_I.pack(length))
00189 pattern = '<%sd'%length
00190 buff.write(struct.pack(pattern, *val1.positions))
00191 _x = self
00192 buff.write(_struct_3I.pack(_x.robot_state.joint_state.header.seq, _x.robot_state.joint_state.header.stamp.secs, _x.robot_state.joint_state.header.stamp.nsecs))
00193 _x = self.robot_state.joint_state.header.frame_id
00194 length = len(_x)
00195 buff.write(struct.pack('<I%ss'%length, length, _x))
00196 length = len(self.robot_state.joint_state.name)
00197 buff.write(_struct_I.pack(length))
00198 for val1 in self.robot_state.joint_state.name:
00199 length = len(val1)
00200 buff.write(struct.pack('<I%ss'%length, length, val1))
00201 length = len(self.robot_state.joint_state.position)
00202 buff.write(_struct_I.pack(length))
00203 pattern = '<%sd'%length
00204 buff.write(struct.pack(pattern, *self.robot_state.joint_state.position))
00205 length = len(self.robot_state.joint_state.velocity)
00206 buff.write(_struct_I.pack(length))
00207 pattern = '<%sd'%length
00208 buff.write(struct.pack(pattern, *self.robot_state.joint_state.velocity))
00209 length = len(self.robot_state.joint_state.effort)
00210 buff.write(_struct_I.pack(length))
00211 pattern = '<%sd'%length
00212 buff.write(struct.pack(pattern, *self.robot_state.joint_state.effort))
00213 _x = self
00214 buff.write(_struct_2I.pack(_x.robot_state.multi_dof_joint_state.stamp.secs, _x.robot_state.multi_dof_joint_state.stamp.nsecs))
00215 length = len(self.robot_state.multi_dof_joint_state.joint_names)
00216 buff.write(_struct_I.pack(length))
00217 for val1 in self.robot_state.multi_dof_joint_state.joint_names:
00218 length = len(val1)
00219 buff.write(struct.pack('<I%ss'%length, length, val1))
00220 length = len(self.robot_state.multi_dof_joint_state.frame_ids)
00221 buff.write(_struct_I.pack(length))
00222 for val1 in self.robot_state.multi_dof_joint_state.frame_ids:
00223 length = len(val1)
00224 buff.write(struct.pack('<I%ss'%length, length, val1))
00225 length = len(self.robot_state.multi_dof_joint_state.child_frame_ids)
00226 buff.write(_struct_I.pack(length))
00227 for val1 in self.robot_state.multi_dof_joint_state.child_frame_ids:
00228 length = len(val1)
00229 buff.write(struct.pack('<I%ss'%length, length, val1))
00230 length = len(self.robot_state.multi_dof_joint_state.poses)
00231 buff.write(_struct_I.pack(length))
00232 for val1 in self.robot_state.multi_dof_joint_state.poses:
00233 _v1 = val1.position
00234 _x = _v1
00235 buff.write(_struct_3d.pack(_x.x, _x.y, _x.z))
00236 _v2 = val1.orientation
00237 _x = _v2
00238 buff.write(_struct_4d.pack(_x.x, _x.y, _x.z, _x.w))
00239 except struct.error, se: self._check_types(se)
00240 except TypeError, te: self._check_types(te)
00241
00242 def deserialize(self, str):
00243 """
00244 unpack serialized message in str into this message instance
00245 @param str: byte array of serialized message
00246 @type str: str
00247 """
00248 try:
00249 if self.path is None:
00250 self.path = motion_planning_msgs.msg.JointPath()
00251 if self.robot_state is None:
00252 self.robot_state = motion_planning_msgs.msg.RobotState()
00253 end = 0
00254 start = end
00255 end += 4
00256 (length,) = _struct_I.unpack(str[start:end])
00257 start = end
00258 end += length
00259 self.model_id = str[start:end]
00260 _x = self
00261 start = end
00262 end += 12
00263 (_x.path.header.seq, _x.path.header.stamp.secs, _x.path.header.stamp.nsecs,) = _struct_3I.unpack(str[start:end])
00264 start = end
00265 end += 4
00266 (length,) = _struct_I.unpack(str[start:end])
00267 start = end
00268 end += length
00269 self.path.header.frame_id = str[start:end]
00270 start = end
00271 end += 4
00272 (length,) = _struct_I.unpack(str[start:end])
00273 self.path.joint_names = []
00274 for i in xrange(0, length):
00275 start = end
00276 end += 4
00277 (length,) = _struct_I.unpack(str[start:end])
00278 start = end
00279 end += length
00280 val1 = str[start:end]
00281 self.path.joint_names.append(val1)
00282 start = end
00283 end += 4
00284 (length,) = _struct_I.unpack(str[start:end])
00285 self.path.points = []
00286 for i in xrange(0, length):
00287 val1 = motion_planning_msgs.msg.JointPathPoint()
00288 start = end
00289 end += 4
00290 (length,) = _struct_I.unpack(str[start:end])
00291 pattern = '<%sd'%length
00292 start = end
00293 end += struct.calcsize(pattern)
00294 val1.positions = struct.unpack(pattern, str[start:end])
00295 self.path.points.append(val1)
00296 _x = self
00297 start = end
00298 end += 12
00299 (_x.robot_state.joint_state.header.seq, _x.robot_state.joint_state.header.stamp.secs, _x.robot_state.joint_state.header.stamp.nsecs,) = _struct_3I.unpack(str[start:end])
00300 start = end
00301 end += 4
00302 (length,) = _struct_I.unpack(str[start:end])
00303 start = end
00304 end += length
00305 self.robot_state.joint_state.header.frame_id = str[start:end]
00306 start = end
00307 end += 4
00308 (length,) = _struct_I.unpack(str[start:end])
00309 self.robot_state.joint_state.name = []
00310 for i in xrange(0, length):
00311 start = end
00312 end += 4
00313 (length,) = _struct_I.unpack(str[start:end])
00314 start = end
00315 end += length
00316 val1 = str[start:end]
00317 self.robot_state.joint_state.name.append(val1)
00318 start = end
00319 end += 4
00320 (length,) = _struct_I.unpack(str[start:end])
00321 pattern = '<%sd'%length
00322 start = end
00323 end += struct.calcsize(pattern)
00324 self.robot_state.joint_state.position = struct.unpack(pattern, str[start:end])
00325 start = end
00326 end += 4
00327 (length,) = _struct_I.unpack(str[start:end])
00328 pattern = '<%sd'%length
00329 start = end
00330 end += struct.calcsize(pattern)
00331 self.robot_state.joint_state.velocity = struct.unpack(pattern, str[start:end])
00332 start = end
00333 end += 4
00334 (length,) = _struct_I.unpack(str[start:end])
00335 pattern = '<%sd'%length
00336 start = end
00337 end += struct.calcsize(pattern)
00338 self.robot_state.joint_state.effort = struct.unpack(pattern, str[start:end])
00339 _x = self
00340 start = end
00341 end += 8
00342 (_x.robot_state.multi_dof_joint_state.stamp.secs, _x.robot_state.multi_dof_joint_state.stamp.nsecs,) = _struct_2I.unpack(str[start:end])
00343 start = end
00344 end += 4
00345 (length,) = _struct_I.unpack(str[start:end])
00346 self.robot_state.multi_dof_joint_state.joint_names = []
00347 for i in xrange(0, length):
00348 start = end
00349 end += 4
00350 (length,) = _struct_I.unpack(str[start:end])
00351 start = end
00352 end += length
00353 val1 = str[start:end]
00354 self.robot_state.multi_dof_joint_state.joint_names.append(val1)
00355 start = end
00356 end += 4
00357 (length,) = _struct_I.unpack(str[start:end])
00358 self.robot_state.multi_dof_joint_state.frame_ids = []
00359 for i in xrange(0, length):
00360 start = end
00361 end += 4
00362 (length,) = _struct_I.unpack(str[start:end])
00363 start = end
00364 end += length
00365 val1 = str[start:end]
00366 self.robot_state.multi_dof_joint_state.frame_ids.append(val1)
00367 start = end
00368 end += 4
00369 (length,) = _struct_I.unpack(str[start:end])
00370 self.robot_state.multi_dof_joint_state.child_frame_ids = []
00371 for i in xrange(0, length):
00372 start = end
00373 end += 4
00374 (length,) = _struct_I.unpack(str[start:end])
00375 start = end
00376 end += length
00377 val1 = str[start:end]
00378 self.robot_state.multi_dof_joint_state.child_frame_ids.append(val1)
00379 start = end
00380 end += 4
00381 (length,) = _struct_I.unpack(str[start:end])
00382 self.robot_state.multi_dof_joint_state.poses = []
00383 for i in xrange(0, length):
00384 val1 = geometry_msgs.msg.Pose()
00385 _v3 = val1.position
00386 _x = _v3
00387 start = end
00388 end += 24
00389 (_x.x, _x.y, _x.z,) = _struct_3d.unpack(str[start:end])
00390 _v4 = val1.orientation
00391 _x = _v4
00392 start = end
00393 end += 32
00394 (_x.x, _x.y, _x.z, _x.w,) = _struct_4d.unpack(str[start:end])
00395 self.robot_state.multi_dof_joint_state.poses.append(val1)
00396 return self
00397 except struct.error, e:
00398 raise roslib.message.DeserializationError(e)
00399
00400
00401 def serialize_numpy(self, buff, numpy):
00402 """
00403 serialize message with numpy array types into buffer
00404 @param buff: buffer
00405 @type buff: StringIO
00406 @param numpy: numpy python module
00407 @type numpy module
00408 """
00409 try:
00410 _x = self.model_id
00411 length = len(_x)
00412 buff.write(struct.pack('<I%ss'%length, length, _x))
00413 _x = self
00414 buff.write(_struct_3I.pack(_x.path.header.seq, _x.path.header.stamp.secs, _x.path.header.stamp.nsecs))
00415 _x = self.path.header.frame_id
00416 length = len(_x)
00417 buff.write(struct.pack('<I%ss'%length, length, _x))
00418 length = len(self.path.joint_names)
00419 buff.write(_struct_I.pack(length))
00420 for val1 in self.path.joint_names:
00421 length = len(val1)
00422 buff.write(struct.pack('<I%ss'%length, length, val1))
00423 length = len(self.path.points)
00424 buff.write(_struct_I.pack(length))
00425 for val1 in self.path.points:
00426 length = len(val1.positions)
00427 buff.write(_struct_I.pack(length))
00428 pattern = '<%sd'%length
00429 buff.write(val1.positions.tostring())
00430 _x = self
00431 buff.write(_struct_3I.pack(_x.robot_state.joint_state.header.seq, _x.robot_state.joint_state.header.stamp.secs, _x.robot_state.joint_state.header.stamp.nsecs))
00432 _x = self.robot_state.joint_state.header.frame_id
00433 length = len(_x)
00434 buff.write(struct.pack('<I%ss'%length, length, _x))
00435 length = len(self.robot_state.joint_state.name)
00436 buff.write(_struct_I.pack(length))
00437 for val1 in self.robot_state.joint_state.name:
00438 length = len(val1)
00439 buff.write(struct.pack('<I%ss'%length, length, val1))
00440 length = len(self.robot_state.joint_state.position)
00441 buff.write(_struct_I.pack(length))
00442 pattern = '<%sd'%length
00443 buff.write(self.robot_state.joint_state.position.tostring())
00444 length = len(self.robot_state.joint_state.velocity)
00445 buff.write(_struct_I.pack(length))
00446 pattern = '<%sd'%length
00447 buff.write(self.robot_state.joint_state.velocity.tostring())
00448 length = len(self.robot_state.joint_state.effort)
00449 buff.write(_struct_I.pack(length))
00450 pattern = '<%sd'%length
00451 buff.write(self.robot_state.joint_state.effort.tostring())
00452 _x = self
00453 buff.write(_struct_2I.pack(_x.robot_state.multi_dof_joint_state.stamp.secs, _x.robot_state.multi_dof_joint_state.stamp.nsecs))
00454 length = len(self.robot_state.multi_dof_joint_state.joint_names)
00455 buff.write(_struct_I.pack(length))
00456 for val1 in self.robot_state.multi_dof_joint_state.joint_names:
00457 length = len(val1)
00458 buff.write(struct.pack('<I%ss'%length, length, val1))
00459 length = len(self.robot_state.multi_dof_joint_state.frame_ids)
00460 buff.write(_struct_I.pack(length))
00461 for val1 in self.robot_state.multi_dof_joint_state.frame_ids:
00462 length = len(val1)
00463 buff.write(struct.pack('<I%ss'%length, length, val1))
00464 length = len(self.robot_state.multi_dof_joint_state.child_frame_ids)
00465 buff.write(_struct_I.pack(length))
00466 for val1 in self.robot_state.multi_dof_joint_state.child_frame_ids:
00467 length = len(val1)
00468 buff.write(struct.pack('<I%ss'%length, length, val1))
00469 length = len(self.robot_state.multi_dof_joint_state.poses)
00470 buff.write(_struct_I.pack(length))
00471 for val1 in self.robot_state.multi_dof_joint_state.poses:
00472 _v5 = val1.position
00473 _x = _v5
00474 buff.write(_struct_3d.pack(_x.x, _x.y, _x.z))
00475 _v6 = val1.orientation
00476 _x = _v6
00477 buff.write(_struct_4d.pack(_x.x, _x.y, _x.z, _x.w))
00478 except struct.error, se: self._check_types(se)
00479 except TypeError, te: self._check_types(te)
00480
00481 def deserialize_numpy(self, str, numpy):
00482 """
00483 unpack serialized message in str into this message instance using numpy for array types
00484 @param str: byte array of serialized message
00485 @type str: str
00486 @param numpy: numpy python module
00487 @type numpy: module
00488 """
00489 try:
00490 if self.path is None:
00491 self.path = motion_planning_msgs.msg.JointPath()
00492 if self.robot_state is None:
00493 self.robot_state = motion_planning_msgs.msg.RobotState()
00494 end = 0
00495 start = end
00496 end += 4
00497 (length,) = _struct_I.unpack(str[start:end])
00498 start = end
00499 end += length
00500 self.model_id = str[start:end]
00501 _x = self
00502 start = end
00503 end += 12
00504 (_x.path.header.seq, _x.path.header.stamp.secs, _x.path.header.stamp.nsecs,) = _struct_3I.unpack(str[start:end])
00505 start = end
00506 end += 4
00507 (length,) = _struct_I.unpack(str[start:end])
00508 start = end
00509 end += length
00510 self.path.header.frame_id = str[start:end]
00511 start = end
00512 end += 4
00513 (length,) = _struct_I.unpack(str[start:end])
00514 self.path.joint_names = []
00515 for i in xrange(0, length):
00516 start = end
00517 end += 4
00518 (length,) = _struct_I.unpack(str[start:end])
00519 start = end
00520 end += length
00521 val1 = str[start:end]
00522 self.path.joint_names.append(val1)
00523 start = end
00524 end += 4
00525 (length,) = _struct_I.unpack(str[start:end])
00526 self.path.points = []
00527 for i in xrange(0, length):
00528 val1 = motion_planning_msgs.msg.JointPathPoint()
00529 start = end
00530 end += 4
00531 (length,) = _struct_I.unpack(str[start:end])
00532 pattern = '<%sd'%length
00533 start = end
00534 end += struct.calcsize(pattern)
00535 val1.positions = numpy.frombuffer(str[start:end], dtype=numpy.float64, count=length)
00536 self.path.points.append(val1)
00537 _x = self
00538 start = end
00539 end += 12
00540 (_x.robot_state.joint_state.header.seq, _x.robot_state.joint_state.header.stamp.secs, _x.robot_state.joint_state.header.stamp.nsecs,) = _struct_3I.unpack(str[start:end])
00541 start = end
00542 end += 4
00543 (length,) = _struct_I.unpack(str[start:end])
00544 start = end
00545 end += length
00546 self.robot_state.joint_state.header.frame_id = str[start:end]
00547 start = end
00548 end += 4
00549 (length,) = _struct_I.unpack(str[start:end])
00550 self.robot_state.joint_state.name = []
00551 for i in xrange(0, length):
00552 start = end
00553 end += 4
00554 (length,) = _struct_I.unpack(str[start:end])
00555 start = end
00556 end += length
00557 val1 = str[start:end]
00558 self.robot_state.joint_state.name.append(val1)
00559 start = end
00560 end += 4
00561 (length,) = _struct_I.unpack(str[start:end])
00562 pattern = '<%sd'%length
00563 start = end
00564 end += struct.calcsize(pattern)
00565 self.robot_state.joint_state.position = numpy.frombuffer(str[start:end], dtype=numpy.float64, count=length)
00566 start = end
00567 end += 4
00568 (length,) = _struct_I.unpack(str[start:end])
00569 pattern = '<%sd'%length
00570 start = end
00571 end += struct.calcsize(pattern)
00572 self.robot_state.joint_state.velocity = numpy.frombuffer(str[start:end], dtype=numpy.float64, count=length)
00573 start = end
00574 end += 4
00575 (length,) = _struct_I.unpack(str[start:end])
00576 pattern = '<%sd'%length
00577 start = end
00578 end += struct.calcsize(pattern)
00579 self.robot_state.joint_state.effort = numpy.frombuffer(str[start:end], dtype=numpy.float64, count=length)
00580 _x = self
00581 start = end
00582 end += 8
00583 (_x.robot_state.multi_dof_joint_state.stamp.secs, _x.robot_state.multi_dof_joint_state.stamp.nsecs,) = _struct_2I.unpack(str[start:end])
00584 start = end
00585 end += 4
00586 (length,) = _struct_I.unpack(str[start:end])
00587 self.robot_state.multi_dof_joint_state.joint_names = []
00588 for i in xrange(0, length):
00589 start = end
00590 end += 4
00591 (length,) = _struct_I.unpack(str[start:end])
00592 start = end
00593 end += length
00594 val1 = str[start:end]
00595 self.robot_state.multi_dof_joint_state.joint_names.append(val1)
00596 start = end
00597 end += 4
00598 (length,) = _struct_I.unpack(str[start:end])
00599 self.robot_state.multi_dof_joint_state.frame_ids = []
00600 for i in xrange(0, length):
00601 start = end
00602 end += 4
00603 (length,) = _struct_I.unpack(str[start:end])
00604 start = end
00605 end += length
00606 val1 = str[start:end]
00607 self.robot_state.multi_dof_joint_state.frame_ids.append(val1)
00608 start = end
00609 end += 4
00610 (length,) = _struct_I.unpack(str[start:end])
00611 self.robot_state.multi_dof_joint_state.child_frame_ids = []
00612 for i in xrange(0, length):
00613 start = end
00614 end += 4
00615 (length,) = _struct_I.unpack(str[start:end])
00616 start = end
00617 end += length
00618 val1 = str[start:end]
00619 self.robot_state.multi_dof_joint_state.child_frame_ids.append(val1)
00620 start = end
00621 end += 4
00622 (length,) = _struct_I.unpack(str[start:end])
00623 self.robot_state.multi_dof_joint_state.poses = []
00624 for i in xrange(0, length):
00625 val1 = geometry_msgs.msg.Pose()
00626 _v7 = val1.position
00627 _x = _v7
00628 start = end
00629 end += 24
00630 (_x.x, _x.y, _x.z,) = _struct_3d.unpack(str[start:end])
00631 _v8 = val1.orientation
00632 _x = _v8
00633 start = end
00634 end += 32
00635 (_x.x, _x.y, _x.z, _x.w,) = _struct_4d.unpack(str[start:end])
00636 self.robot_state.multi_dof_joint_state.poses.append(val1)
00637 return self
00638 except struct.error, e:
00639 raise roslib.message.DeserializationError(e)
00640
00641 _struct_I = roslib.message.struct_I
00642 _struct_4d = struct.Struct("<4d")
00643 _struct_3I = struct.Struct("<3I")
00644 _struct_2I = struct.Struct("<2I")
00645 _struct_3d = struct.Struct("<3d")