00001 """autogenerated by genmsg_py from GetModelPriorSrvRequest.msg. Do not edit."""
00002 import roslib.message
00003 import struct
00004
00005
00006 class GetModelPriorSrvRequest(roslib.message.Message):
00007 _md5sum = "d41d8cd98f00b204e9800998ecf8427e"
00008 _type = "articulation_msgs/GetModelPriorSrvRequest"
00009 _has_header = False
00010 _full_text = """
00011
00012
00013
00014
00015
00016
00017 """
00018 __slots__ = []
00019 _slot_types = []
00020
00021 def __init__(self, *args, **kwds):
00022 """
00023 Constructor. Any message fields that are implicitly/explicitly
00024 set to None will be assigned a default value. The recommend
00025 use is keyword arguments as this is more robust to future message
00026 changes. You cannot mix in-order arguments and keyword arguments.
00027
00028 The available fields are:
00029
00030
00031 @param args: complete set of field values, in .msg order
00032 @param kwds: use keyword arguments corresponding to message field names
00033 to set specific fields.
00034 """
00035 if args or kwds:
00036 super(GetModelPriorSrvRequest, self).__init__(*args, **kwds)
00037
00038 def _get_types(self):
00039 """
00040 internal API method
00041 """
00042 return self._slot_types
00043
00044 def serialize(self, buff):
00045 """
00046 serialize message into buffer
00047 @param buff: buffer
00048 @type buff: StringIO
00049 """
00050 try:
00051 pass
00052 except struct.error, se: self._check_types(se)
00053 except TypeError, te: self._check_types(te)
00054
00055 def deserialize(self, str):
00056 """
00057 unpack serialized message in str into this message instance
00058 @param str: byte array of serialized message
00059 @type str: str
00060 """
00061 try:
00062 end = 0
00063 return self
00064 except struct.error, e:
00065 raise roslib.message.DeserializationError(e)
00066
00067
00068 def serialize_numpy(self, buff, numpy):
00069 """
00070 serialize message with numpy array types into buffer
00071 @param buff: buffer
00072 @type buff: StringIO
00073 @param numpy: numpy python module
00074 @type numpy module
00075 """
00076 try:
00077 pass
00078 except struct.error, se: self._check_types(se)
00079 except TypeError, te: self._check_types(te)
00080
00081 def deserialize_numpy(self, str, numpy):
00082 """
00083 unpack serialized message in str into this message instance using numpy for array types
00084 @param str: byte array of serialized message
00085 @type str: str
00086 @param numpy: numpy python module
00087 @type numpy: module
00088 """
00089 try:
00090 end = 0
00091 return self
00092 except struct.error, e:
00093 raise roslib.message.DeserializationError(e)
00094
00095 _struct_I = roslib.message.struct_I
00096 """autogenerated by genmsg_py from GetModelPriorSrvResponse.msg. Do not edit."""
00097 import roslib.message
00098 import struct
00099
00100 import sensor_msgs.msg
00101 import geometry_msgs.msg
00102 import articulation_msgs.msg
00103 import std_msgs.msg
00104
00105 class GetModelPriorSrvResponse(roslib.message.Message):
00106 _md5sum = "056375d531bc6dcbc8a3fedb4b45371f"
00107 _type = "articulation_msgs/GetModelPriorSrvResponse"
00108 _has_header = False
00109 _full_text = """articulation_msgs/ModelMsg[] model
00110
00111
00112 ================================================================================
00113 MSG: articulation_msgs/ModelMsg
00114 # Single kinematic model
00115 #
00116 # A kinematic model is defined by its model class name, and a set of parameters.
00117 # The client may additionally specify a model id, that can be used to colorize the
00118 # model when visualized using the RVIZ model display.
00119 #
00120 # For a list of currently implemented models, see the documetation at
00121 # http://www.ros.org/wiki/articulation_models
00122 #
00123 #
00124
00125 Header header # frame and timestamp
00126
00127 int32 id # user specified model id
00128 string name # name of the model family (e.g. "rotational",
00129 # "prismatic", "pca-gp", "rigid")
00130 articulation_msgs/ParamMsg[] params # model parameters
00131 articulation_msgs/TrackMsg track # trajectory from which the model is estimated, or
00132 # that is evaluated using the model
00133
00134 ================================================================================
00135 MSG: std_msgs/Header
00136 # Standard metadata for higher-level stamped data types.
00137 # This is generally used to communicate timestamped data
00138 # in a particular coordinate frame.
00139 #
00140 # sequence ID: consecutively increasing ID
00141 uint32 seq
00142 #Two-integer timestamp that is expressed as:
00143 # * stamp.secs: seconds (stamp_secs) since epoch
00144 # * stamp.nsecs: nanoseconds since stamp_secs
00145 # time-handling sugar is provided by the client library
00146 time stamp
00147 #Frame this data is associated with
00148 # 0: no frame
00149 # 1: global frame
00150 string frame_id
00151
00152 ================================================================================
00153 MSG: articulation_msgs/ParamMsg
00154 # Single parameter passed to or from model fitting
00155 #
00156 # This mechanism allows to flexibly pass parameters to
00157 # model fitting (and vice versa). Note that these parameters
00158 # are model-specific: A client may supply additional
00159 # parameters to the model estimator, and, similarly, a estimator
00160 # may add the estimated model parameters to the model message.
00161 # When the model is then evaluated, for example to make predictions
00162 # or to compute the likelihood, the model class can then use
00163 # these parameters.
00164 #
00165 # A parameter has a name, a value, and a type. The type globally
00166 # indicates whether it is a prior parameter (prior to model fitting),
00167 # or a model parameter (found during model fitting, using a maximum-
00168 # likelihood estimator), or a cached evaluation (e.g., the likelihood
00169 # or the BIC are a typical "side"-product of model estimation, and
00170 # can therefore already be cached).
00171 #
00172 # For a list of currently used parameters, see the documentation at
00173 # http://www.ros.org/wiki/articulation_models
00174 #
00175
00176 uint8 PRIOR=0 # indicates a prior model parameter
00177 # (e.g., "sigma_position")
00178 uint8 PARAM=1 # indicates a estimated model parameter
00179 # (e.g., "rot_radius", the estimated radius)
00180 uint8 EVAL=2 # indicates a cached evaluation of the model, given
00181 # the current trajectory
00182 # (e.g., "loglikelihood", the log likelihood of the
00183 # data, given the model and its parameters)
00184
00185 string name # name of the parameter
00186 float64 value # value of the parameter
00187 uint8 type # type of the parameter (PRIOR, PARAM, EVAL)
00188
00189
00190 ================================================================================
00191 MSG: articulation_msgs/TrackMsg
00192 # Single kinematic trajectory
00193 #
00194 # This message contains a kinematic trajectory. The trajectory is specified
00195 # as a vector of 6D poses. An additional flag, track_type, indicates whether
00196 # the track is valid, and whether it includes orientation. The track id
00197 # can be used for automatic coloring in the RVIZ track plugin, and can be
00198 # freely chosen by the client.
00199 #
00200 # A model is fitting only from the trajectory stored in the pose[]-vector.
00201 # Additional information may be associated to each pose using the channels
00202 # vector, with arbitrary # fields (e.g., to include applied/measured forces).
00203 #
00204 # After model evaluation,
00205 # also the associated configurations of the object are stored in the channels,
00206 # named "q[0]".."q[DOF-1]", where DOF is the number of degrees of freedom.
00207 # Model evaluation also projects the poses in the pose vector onto the model,
00208 # and stores these ideal poses in the vector pose_projected. Further, during model
00209 # evaluation, a new set of (uniform) configurations over the valid configuration
00210 # range is sampled, and the result is stored in pose_resampled.
00211 # The vector pose_flags contains additional display flags for the poses in the
00212 # pose vector, for example, whether a pose is visible and/or
00213 # the end of a trajectory segment. At the moment, this is only used by the
00214 # prior_model_learner.
00215 #
00216
00217 Header header # Timestamp and frame
00218 int32 id # used-specified track id
00219
00220 geometry_msgs/Pose[] pose # sequence of poses, defining the observed trajectory
00221 geometry_msgs/Pose[] pose_projected # sequence of poses, projected to the model
00222 # (after model evaluation)
00223 geometry_msgs/Pose[] pose_resampled # sequence of poses, re-sampled from the model in
00224 # the valid configuration range
00225 uint32[] pose_flags # bit-wise combination of POSE_VISIBLE and POSE_END_OF_SEGMENT
00226
00227 uint32 POSE_VISIBLE=1
00228 uint32 POSE_END_OF_SEGMENT=2
00229
00230 # Each channel should have the same number of elements as pose array,
00231 # and the data in each channel should correspond 1:1 with each pose
00232 # possible channels: "width", "height", "rgb", ...
00233 sensor_msgs/ChannelFloat32[] channels
00234
00235
00236
00237 ================================================================================
00238 MSG: geometry_msgs/Pose
00239 # A representation of pose in free space, composed of postion and orientation.
00240 Point position
00241 Quaternion orientation
00242
00243 ================================================================================
00244 MSG: geometry_msgs/Point
00245 # This contains the position of a point in free space
00246 float64 x
00247 float64 y
00248 float64 z
00249
00250 ================================================================================
00251 MSG: geometry_msgs/Quaternion
00252 # This represents an orientation in free space in quaternion form.
00253
00254 float64 x
00255 float64 y
00256 float64 z
00257 float64 w
00258
00259 ================================================================================
00260 MSG: sensor_msgs/ChannelFloat32
00261 # This message is used by the PointCloud message to hold optional data
00262 # associated with each point in the cloud. The length of the values
00263 # array should be the same as the length of the points array in the
00264 # PointCloud, and each value should be associated with the corresponding
00265 # point.
00266
00267 # Channel names in existing practice include:
00268 # "u", "v" - row and column (respectively) in the left stereo image.
00269 # This is opposite to usual conventions but remains for
00270 # historical reasons. The newer PointCloud2 message has no
00271 # such problem.
00272 # "rgb" - For point clouds produced by color stereo cameras. uint8
00273 # (R,G,B) values packed into the least significant 24 bits,
00274 # in order.
00275 # "intensity" - laser or pixel intensity.
00276 # "distance"
00277
00278 # The channel name should give semantics of the channel (e.g.
00279 # "intensity" instead of "value").
00280 string name
00281
00282 # The values array should be 1-1 with the elements of the associated
00283 # PointCloud.
00284 float32[] values
00285
00286 """
00287 __slots__ = ['model']
00288 _slot_types = ['articulation_msgs/ModelMsg[]']
00289
00290 def __init__(self, *args, **kwds):
00291 """
00292 Constructor. Any message fields that are implicitly/explicitly
00293 set to None will be assigned a default value. The recommend
00294 use is keyword arguments as this is more robust to future message
00295 changes. You cannot mix in-order arguments and keyword arguments.
00296
00297 The available fields are:
00298 model
00299
00300 @param args: complete set of field values, in .msg order
00301 @param kwds: use keyword arguments corresponding to message field names
00302 to set specific fields.
00303 """
00304 if args or kwds:
00305 super(GetModelPriorSrvResponse, self).__init__(*args, **kwds)
00306 #message fields cannot be None, assign default values for those that are
00307 if self.model is None:
00308 self.model = []
00309 else:
00310 self.model = []
00311
00312 def _get_types(self):
00313 """
00314 internal API method
00315 """
00316 return self._slot_types
00317
00318 def serialize(self, buff):
00319 """
00320 serialize message into buffer
00321 @param buff: buffer
00322 @type buff: StringIO
00323 """
00324 try:
00325 length = len(self.model)
00326 buff.write(_struct_I.pack(length))
00327 for val1 in self.model:
00328 _v1 = val1.header
00329 buff.write(_struct_I.pack(_v1.seq))
00330 _v2 = _v1.stamp
00331 _x = _v2
00332 buff.write(_struct_2I.pack(_x.secs, _x.nsecs))
00333 _x = _v1.frame_id
00334 length = len(_x)
00335 buff.write(struct.pack('<I%ss'%length, length, _x))
00336 buff.write(_struct_i.pack(val1.id))
00337 _x = val1.name
00338 length = len(_x)
00339 buff.write(struct.pack('<I%ss'%length, length, _x))
00340 length = len(val1.params)
00341 buff.write(_struct_I.pack(length))
00342 for val2 in val1.params:
00343 _x = val2.name
00344 length = len(_x)
00345 buff.write(struct.pack('<I%ss'%length, length, _x))
00346 _x = val2
00347 buff.write(_struct_dB.pack(_x.value, _x.type))
00348 _v3 = val1.track
00349 _v4 = _v3.header
00350 buff.write(_struct_I.pack(_v4.seq))
00351 _v5 = _v4.stamp
00352 _x = _v5
00353 buff.write(_struct_2I.pack(_x.secs, _x.nsecs))
00354 _x = _v4.frame_id
00355 length = len(_x)
00356 buff.write(struct.pack('<I%ss'%length, length, _x))
00357 buff.write(_struct_i.pack(_v3.id))
00358 length = len(_v3.pose)
00359 buff.write(_struct_I.pack(length))
00360 for val3 in _v3.pose:
00361 _v6 = val3.position
00362 _x = _v6
00363 buff.write(_struct_3d.pack(_x.x, _x.y, _x.z))
00364 _v7 = val3.orientation
00365 _x = _v7
00366 buff.write(_struct_4d.pack(_x.x, _x.y, _x.z, _x.w))
00367 length = len(_v3.pose_projected)
00368 buff.write(_struct_I.pack(length))
00369 for val3 in _v3.pose_projected:
00370 _v8 = val3.position
00371 _x = _v8
00372 buff.write(_struct_3d.pack(_x.x, _x.y, _x.z))
00373 _v9 = val3.orientation
00374 _x = _v9
00375 buff.write(_struct_4d.pack(_x.x, _x.y, _x.z, _x.w))
00376 length = len(_v3.pose_resampled)
00377 buff.write(_struct_I.pack(length))
00378 for val3 in _v3.pose_resampled:
00379 _v10 = val3.position
00380 _x = _v10
00381 buff.write(_struct_3d.pack(_x.x, _x.y, _x.z))
00382 _v11 = val3.orientation
00383 _x = _v11
00384 buff.write(_struct_4d.pack(_x.x, _x.y, _x.z, _x.w))
00385 length = len(_v3.pose_flags)
00386 buff.write(_struct_I.pack(length))
00387 pattern = '<%sI'%length
00388 buff.write(struct.pack(pattern, *_v3.pose_flags))
00389 length = len(_v3.channels)
00390 buff.write(_struct_I.pack(length))
00391 for val3 in _v3.channels:
00392 _x = val3.name
00393 length = len(_x)
00394 buff.write(struct.pack('<I%ss'%length, length, _x))
00395 length = len(val3.values)
00396 buff.write(_struct_I.pack(length))
00397 pattern = '<%sf'%length
00398 buff.write(struct.pack(pattern, *val3.values))
00399 except struct.error, se: self._check_types(se)
00400 except TypeError, te: self._check_types(te)
00401
00402 def deserialize(self, str):
00403 """
00404 unpack serialized message in str into this message instance
00405 @param str: byte array of serialized message
00406 @type str: str
00407 """
00408 try:
00409 end = 0
00410 start = end
00411 end += 4
00412 (length,) = _struct_I.unpack(str[start:end])
00413 self.model = []
00414 for i in xrange(0, length):
00415 val1 = articulation_msgs.msg.ModelMsg()
00416 _v12 = val1.header
00417 start = end
00418 end += 4
00419 (_v12.seq,) = _struct_I.unpack(str[start:end])
00420 _v13 = _v12.stamp
00421 _x = _v13
00422 start = end
00423 end += 8
00424 (_x.secs, _x.nsecs,) = _struct_2I.unpack(str[start:end])
00425 start = end
00426 end += 4
00427 (length,) = _struct_I.unpack(str[start:end])
00428 start = end
00429 end += length
00430 _v12.frame_id = str[start:end]
00431 start = end
00432 end += 4
00433 (val1.id,) = _struct_i.unpack(str[start:end])
00434 start = end
00435 end += 4
00436 (length,) = _struct_I.unpack(str[start:end])
00437 start = end
00438 end += length
00439 val1.name = str[start:end]
00440 start = end
00441 end += 4
00442 (length,) = _struct_I.unpack(str[start:end])
00443 val1.params = []
00444 for i in xrange(0, length):
00445 val2 = articulation_msgs.msg.ParamMsg()
00446 start = end
00447 end += 4
00448 (length,) = _struct_I.unpack(str[start:end])
00449 start = end
00450 end += length
00451 val2.name = str[start:end]
00452 _x = val2
00453 start = end
00454 end += 9
00455 (_x.value, _x.type,) = _struct_dB.unpack(str[start:end])
00456 val1.params.append(val2)
00457 _v14 = val1.track
00458 _v15 = _v14.header
00459 start = end
00460 end += 4
00461 (_v15.seq,) = _struct_I.unpack(str[start:end])
00462 _v16 = _v15.stamp
00463 _x = _v16
00464 start = end
00465 end += 8
00466 (_x.secs, _x.nsecs,) = _struct_2I.unpack(str[start:end])
00467 start = end
00468 end += 4
00469 (length,) = _struct_I.unpack(str[start:end])
00470 start = end
00471 end += length
00472 _v15.frame_id = str[start:end]
00473 start = end
00474 end += 4
00475 (_v14.id,) = _struct_i.unpack(str[start:end])
00476 start = end
00477 end += 4
00478 (length,) = _struct_I.unpack(str[start:end])
00479 _v14.pose = []
00480 for i in xrange(0, length):
00481 val3 = geometry_msgs.msg.Pose()
00482 _v17 = val3.position
00483 _x = _v17
00484 start = end
00485 end += 24
00486 (_x.x, _x.y, _x.z,) = _struct_3d.unpack(str[start:end])
00487 _v18 = val3.orientation
00488 _x = _v18
00489 start = end
00490 end += 32
00491 (_x.x, _x.y, _x.z, _x.w,) = _struct_4d.unpack(str[start:end])
00492 _v14.pose.append(val3)
00493 start = end
00494 end += 4
00495 (length,) = _struct_I.unpack(str[start:end])
00496 _v14.pose_projected = []
00497 for i in xrange(0, length):
00498 val3 = geometry_msgs.msg.Pose()
00499 _v19 = val3.position
00500 _x = _v19
00501 start = end
00502 end += 24
00503 (_x.x, _x.y, _x.z,) = _struct_3d.unpack(str[start:end])
00504 _v20 = val3.orientation
00505 _x = _v20
00506 start = end
00507 end += 32
00508 (_x.x, _x.y, _x.z, _x.w,) = _struct_4d.unpack(str[start:end])
00509 _v14.pose_projected.append(val3)
00510 start = end
00511 end += 4
00512 (length,) = _struct_I.unpack(str[start:end])
00513 _v14.pose_resampled = []
00514 for i in xrange(0, length):
00515 val3 = geometry_msgs.msg.Pose()
00516 _v21 = val3.position
00517 _x = _v21
00518 start = end
00519 end += 24
00520 (_x.x, _x.y, _x.z,) = _struct_3d.unpack(str[start:end])
00521 _v22 = val3.orientation
00522 _x = _v22
00523 start = end
00524 end += 32
00525 (_x.x, _x.y, _x.z, _x.w,) = _struct_4d.unpack(str[start:end])
00526 _v14.pose_resampled.append(val3)
00527 start = end
00528 end += 4
00529 (length,) = _struct_I.unpack(str[start:end])
00530 pattern = '<%sI'%length
00531 start = end
00532 end += struct.calcsize(pattern)
00533 _v14.pose_flags = struct.unpack(pattern, str[start:end])
00534 start = end
00535 end += 4
00536 (length,) = _struct_I.unpack(str[start:end])
00537 _v14.channels = []
00538 for i in xrange(0, length):
00539 val3 = sensor_msgs.msg.ChannelFloat32()
00540 start = end
00541 end += 4
00542 (length,) = _struct_I.unpack(str[start:end])
00543 start = end
00544 end += length
00545 val3.name = str[start:end]
00546 start = end
00547 end += 4
00548 (length,) = _struct_I.unpack(str[start:end])
00549 pattern = '<%sf'%length
00550 start = end
00551 end += struct.calcsize(pattern)
00552 val3.values = struct.unpack(pattern, str[start:end])
00553 _v14.channels.append(val3)
00554 self.model.append(val1)
00555 return self
00556 except struct.error, e:
00557 raise roslib.message.DeserializationError(e) #most likely buffer underfill
00558
00559
00560 def serialize_numpy(self, buff, numpy):
00561 """
00562 serialize message with numpy array types into buffer
00563 @param buff: buffer
00564 @type buff: StringIO
00565 @param numpy: numpy python module
00566 @type numpy module
00567 """
00568 try:
00569 length = len(self.model)
00570 buff.write(_struct_I.pack(length))
00571 for val1 in self.model:
00572 _v23 = val1.header
00573 buff.write(_struct_I.pack(_v23.seq))
00574 _v24 = _v23.stamp
00575 _x = _v24
00576 buff.write(_struct_2I.pack(_x.secs, _x.nsecs))
00577 _x = _v23.frame_id
00578 length = len(_x)
00579 buff.write(struct.pack('<I%ss'%length, length, _x))
00580 buff.write(_struct_i.pack(val1.id))
00581 _x = val1.name
00582 length = len(_x)
00583 buff.write(struct.pack('<I%ss'%length, length, _x))
00584 length = len(val1.params)
00585 buff.write(_struct_I.pack(length))
00586 for val2 in val1.params:
00587 _x = val2.name
00588 length = len(_x)
00589 buff.write(struct.pack('<I%ss'%length, length, _x))
00590 _x = val2
00591 buff.write(_struct_dB.pack(_x.value, _x.type))
00592 _v25 = val1.track
00593 _v26 = _v25.header
00594 buff.write(_struct_I.pack(_v26.seq))
00595 _v27 = _v26.stamp
00596 _x = _v27
00597 buff.write(_struct_2I.pack(_x.secs, _x.nsecs))
00598 _x = _v26.frame_id
00599 length = len(_x)
00600 buff.write(struct.pack('<I%ss'%length, length, _x))
00601 buff.write(_struct_i.pack(_v25.id))
00602 length = len(_v25.pose)
00603 buff.write(_struct_I.pack(length))
00604 for val3 in _v25.pose:
00605 _v28 = val3.position
00606 _x = _v28
00607 buff.write(_struct_3d.pack(_x.x, _x.y, _x.z))
00608 _v29 = val3.orientation
00609 _x = _v29
00610 buff.write(_struct_4d.pack(_x.x, _x.y, _x.z, _x.w))
00611 length = len(_v25.pose_projected)
00612 buff.write(_struct_I.pack(length))
00613 for val3 in _v25.pose_projected:
00614 _v30 = val3.position
00615 _x = _v30
00616 buff.write(_struct_3d.pack(_x.x, _x.y, _x.z))
00617 _v31 = val3.orientation
00618 _x = _v31
00619 buff.write(_struct_4d.pack(_x.x, _x.y, _x.z, _x.w))
00620 length = len(_v25.pose_resampled)
00621 buff.write(_struct_I.pack(length))
00622 for val3 in _v25.pose_resampled:
00623 _v32 = val3.position
00624 _x = _v32
00625 buff.write(_struct_3d.pack(_x.x, _x.y, _x.z))
00626 _v33 = val3.orientation
00627 _x = _v33
00628 buff.write(_struct_4d.pack(_x.x, _x.y, _x.z, _x.w))
00629 length = len(_v25.pose_flags)
00630 buff.write(_struct_I.pack(length))
00631 pattern = '<%sI'%length
00632 buff.write(_v25.pose_flags.tostring())
00633 length = len(_v25.channels)
00634 buff.write(_struct_I.pack(length))
00635 for val3 in _v25.channels:
00636 _x = val3.name
00637 length = len(_x)
00638 buff.write(struct.pack('<I%ss'%length, length, _x))
00639 length = len(val3.values)
00640 buff.write(_struct_I.pack(length))
00641 pattern = '<%sf'%length
00642 buff.write(val3.values.tostring())
00643 except struct.error, se: self._check_types(se)
00644 except TypeError, te: self._check_types(te)
00645
00646 def deserialize_numpy(self, str, numpy):
00647 """
00648 unpack serialized message in str into this message instance using numpy for array types
00649 @param str: byte array of serialized message
00650 @type str: str
00651 @param numpy: numpy python module
00652 @type numpy: module
00653 """
00654 try:
00655 end = 0
00656 start = end
00657 end += 4
00658 (length,) = _struct_I.unpack(str[start:end])
00659 self.model = []
00660 for i in xrange(0, length):
00661 val1 = articulation_msgs.msg.ModelMsg()
00662 _v34 = val1.header
00663 start = end
00664 end += 4
00665 (_v34.seq,) = _struct_I.unpack(str[start:end])
00666 _v35 = _v34.stamp
00667 _x = _v35
00668 start = end
00669 end += 8
00670 (_x.secs, _x.nsecs,) = _struct_2I.unpack(str[start:end])
00671 start = end
00672 end += 4
00673 (length,) = _struct_I.unpack(str[start:end])
00674 start = end
00675 end += length
00676 _v34.frame_id = str[start:end]
00677 start = end
00678 end += 4
00679 (val1.id,) = _struct_i.unpack(str[start:end])
00680 start = end
00681 end += 4
00682 (length,) = _struct_I.unpack(str[start:end])
00683 start = end
00684 end += length
00685 val1.name = str[start:end]
00686 start = end
00687 end += 4
00688 (length,) = _struct_I.unpack(str[start:end])
00689 val1.params = []
00690 for i in xrange(0, length):
00691 val2 = articulation_msgs.msg.ParamMsg()
00692 start = end
00693 end += 4
00694 (length,) = _struct_I.unpack(str[start:end])
00695 start = end
00696 end += length
00697 val2.name = str[start:end]
00698 _x = val2
00699 start = end
00700 end += 9
00701 (_x.value, _x.type,) = _struct_dB.unpack(str[start:end])
00702 val1.params.append(val2)
00703 _v36 = val1.track
00704 _v37 = _v36.header
00705 start = end
00706 end += 4
00707 (_v37.seq,) = _struct_I.unpack(str[start:end])
00708 _v38 = _v37.stamp
00709 _x = _v38
00710 start = end
00711 end += 8
00712 (_x.secs, _x.nsecs,) = _struct_2I.unpack(str[start:end])
00713 start = end
00714 end += 4
00715 (length,) = _struct_I.unpack(str[start:end])
00716 start = end
00717 end += length
00718 _v37.frame_id = str[start:end]
00719 start = end
00720 end += 4
00721 (_v36.id,) = _struct_i.unpack(str[start:end])
00722 start = end
00723 end += 4
00724 (length,) = _struct_I.unpack(str[start:end])
00725 _v36.pose = []
00726 for i in xrange(0, length):
00727 val3 = geometry_msgs.msg.Pose()
00728 _v39 = val3.position
00729 _x = _v39
00730 start = end
00731 end += 24
00732 (_x.x, _x.y, _x.z,) = _struct_3d.unpack(str[start:end])
00733 _v40 = val3.orientation
00734 _x = _v40
00735 start = end
00736 end += 32
00737 (_x.x, _x.y, _x.z, _x.w,) = _struct_4d.unpack(str[start:end])
00738 _v36.pose.append(val3)
00739 start = end
00740 end += 4
00741 (length,) = _struct_I.unpack(str[start:end])
00742 _v36.pose_projected = []
00743 for i in xrange(0, length):
00744 val3 = geometry_msgs.msg.Pose()
00745 _v41 = val3.position
00746 _x = _v41
00747 start = end
00748 end += 24
00749 (_x.x, _x.y, _x.z,) = _struct_3d.unpack(str[start:end])
00750 _v42 = val3.orientation
00751 _x = _v42
00752 start = end
00753 end += 32
00754 (_x.x, _x.y, _x.z, _x.w,) = _struct_4d.unpack(str[start:end])
00755 _v36.pose_projected.append(val3)
00756 start = end
00757 end += 4
00758 (length,) = _struct_I.unpack(str[start:end])
00759 _v36.pose_resampled = []
00760 for i in xrange(0, length):
00761 val3 = geometry_msgs.msg.Pose()
00762 _v43 = val3.position
00763 _x = _v43
00764 start = end
00765 end += 24
00766 (_x.x, _x.y, _x.z,) = _struct_3d.unpack(str[start:end])
00767 _v44 = val3.orientation
00768 _x = _v44
00769 start = end
00770 end += 32
00771 (_x.x, _x.y, _x.z, _x.w,) = _struct_4d.unpack(str[start:end])
00772 _v36.pose_resampled.append(val3)
00773 start = end
00774 end += 4
00775 (length,) = _struct_I.unpack(str[start:end])
00776 pattern = '<%sI'%length
00777 start = end
00778 end += struct.calcsize(pattern)
00779 _v36.pose_flags = numpy.frombuffer(str[start:end], dtype=numpy.uint32, count=length)
00780 start = end
00781 end += 4
00782 (length,) = _struct_I.unpack(str[start:end])
00783 _v36.channels = []
00784 for i in xrange(0, length):
00785 val3 = sensor_msgs.msg.ChannelFloat32()
00786 start = end
00787 end += 4
00788 (length,) = _struct_I.unpack(str[start:end])
00789 start = end
00790 end += length
00791 val3.name = str[start:end]
00792 start = end
00793 end += 4
00794 (length,) = _struct_I.unpack(str[start:end])
00795 pattern = '<%sf'%length
00796 start = end
00797 end += struct.calcsize(pattern)
00798 val3.values = numpy.frombuffer(str[start:end], dtype=numpy.float32, count=length)
00799 _v36.channels.append(val3)
00800 self.model.append(val1)
00801 return self
00802 except struct.error, e:
00803 raise roslib.message.DeserializationError(e) #most likely buffer underfill
00804
00805 _struct_I = roslib.message.struct_I
00806 _struct_dB = struct.Struct("<dB")
00807 _struct_i = struct.Struct("<i")
00808 _struct_4d = struct.Struct("<4d")
00809 _struct_2I = struct.Struct("<2I")
00810 _struct_3d = struct.Struct("<3d")
00811 class GetModelPriorSrv(roslib.message.ServiceDefinition):
00812 _type = 'articulation_msgs/GetModelPriorSrv'
00813 _md5sum = '056375d531bc6dcbc8a3fedb4b45371f'
00814 _request_class = GetModelPriorSrvRequest
00815 _response_class = GetModelPriorSrvResponse