00001 """autogenerated by genpy from articulation_msgs/AlignModelSrvRequest.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 sensor_msgs.msg
00008 import geometry_msgs.msg
00009 import articulation_msgs.msg
00010 import std_msgs.msg
00011
00012 class AlignModelSrvRequest(genpy.Message):
00013 _md5sum = "5c799f696feeb9619c32ac4dd7352a60"
00014 _type = "articulation_msgs/AlignModelSrvRequest"
00015 _has_header = False
00016 _full_text = """
00017
00018
00019
00020
00021
00022
00023 articulation_msgs/ModelMsg model
00024 articulation_msgs/ModelMsg data
00025
00026 ================================================================================
00027 MSG: articulation_msgs/ModelMsg
00028 # Single kinematic model
00029 #
00030 # A kinematic model is defined by its model class name, and a set of parameters.
00031 # The client may additionally specify a model id, that can be used to colorize the
00032 # model when visualized using the RVIZ model display.
00033 #
00034 # For a list of currently implemented models, see the documetation at
00035 # http://www.ros.org/wiki/articulation_models
00036 #
00037 #
00038
00039 std_msgs/Header header # frame and timestamp
00040
00041 int32 id # user specified model id
00042 string name # name of the model family (e.g. "rotational",
00043 # "prismatic", "pca-gp", "rigid")
00044 articulation_msgs/ParamMsg[] params # model parameters
00045 articulation_msgs/TrackMsg track # trajectory from which the model is estimated, or
00046 # that is evaluated using the model
00047
00048 ================================================================================
00049 MSG: std_msgs/Header
00050 # Standard metadata for higher-level stamped data types.
00051 # This is generally used to communicate timestamped data
00052 # in a particular coordinate frame.
00053 #
00054 # sequence ID: consecutively increasing ID
00055 uint32 seq
00056 #Two-integer timestamp that is expressed as:
00057 # * stamp.secs: seconds (stamp_secs) since epoch
00058 # * stamp.nsecs: nanoseconds since stamp_secs
00059 # time-handling sugar is provided by the client library
00060 time stamp
00061 #Frame this data is associated with
00062 # 0: no frame
00063 # 1: global frame
00064 string frame_id
00065
00066 ================================================================================
00067 MSG: articulation_msgs/ParamMsg
00068 # Single parameter passed to or from model fitting
00069 #
00070 # This mechanism allows to flexibly pass parameters to
00071 # model fitting (and vice versa). Note that these parameters
00072 # are model-specific: A client may supply additional
00073 # parameters to the model estimator, and, similarly, a estimator
00074 # may add the estimated model parameters to the model message.
00075 # When the model is then evaluated, for example to make predictions
00076 # or to compute the likelihood, the model class can then use
00077 # these parameters.
00078 #
00079 # A parameter has a name, a value, and a type. The type globally
00080 # indicates whether it is a prior parameter (prior to model fitting),
00081 # or a model parameter (found during model fitting, using a maximum-
00082 # likelihood estimator), or a cached evaluation (e.g., the likelihood
00083 # or the BIC are a typical "side"-product of model estimation, and
00084 # can therefore already be cached).
00085 #
00086 # For a list of currently used parameters, see the documentation at
00087 # http://www.ros.org/wiki/articulation_models
00088 #
00089
00090 uint8 PRIOR=0 # indicates a prior model parameter
00091 # (e.g., "sigma_position")
00092 uint8 PARAM=1 # indicates a estimated model parameter
00093 # (e.g., "rot_radius", the estimated radius)
00094 uint8 EVAL=2 # indicates a cached evaluation of the model, given
00095 # the current trajectory
00096 # (e.g., "loglikelihood", the log likelihood of the
00097 # data, given the model and its parameters)
00098
00099 string name # name of the parameter
00100 float64 value # value of the parameter
00101 uint8 type # type of the parameter (PRIOR, PARAM, EVAL)
00102
00103
00104 ================================================================================
00105 MSG: articulation_msgs/TrackMsg
00106 # Single kinematic trajectory
00107 #
00108 # This message contains a kinematic trajectory. The trajectory is specified
00109 # as a vector of 6D poses. An additional flag, track_type, indicates whether
00110 # the track is valid, and whether it includes orientation. The track id
00111 # can be used for automatic coloring in the RVIZ track plugin, and can be
00112 # freely chosen by the client.
00113 #
00114 # A model is fitting only from the trajectory stored in the pose[]-vector.
00115 # Additional information may be associated to each pose using the channels
00116 # vector, with arbitrary # fields (e.g., to include applied/measured forces).
00117 #
00118 # After model evaluation,
00119 # also the associated configurations of the object are stored in the channels,
00120 # named "q[0]".."q[DOF-1]", where DOF is the number of degrees of freedom.
00121 # Model evaluation also projects the poses in the pose vector onto the model,
00122 # and stores these ideal poses in the vector pose_projected. Further, during model
00123 # evaluation, a new set of (uniform) configurations over the valid configuration
00124 # range is sampled, and the result is stored in pose_resampled.
00125 # The vector pose_flags contains additional display flags for the poses in the
00126 # pose vector, for example, whether a pose is visible and/or
00127 # the end of a trajectory segment. At the moment, this is only used by the
00128 # prior_model_learner.
00129 #
00130
00131 std_msgs/Header header # frame and timestamp
00132 int32 id # used-specified track id
00133
00134 geometry_msgs/Pose[] pose # sequence of poses, defining the observed trajectory
00135 std_msgs/Header[] pose_headers # Timestamp and frame for each pose (and pose_projected)
00136 geometry_msgs/Pose[] pose_projected # sequence of poses, projected to the model
00137 # (after model evaluation)
00138 geometry_msgs/Pose[] pose_resampled # sequence of poses, re-sampled from the model in
00139 # the valid configuration range
00140 uint32[] pose_flags # bit-wise combination of POSE_VISIBLE and POSE_END_OF_SEGMENT
00141
00142 uint32 POSE_VISIBLE=1
00143 uint32 POSE_END_OF_SEGMENT=2
00144
00145 # Each channel should have the same number of elements as pose array,
00146 # and the data in each channel should correspond 1:1 with each pose
00147 # possible channels: "width", "height", "rgb", ...
00148 sensor_msgs/ChannelFloat32[] channels
00149
00150
00151
00152 ================================================================================
00153 MSG: geometry_msgs/Pose
00154 # A representation of pose in free space, composed of postion and orientation.
00155 Point position
00156 Quaternion orientation
00157
00158 ================================================================================
00159 MSG: geometry_msgs/Point
00160 # This contains the position of a point in free space
00161 float64 x
00162 float64 y
00163 float64 z
00164
00165 ================================================================================
00166 MSG: geometry_msgs/Quaternion
00167 # This represents an orientation in free space in quaternion form.
00168
00169 float64 x
00170 float64 y
00171 float64 z
00172 float64 w
00173
00174 ================================================================================
00175 MSG: sensor_msgs/ChannelFloat32
00176 # This message is used by the PointCloud message to hold optional data
00177 # associated with each point in the cloud. The length of the values
00178 # array should be the same as the length of the points array in the
00179 # PointCloud, and each value should be associated with the corresponding
00180 # point.
00181
00182 # Channel names in existing practice include:
00183 # "u", "v" - row and column (respectively) in the left stereo image.
00184 # This is opposite to usual conventions but remains for
00185 # historical reasons. The newer PointCloud2 message has no
00186 # such problem.
00187 # "rgb" - For point clouds produced by color stereo cameras. uint8
00188 # (R,G,B) values packed into the least significant 24 bits,
00189 # in order.
00190 # "intensity" - laser or pixel intensity.
00191 # "distance"
00192
00193 # The channel name should give semantics of the channel (e.g.
00194 # "intensity" instead of "value").
00195 string name
00196
00197 # The values array should be 1-1 with the elements of the associated
00198 # PointCloud.
00199 float32[] values
00200
00201 """
00202 __slots__ = ['model','data']
00203 _slot_types = ['articulation_msgs/ModelMsg','articulation_msgs/ModelMsg']
00204
00205 def __init__(self, *args, **kwds):
00206 """
00207 Constructor. Any message fields that are implicitly/explicitly
00208 set to None will be assigned a default value. The recommend
00209 use is keyword arguments as this is more robust to future message
00210 changes. You cannot mix in-order arguments and keyword arguments.
00211
00212 The available fields are:
00213 model,data
00214
00215 :param args: complete set of field values, in .msg order
00216 :param kwds: use keyword arguments corresponding to message field names
00217 to set specific fields.
00218 """
00219 if args or kwds:
00220 super(AlignModelSrvRequest, self).__init__(*args, **kwds)
00221 #message fields cannot be None, assign default values for those that are
00222 if self.model is None:
00223 self.model = articulation_msgs.msg.ModelMsg()
00224 if self.data is None:
00225 self.data = articulation_msgs.msg.ModelMsg()
00226 else:
00227 self.model = articulation_msgs.msg.ModelMsg()
00228 self.data = articulation_msgs.msg.ModelMsg()
00229
00230 def _get_types(self):
00231 """
00232 internal API method
00233 """
00234 return self._slot_types
00235
00236 def serialize(self, buff):
00237 """
00238 serialize message into buffer
00239 :param buff: buffer, ``StringIO``
00240 """
00241 try:
00242 _x = self
00243 buff.write(_struct_3I.pack(_x.model.header.seq, _x.model.header.stamp.secs, _x.model.header.stamp.nsecs))
00244 _x = self.model.header.frame_id
00245 length = len(_x)
00246 if python3 or type(_x) == unicode:
00247 _x = _x.encode('utf-8')
00248 length = len(_x)
00249 buff.write(struct.pack('<I%ss'%length, length, _x))
00250 buff.write(_struct_i.pack(self.model.id))
00251 _x = self.model.name
00252 length = len(_x)
00253 if python3 or type(_x) == unicode:
00254 _x = _x.encode('utf-8')
00255 length = len(_x)
00256 buff.write(struct.pack('<I%ss'%length, length, _x))
00257 length = len(self.model.params)
00258 buff.write(_struct_I.pack(length))
00259 for val1 in self.model.params:
00260 _x = val1.name
00261 length = len(_x)
00262 if python3 or type(_x) == unicode:
00263 _x = _x.encode('utf-8')
00264 length = len(_x)
00265 buff.write(struct.pack('<I%ss'%length, length, _x))
00266 _x = val1
00267 buff.write(_struct_dB.pack(_x.value, _x.type))
00268 _x = self
00269 buff.write(_struct_3I.pack(_x.model.track.header.seq, _x.model.track.header.stamp.secs, _x.model.track.header.stamp.nsecs))
00270 _x = self.model.track.header.frame_id
00271 length = len(_x)
00272 if python3 or type(_x) == unicode:
00273 _x = _x.encode('utf-8')
00274 length = len(_x)
00275 buff.write(struct.pack('<I%ss'%length, length, _x))
00276 buff.write(_struct_i.pack(self.model.track.id))
00277 length = len(self.model.track.pose)
00278 buff.write(_struct_I.pack(length))
00279 for val1 in self.model.track.pose:
00280 _v1 = val1.position
00281 _x = _v1
00282 buff.write(_struct_3d.pack(_x.x, _x.y, _x.z))
00283 _v2 = val1.orientation
00284 _x = _v2
00285 buff.write(_struct_4d.pack(_x.x, _x.y, _x.z, _x.w))
00286 length = len(self.model.track.pose_headers)
00287 buff.write(_struct_I.pack(length))
00288 for val1 in self.model.track.pose_headers:
00289 buff.write(_struct_I.pack(val1.seq))
00290 _v3 = val1.stamp
00291 _x = _v3
00292 buff.write(_struct_2I.pack(_x.secs, _x.nsecs))
00293 _x = val1.frame_id
00294 length = len(_x)
00295 if python3 or type(_x) == unicode:
00296 _x = _x.encode('utf-8')
00297 length = len(_x)
00298 buff.write(struct.pack('<I%ss'%length, length, _x))
00299 length = len(self.model.track.pose_projected)
00300 buff.write(_struct_I.pack(length))
00301 for val1 in self.model.track.pose_projected:
00302 _v4 = val1.position
00303 _x = _v4
00304 buff.write(_struct_3d.pack(_x.x, _x.y, _x.z))
00305 _v5 = val1.orientation
00306 _x = _v5
00307 buff.write(_struct_4d.pack(_x.x, _x.y, _x.z, _x.w))
00308 length = len(self.model.track.pose_resampled)
00309 buff.write(_struct_I.pack(length))
00310 for val1 in self.model.track.pose_resampled:
00311 _v6 = val1.position
00312 _x = _v6
00313 buff.write(_struct_3d.pack(_x.x, _x.y, _x.z))
00314 _v7 = val1.orientation
00315 _x = _v7
00316 buff.write(_struct_4d.pack(_x.x, _x.y, _x.z, _x.w))
00317 length = len(self.model.track.pose_flags)
00318 buff.write(_struct_I.pack(length))
00319 pattern = '<%sI'%length
00320 buff.write(struct.pack(pattern, *self.model.track.pose_flags))
00321 length = len(self.model.track.channels)
00322 buff.write(_struct_I.pack(length))
00323 for val1 in self.model.track.channels:
00324 _x = val1.name
00325 length = len(_x)
00326 if python3 or type(_x) == unicode:
00327 _x = _x.encode('utf-8')
00328 length = len(_x)
00329 buff.write(struct.pack('<I%ss'%length, length, _x))
00330 length = len(val1.values)
00331 buff.write(_struct_I.pack(length))
00332 pattern = '<%sf'%length
00333 buff.write(struct.pack(pattern, *val1.values))
00334 _x = self
00335 buff.write(_struct_3I.pack(_x.data.header.seq, _x.data.header.stamp.secs, _x.data.header.stamp.nsecs))
00336 _x = self.data.header.frame_id
00337 length = len(_x)
00338 if python3 or type(_x) == unicode:
00339 _x = _x.encode('utf-8')
00340 length = len(_x)
00341 buff.write(struct.pack('<I%ss'%length, length, _x))
00342 buff.write(_struct_i.pack(self.data.id))
00343 _x = self.data.name
00344 length = len(_x)
00345 if python3 or type(_x) == unicode:
00346 _x = _x.encode('utf-8')
00347 length = len(_x)
00348 buff.write(struct.pack('<I%ss'%length, length, _x))
00349 length = len(self.data.params)
00350 buff.write(_struct_I.pack(length))
00351 for val1 in self.data.params:
00352 _x = val1.name
00353 length = len(_x)
00354 if python3 or type(_x) == unicode:
00355 _x = _x.encode('utf-8')
00356 length = len(_x)
00357 buff.write(struct.pack('<I%ss'%length, length, _x))
00358 _x = val1
00359 buff.write(_struct_dB.pack(_x.value, _x.type))
00360 _x = self
00361 buff.write(_struct_3I.pack(_x.data.track.header.seq, _x.data.track.header.stamp.secs, _x.data.track.header.stamp.nsecs))
00362 _x = self.data.track.header.frame_id
00363 length = len(_x)
00364 if python3 or type(_x) == unicode:
00365 _x = _x.encode('utf-8')
00366 length = len(_x)
00367 buff.write(struct.pack('<I%ss'%length, length, _x))
00368 buff.write(_struct_i.pack(self.data.track.id))
00369 length = len(self.data.track.pose)
00370 buff.write(_struct_I.pack(length))
00371 for val1 in self.data.track.pose:
00372 _v8 = val1.position
00373 _x = _v8
00374 buff.write(_struct_3d.pack(_x.x, _x.y, _x.z))
00375 _v9 = val1.orientation
00376 _x = _v9
00377 buff.write(_struct_4d.pack(_x.x, _x.y, _x.z, _x.w))
00378 length = len(self.data.track.pose_headers)
00379 buff.write(_struct_I.pack(length))
00380 for val1 in self.data.track.pose_headers:
00381 buff.write(_struct_I.pack(val1.seq))
00382 _v10 = val1.stamp
00383 _x = _v10
00384 buff.write(_struct_2I.pack(_x.secs, _x.nsecs))
00385 _x = val1.frame_id
00386 length = len(_x)
00387 if python3 or type(_x) == unicode:
00388 _x = _x.encode('utf-8')
00389 length = len(_x)
00390 buff.write(struct.pack('<I%ss'%length, length, _x))
00391 length = len(self.data.track.pose_projected)
00392 buff.write(_struct_I.pack(length))
00393 for val1 in self.data.track.pose_projected:
00394 _v11 = val1.position
00395 _x = _v11
00396 buff.write(_struct_3d.pack(_x.x, _x.y, _x.z))
00397 _v12 = val1.orientation
00398 _x = _v12
00399 buff.write(_struct_4d.pack(_x.x, _x.y, _x.z, _x.w))
00400 length = len(self.data.track.pose_resampled)
00401 buff.write(_struct_I.pack(length))
00402 for val1 in self.data.track.pose_resampled:
00403 _v13 = val1.position
00404 _x = _v13
00405 buff.write(_struct_3d.pack(_x.x, _x.y, _x.z))
00406 _v14 = val1.orientation
00407 _x = _v14
00408 buff.write(_struct_4d.pack(_x.x, _x.y, _x.z, _x.w))
00409 length = len(self.data.track.pose_flags)
00410 buff.write(_struct_I.pack(length))
00411 pattern = '<%sI'%length
00412 buff.write(struct.pack(pattern, *self.data.track.pose_flags))
00413 length = len(self.data.track.channels)
00414 buff.write(_struct_I.pack(length))
00415 for val1 in self.data.track.channels:
00416 _x = val1.name
00417 length = len(_x)
00418 if python3 or type(_x) == unicode:
00419 _x = _x.encode('utf-8')
00420 length = len(_x)
00421 buff.write(struct.pack('<I%ss'%length, length, _x))
00422 length = len(val1.values)
00423 buff.write(_struct_I.pack(length))
00424 pattern = '<%sf'%length
00425 buff.write(struct.pack(pattern, *val1.values))
00426 except struct.error as se: self._check_types(se)
00427 except TypeError as te: self._check_types(te)
00428
00429 def deserialize(self, str):
00430 """
00431 unpack serialized message in str into this message instance
00432 :param str: byte array of serialized message, ``str``
00433 """
00434 try:
00435 if self.model is None:
00436 self.model = articulation_msgs.msg.ModelMsg()
00437 if self.data is None:
00438 self.data = articulation_msgs.msg.ModelMsg()
00439 end = 0
00440 _x = self
00441 start = end
00442 end += 12
00443 (_x.model.header.seq, _x.model.header.stamp.secs, _x.model.header.stamp.nsecs,) = _struct_3I.unpack(str[start:end])
00444 start = end
00445 end += 4
00446 (length,) = _struct_I.unpack(str[start:end])
00447 start = end
00448 end += length
00449 if python3:
00450 self.model.header.frame_id = str[start:end].decode('utf-8')
00451 else:
00452 self.model.header.frame_id = str[start:end]
00453 start = end
00454 end += 4
00455 (self.model.id,) = _struct_i.unpack(str[start:end])
00456 start = end
00457 end += 4
00458 (length,) = _struct_I.unpack(str[start:end])
00459 start = end
00460 end += length
00461 if python3:
00462 self.model.name = str[start:end].decode('utf-8')
00463 else:
00464 self.model.name = str[start:end]
00465 start = end
00466 end += 4
00467 (length,) = _struct_I.unpack(str[start:end])
00468 self.model.params = []
00469 for i in range(0, length):
00470 val1 = articulation_msgs.msg.ParamMsg()
00471 start = end
00472 end += 4
00473 (length,) = _struct_I.unpack(str[start:end])
00474 start = end
00475 end += length
00476 if python3:
00477 val1.name = str[start:end].decode('utf-8')
00478 else:
00479 val1.name = str[start:end]
00480 _x = val1
00481 start = end
00482 end += 9
00483 (_x.value, _x.type,) = _struct_dB.unpack(str[start:end])
00484 self.model.params.append(val1)
00485 _x = self
00486 start = end
00487 end += 12
00488 (_x.model.track.header.seq, _x.model.track.header.stamp.secs, _x.model.track.header.stamp.nsecs,) = _struct_3I.unpack(str[start:end])
00489 start = end
00490 end += 4
00491 (length,) = _struct_I.unpack(str[start:end])
00492 start = end
00493 end += length
00494 if python3:
00495 self.model.track.header.frame_id = str[start:end].decode('utf-8')
00496 else:
00497 self.model.track.header.frame_id = str[start:end]
00498 start = end
00499 end += 4
00500 (self.model.track.id,) = _struct_i.unpack(str[start:end])
00501 start = end
00502 end += 4
00503 (length,) = _struct_I.unpack(str[start:end])
00504 self.model.track.pose = []
00505 for i in range(0, length):
00506 val1 = geometry_msgs.msg.Pose()
00507 _v15 = val1.position
00508 _x = _v15
00509 start = end
00510 end += 24
00511 (_x.x, _x.y, _x.z,) = _struct_3d.unpack(str[start:end])
00512 _v16 = val1.orientation
00513 _x = _v16
00514 start = end
00515 end += 32
00516 (_x.x, _x.y, _x.z, _x.w,) = _struct_4d.unpack(str[start:end])
00517 self.model.track.pose.append(val1)
00518 start = end
00519 end += 4
00520 (length,) = _struct_I.unpack(str[start:end])
00521 self.model.track.pose_headers = []
00522 for i in range(0, length):
00523 val1 = std_msgs.msg.Header()
00524 start = end
00525 end += 4
00526 (val1.seq,) = _struct_I.unpack(str[start:end])
00527 _v17 = val1.stamp
00528 _x = _v17
00529 start = end
00530 end += 8
00531 (_x.secs, _x.nsecs,) = _struct_2I.unpack(str[start:end])
00532 start = end
00533 end += 4
00534 (length,) = _struct_I.unpack(str[start:end])
00535 start = end
00536 end += length
00537 if python3:
00538 val1.frame_id = str[start:end].decode('utf-8')
00539 else:
00540 val1.frame_id = str[start:end]
00541 self.model.track.pose_headers.append(val1)
00542 start = end
00543 end += 4
00544 (length,) = _struct_I.unpack(str[start:end])
00545 self.model.track.pose_projected = []
00546 for i in range(0, length):
00547 val1 = geometry_msgs.msg.Pose()
00548 _v18 = val1.position
00549 _x = _v18
00550 start = end
00551 end += 24
00552 (_x.x, _x.y, _x.z,) = _struct_3d.unpack(str[start:end])
00553 _v19 = val1.orientation
00554 _x = _v19
00555 start = end
00556 end += 32
00557 (_x.x, _x.y, _x.z, _x.w,) = _struct_4d.unpack(str[start:end])
00558 self.model.track.pose_projected.append(val1)
00559 start = end
00560 end += 4
00561 (length,) = _struct_I.unpack(str[start:end])
00562 self.model.track.pose_resampled = []
00563 for i in range(0, length):
00564 val1 = geometry_msgs.msg.Pose()
00565 _v20 = val1.position
00566 _x = _v20
00567 start = end
00568 end += 24
00569 (_x.x, _x.y, _x.z,) = _struct_3d.unpack(str[start:end])
00570 _v21 = val1.orientation
00571 _x = _v21
00572 start = end
00573 end += 32
00574 (_x.x, _x.y, _x.z, _x.w,) = _struct_4d.unpack(str[start:end])
00575 self.model.track.pose_resampled.append(val1)
00576 start = end
00577 end += 4
00578 (length,) = _struct_I.unpack(str[start:end])
00579 pattern = '<%sI'%length
00580 start = end
00581 end += struct.calcsize(pattern)
00582 self.model.track.pose_flags = struct.unpack(pattern, str[start:end])
00583 start = end
00584 end += 4
00585 (length,) = _struct_I.unpack(str[start:end])
00586 self.model.track.channels = []
00587 for i in range(0, length):
00588 val1 = sensor_msgs.msg.ChannelFloat32()
00589 start = end
00590 end += 4
00591 (length,) = _struct_I.unpack(str[start:end])
00592 start = end
00593 end += length
00594 if python3:
00595 val1.name = str[start:end].decode('utf-8')
00596 else:
00597 val1.name = str[start:end]
00598 start = end
00599 end += 4
00600 (length,) = _struct_I.unpack(str[start:end])
00601 pattern = '<%sf'%length
00602 start = end
00603 end += struct.calcsize(pattern)
00604 val1.values = struct.unpack(pattern, str[start:end])
00605 self.model.track.channels.append(val1)
00606 _x = self
00607 start = end
00608 end += 12
00609 (_x.data.header.seq, _x.data.header.stamp.secs, _x.data.header.stamp.nsecs,) = _struct_3I.unpack(str[start:end])
00610 start = end
00611 end += 4
00612 (length,) = _struct_I.unpack(str[start:end])
00613 start = end
00614 end += length
00615 if python3:
00616 self.data.header.frame_id = str[start:end].decode('utf-8')
00617 else:
00618 self.data.header.frame_id = str[start:end]
00619 start = end
00620 end += 4
00621 (self.data.id,) = _struct_i.unpack(str[start:end])
00622 start = end
00623 end += 4
00624 (length,) = _struct_I.unpack(str[start:end])
00625 start = end
00626 end += length
00627 if python3:
00628 self.data.name = str[start:end].decode('utf-8')
00629 else:
00630 self.data.name = str[start:end]
00631 start = end
00632 end += 4
00633 (length,) = _struct_I.unpack(str[start:end])
00634 self.data.params = []
00635 for i in range(0, length):
00636 val1 = articulation_msgs.msg.ParamMsg()
00637 start = end
00638 end += 4
00639 (length,) = _struct_I.unpack(str[start:end])
00640 start = end
00641 end += length
00642 if python3:
00643 val1.name = str[start:end].decode('utf-8')
00644 else:
00645 val1.name = str[start:end]
00646 _x = val1
00647 start = end
00648 end += 9
00649 (_x.value, _x.type,) = _struct_dB.unpack(str[start:end])
00650 self.data.params.append(val1)
00651 _x = self
00652 start = end
00653 end += 12
00654 (_x.data.track.header.seq, _x.data.track.header.stamp.secs, _x.data.track.header.stamp.nsecs,) = _struct_3I.unpack(str[start:end])
00655 start = end
00656 end += 4
00657 (length,) = _struct_I.unpack(str[start:end])
00658 start = end
00659 end += length
00660 if python3:
00661 self.data.track.header.frame_id = str[start:end].decode('utf-8')
00662 else:
00663 self.data.track.header.frame_id = str[start:end]
00664 start = end
00665 end += 4
00666 (self.data.track.id,) = _struct_i.unpack(str[start:end])
00667 start = end
00668 end += 4
00669 (length,) = _struct_I.unpack(str[start:end])
00670 self.data.track.pose = []
00671 for i in range(0, length):
00672 val1 = geometry_msgs.msg.Pose()
00673 _v22 = val1.position
00674 _x = _v22
00675 start = end
00676 end += 24
00677 (_x.x, _x.y, _x.z,) = _struct_3d.unpack(str[start:end])
00678 _v23 = val1.orientation
00679 _x = _v23
00680 start = end
00681 end += 32
00682 (_x.x, _x.y, _x.z, _x.w,) = _struct_4d.unpack(str[start:end])
00683 self.data.track.pose.append(val1)
00684 start = end
00685 end += 4
00686 (length,) = _struct_I.unpack(str[start:end])
00687 self.data.track.pose_headers = []
00688 for i in range(0, length):
00689 val1 = std_msgs.msg.Header()
00690 start = end
00691 end += 4
00692 (val1.seq,) = _struct_I.unpack(str[start:end])
00693 _v24 = val1.stamp
00694 _x = _v24
00695 start = end
00696 end += 8
00697 (_x.secs, _x.nsecs,) = _struct_2I.unpack(str[start:end])
00698 start = end
00699 end += 4
00700 (length,) = _struct_I.unpack(str[start:end])
00701 start = end
00702 end += length
00703 if python3:
00704 val1.frame_id = str[start:end].decode('utf-8')
00705 else:
00706 val1.frame_id = str[start:end]
00707 self.data.track.pose_headers.append(val1)
00708 start = end
00709 end += 4
00710 (length,) = _struct_I.unpack(str[start:end])
00711 self.data.track.pose_projected = []
00712 for i in range(0, length):
00713 val1 = geometry_msgs.msg.Pose()
00714 _v25 = val1.position
00715 _x = _v25
00716 start = end
00717 end += 24
00718 (_x.x, _x.y, _x.z,) = _struct_3d.unpack(str[start:end])
00719 _v26 = val1.orientation
00720 _x = _v26
00721 start = end
00722 end += 32
00723 (_x.x, _x.y, _x.z, _x.w,) = _struct_4d.unpack(str[start:end])
00724 self.data.track.pose_projected.append(val1)
00725 start = end
00726 end += 4
00727 (length,) = _struct_I.unpack(str[start:end])
00728 self.data.track.pose_resampled = []
00729 for i in range(0, length):
00730 val1 = geometry_msgs.msg.Pose()
00731 _v27 = val1.position
00732 _x = _v27
00733 start = end
00734 end += 24
00735 (_x.x, _x.y, _x.z,) = _struct_3d.unpack(str[start:end])
00736 _v28 = val1.orientation
00737 _x = _v28
00738 start = end
00739 end += 32
00740 (_x.x, _x.y, _x.z, _x.w,) = _struct_4d.unpack(str[start:end])
00741 self.data.track.pose_resampled.append(val1)
00742 start = end
00743 end += 4
00744 (length,) = _struct_I.unpack(str[start:end])
00745 pattern = '<%sI'%length
00746 start = end
00747 end += struct.calcsize(pattern)
00748 self.data.track.pose_flags = struct.unpack(pattern, str[start:end])
00749 start = end
00750 end += 4
00751 (length,) = _struct_I.unpack(str[start:end])
00752 self.data.track.channels = []
00753 for i in range(0, length):
00754 val1 = sensor_msgs.msg.ChannelFloat32()
00755 start = end
00756 end += 4
00757 (length,) = _struct_I.unpack(str[start:end])
00758 start = end
00759 end += length
00760 if python3:
00761 val1.name = str[start:end].decode('utf-8')
00762 else:
00763 val1.name = str[start:end]
00764 start = end
00765 end += 4
00766 (length,) = _struct_I.unpack(str[start:end])
00767 pattern = '<%sf'%length
00768 start = end
00769 end += struct.calcsize(pattern)
00770 val1.values = struct.unpack(pattern, str[start:end])
00771 self.data.track.channels.append(val1)
00772 return self
00773 except struct.error as e:
00774 raise genpy.DeserializationError(e) #most likely buffer underfill
00775
00776
00777 def serialize_numpy(self, buff, numpy):
00778 """
00779 serialize message with numpy array types into buffer
00780 :param buff: buffer, ``StringIO``
00781 :param numpy: numpy python module
00782 """
00783 try:
00784 _x = self
00785 buff.write(_struct_3I.pack(_x.model.header.seq, _x.model.header.stamp.secs, _x.model.header.stamp.nsecs))
00786 _x = self.model.header.frame_id
00787 length = len(_x)
00788 if python3 or type(_x) == unicode:
00789 _x = _x.encode('utf-8')
00790 length = len(_x)
00791 buff.write(struct.pack('<I%ss'%length, length, _x))
00792 buff.write(_struct_i.pack(self.model.id))
00793 _x = self.model.name
00794 length = len(_x)
00795 if python3 or type(_x) == unicode:
00796 _x = _x.encode('utf-8')
00797 length = len(_x)
00798 buff.write(struct.pack('<I%ss'%length, length, _x))
00799 length = len(self.model.params)
00800 buff.write(_struct_I.pack(length))
00801 for val1 in self.model.params:
00802 _x = val1.name
00803 length = len(_x)
00804 if python3 or type(_x) == unicode:
00805 _x = _x.encode('utf-8')
00806 length = len(_x)
00807 buff.write(struct.pack('<I%ss'%length, length, _x))
00808 _x = val1
00809 buff.write(_struct_dB.pack(_x.value, _x.type))
00810 _x = self
00811 buff.write(_struct_3I.pack(_x.model.track.header.seq, _x.model.track.header.stamp.secs, _x.model.track.header.stamp.nsecs))
00812 _x = self.model.track.header.frame_id
00813 length = len(_x)
00814 if python3 or type(_x) == unicode:
00815 _x = _x.encode('utf-8')
00816 length = len(_x)
00817 buff.write(struct.pack('<I%ss'%length, length, _x))
00818 buff.write(_struct_i.pack(self.model.track.id))
00819 length = len(self.model.track.pose)
00820 buff.write(_struct_I.pack(length))
00821 for val1 in self.model.track.pose:
00822 _v29 = val1.position
00823 _x = _v29
00824 buff.write(_struct_3d.pack(_x.x, _x.y, _x.z))
00825 _v30 = val1.orientation
00826 _x = _v30
00827 buff.write(_struct_4d.pack(_x.x, _x.y, _x.z, _x.w))
00828 length = len(self.model.track.pose_headers)
00829 buff.write(_struct_I.pack(length))
00830 for val1 in self.model.track.pose_headers:
00831 buff.write(_struct_I.pack(val1.seq))
00832 _v31 = val1.stamp
00833 _x = _v31
00834 buff.write(_struct_2I.pack(_x.secs, _x.nsecs))
00835 _x = val1.frame_id
00836 length = len(_x)
00837 if python3 or type(_x) == unicode:
00838 _x = _x.encode('utf-8')
00839 length = len(_x)
00840 buff.write(struct.pack('<I%ss'%length, length, _x))
00841 length = len(self.model.track.pose_projected)
00842 buff.write(_struct_I.pack(length))
00843 for val1 in self.model.track.pose_projected:
00844 _v32 = val1.position
00845 _x = _v32
00846 buff.write(_struct_3d.pack(_x.x, _x.y, _x.z))
00847 _v33 = val1.orientation
00848 _x = _v33
00849 buff.write(_struct_4d.pack(_x.x, _x.y, _x.z, _x.w))
00850 length = len(self.model.track.pose_resampled)
00851 buff.write(_struct_I.pack(length))
00852 for val1 in self.model.track.pose_resampled:
00853 _v34 = val1.position
00854 _x = _v34
00855 buff.write(_struct_3d.pack(_x.x, _x.y, _x.z))
00856 _v35 = val1.orientation
00857 _x = _v35
00858 buff.write(_struct_4d.pack(_x.x, _x.y, _x.z, _x.w))
00859 length = len(self.model.track.pose_flags)
00860 buff.write(_struct_I.pack(length))
00861 pattern = '<%sI'%length
00862 buff.write(self.model.track.pose_flags.tostring())
00863 length = len(self.model.track.channels)
00864 buff.write(_struct_I.pack(length))
00865 for val1 in self.model.track.channels:
00866 _x = val1.name
00867 length = len(_x)
00868 if python3 or type(_x) == unicode:
00869 _x = _x.encode('utf-8')
00870 length = len(_x)
00871 buff.write(struct.pack('<I%ss'%length, length, _x))
00872 length = len(val1.values)
00873 buff.write(_struct_I.pack(length))
00874 pattern = '<%sf'%length
00875 buff.write(val1.values.tostring())
00876 _x = self
00877 buff.write(_struct_3I.pack(_x.data.header.seq, _x.data.header.stamp.secs, _x.data.header.stamp.nsecs))
00878 _x = self.data.header.frame_id
00879 length = len(_x)
00880 if python3 or type(_x) == unicode:
00881 _x = _x.encode('utf-8')
00882 length = len(_x)
00883 buff.write(struct.pack('<I%ss'%length, length, _x))
00884 buff.write(_struct_i.pack(self.data.id))
00885 _x = self.data.name
00886 length = len(_x)
00887 if python3 or type(_x) == unicode:
00888 _x = _x.encode('utf-8')
00889 length = len(_x)
00890 buff.write(struct.pack('<I%ss'%length, length, _x))
00891 length = len(self.data.params)
00892 buff.write(_struct_I.pack(length))
00893 for val1 in self.data.params:
00894 _x = val1.name
00895 length = len(_x)
00896 if python3 or type(_x) == unicode:
00897 _x = _x.encode('utf-8')
00898 length = len(_x)
00899 buff.write(struct.pack('<I%ss'%length, length, _x))
00900 _x = val1
00901 buff.write(_struct_dB.pack(_x.value, _x.type))
00902 _x = self
00903 buff.write(_struct_3I.pack(_x.data.track.header.seq, _x.data.track.header.stamp.secs, _x.data.track.header.stamp.nsecs))
00904 _x = self.data.track.header.frame_id
00905 length = len(_x)
00906 if python3 or type(_x) == unicode:
00907 _x = _x.encode('utf-8')
00908 length = len(_x)
00909 buff.write(struct.pack('<I%ss'%length, length, _x))
00910 buff.write(_struct_i.pack(self.data.track.id))
00911 length = len(self.data.track.pose)
00912 buff.write(_struct_I.pack(length))
00913 for val1 in self.data.track.pose:
00914 _v36 = val1.position
00915 _x = _v36
00916 buff.write(_struct_3d.pack(_x.x, _x.y, _x.z))
00917 _v37 = val1.orientation
00918 _x = _v37
00919 buff.write(_struct_4d.pack(_x.x, _x.y, _x.z, _x.w))
00920 length = len(self.data.track.pose_headers)
00921 buff.write(_struct_I.pack(length))
00922 for val1 in self.data.track.pose_headers:
00923 buff.write(_struct_I.pack(val1.seq))
00924 _v38 = val1.stamp
00925 _x = _v38
00926 buff.write(_struct_2I.pack(_x.secs, _x.nsecs))
00927 _x = val1.frame_id
00928 length = len(_x)
00929 if python3 or type(_x) == unicode:
00930 _x = _x.encode('utf-8')
00931 length = len(_x)
00932 buff.write(struct.pack('<I%ss'%length, length, _x))
00933 length = len(self.data.track.pose_projected)
00934 buff.write(_struct_I.pack(length))
00935 for val1 in self.data.track.pose_projected:
00936 _v39 = val1.position
00937 _x = _v39
00938 buff.write(_struct_3d.pack(_x.x, _x.y, _x.z))
00939 _v40 = val1.orientation
00940 _x = _v40
00941 buff.write(_struct_4d.pack(_x.x, _x.y, _x.z, _x.w))
00942 length = len(self.data.track.pose_resampled)
00943 buff.write(_struct_I.pack(length))
00944 for val1 in self.data.track.pose_resampled:
00945 _v41 = val1.position
00946 _x = _v41
00947 buff.write(_struct_3d.pack(_x.x, _x.y, _x.z))
00948 _v42 = val1.orientation
00949 _x = _v42
00950 buff.write(_struct_4d.pack(_x.x, _x.y, _x.z, _x.w))
00951 length = len(self.data.track.pose_flags)
00952 buff.write(_struct_I.pack(length))
00953 pattern = '<%sI'%length
00954 buff.write(self.data.track.pose_flags.tostring())
00955 length = len(self.data.track.channels)
00956 buff.write(_struct_I.pack(length))
00957 for val1 in self.data.track.channels:
00958 _x = val1.name
00959 length = len(_x)
00960 if python3 or type(_x) == unicode:
00961 _x = _x.encode('utf-8')
00962 length = len(_x)
00963 buff.write(struct.pack('<I%ss'%length, length, _x))
00964 length = len(val1.values)
00965 buff.write(_struct_I.pack(length))
00966 pattern = '<%sf'%length
00967 buff.write(val1.values.tostring())
00968 except struct.error as se: self._check_types(se)
00969 except TypeError as te: self._check_types(te)
00970
00971 def deserialize_numpy(self, str, numpy):
00972 """
00973 unpack serialized message in str into this message instance using numpy for array types
00974 :param str: byte array of serialized message, ``str``
00975 :param numpy: numpy python module
00976 """
00977 try:
00978 if self.model is None:
00979 self.model = articulation_msgs.msg.ModelMsg()
00980 if self.data is None:
00981 self.data = articulation_msgs.msg.ModelMsg()
00982 end = 0
00983 _x = self
00984 start = end
00985 end += 12
00986 (_x.model.header.seq, _x.model.header.stamp.secs, _x.model.header.stamp.nsecs,) = _struct_3I.unpack(str[start:end])
00987 start = end
00988 end += 4
00989 (length,) = _struct_I.unpack(str[start:end])
00990 start = end
00991 end += length
00992 if python3:
00993 self.model.header.frame_id = str[start:end].decode('utf-8')
00994 else:
00995 self.model.header.frame_id = str[start:end]
00996 start = end
00997 end += 4
00998 (self.model.id,) = _struct_i.unpack(str[start:end])
00999 start = end
01000 end += 4
01001 (length,) = _struct_I.unpack(str[start:end])
01002 start = end
01003 end += length
01004 if python3:
01005 self.model.name = str[start:end].decode('utf-8')
01006 else:
01007 self.model.name = str[start:end]
01008 start = end
01009 end += 4
01010 (length,) = _struct_I.unpack(str[start:end])
01011 self.model.params = []
01012 for i in range(0, length):
01013 val1 = articulation_msgs.msg.ParamMsg()
01014 start = end
01015 end += 4
01016 (length,) = _struct_I.unpack(str[start:end])
01017 start = end
01018 end += length
01019 if python3:
01020 val1.name = str[start:end].decode('utf-8')
01021 else:
01022 val1.name = str[start:end]
01023 _x = val1
01024 start = end
01025 end += 9
01026 (_x.value, _x.type,) = _struct_dB.unpack(str[start:end])
01027 self.model.params.append(val1)
01028 _x = self
01029 start = end
01030 end += 12
01031 (_x.model.track.header.seq, _x.model.track.header.stamp.secs, _x.model.track.header.stamp.nsecs,) = _struct_3I.unpack(str[start:end])
01032 start = end
01033 end += 4
01034 (length,) = _struct_I.unpack(str[start:end])
01035 start = end
01036 end += length
01037 if python3:
01038 self.model.track.header.frame_id = str[start:end].decode('utf-8')
01039 else:
01040 self.model.track.header.frame_id = str[start:end]
01041 start = end
01042 end += 4
01043 (self.model.track.id,) = _struct_i.unpack(str[start:end])
01044 start = end
01045 end += 4
01046 (length,) = _struct_I.unpack(str[start:end])
01047 self.model.track.pose = []
01048 for i in range(0, length):
01049 val1 = geometry_msgs.msg.Pose()
01050 _v43 = val1.position
01051 _x = _v43
01052 start = end
01053 end += 24
01054 (_x.x, _x.y, _x.z,) = _struct_3d.unpack(str[start:end])
01055 _v44 = val1.orientation
01056 _x = _v44
01057 start = end
01058 end += 32
01059 (_x.x, _x.y, _x.z, _x.w,) = _struct_4d.unpack(str[start:end])
01060 self.model.track.pose.append(val1)
01061 start = end
01062 end += 4
01063 (length,) = _struct_I.unpack(str[start:end])
01064 self.model.track.pose_headers = []
01065 for i in range(0, length):
01066 val1 = std_msgs.msg.Header()
01067 start = end
01068 end += 4
01069 (val1.seq,) = _struct_I.unpack(str[start:end])
01070 _v45 = val1.stamp
01071 _x = _v45
01072 start = end
01073 end += 8
01074 (_x.secs, _x.nsecs,) = _struct_2I.unpack(str[start:end])
01075 start = end
01076 end += 4
01077 (length,) = _struct_I.unpack(str[start:end])
01078 start = end
01079 end += length
01080 if python3:
01081 val1.frame_id = str[start:end].decode('utf-8')
01082 else:
01083 val1.frame_id = str[start:end]
01084 self.model.track.pose_headers.append(val1)
01085 start = end
01086 end += 4
01087 (length,) = _struct_I.unpack(str[start:end])
01088 self.model.track.pose_projected = []
01089 for i in range(0, length):
01090 val1 = geometry_msgs.msg.Pose()
01091 _v46 = val1.position
01092 _x = _v46
01093 start = end
01094 end += 24
01095 (_x.x, _x.y, _x.z,) = _struct_3d.unpack(str[start:end])
01096 _v47 = val1.orientation
01097 _x = _v47
01098 start = end
01099 end += 32
01100 (_x.x, _x.y, _x.z, _x.w,) = _struct_4d.unpack(str[start:end])
01101 self.model.track.pose_projected.append(val1)
01102 start = end
01103 end += 4
01104 (length,) = _struct_I.unpack(str[start:end])
01105 self.model.track.pose_resampled = []
01106 for i in range(0, length):
01107 val1 = geometry_msgs.msg.Pose()
01108 _v48 = val1.position
01109 _x = _v48
01110 start = end
01111 end += 24
01112 (_x.x, _x.y, _x.z,) = _struct_3d.unpack(str[start:end])
01113 _v49 = val1.orientation
01114 _x = _v49
01115 start = end
01116 end += 32
01117 (_x.x, _x.y, _x.z, _x.w,) = _struct_4d.unpack(str[start:end])
01118 self.model.track.pose_resampled.append(val1)
01119 start = end
01120 end += 4
01121 (length,) = _struct_I.unpack(str[start:end])
01122 pattern = '<%sI'%length
01123 start = end
01124 end += struct.calcsize(pattern)
01125 self.model.track.pose_flags = numpy.frombuffer(str[start:end], dtype=numpy.uint32, count=length)
01126 start = end
01127 end += 4
01128 (length,) = _struct_I.unpack(str[start:end])
01129 self.model.track.channels = []
01130 for i in range(0, length):
01131 val1 = sensor_msgs.msg.ChannelFloat32()
01132 start = end
01133 end += 4
01134 (length,) = _struct_I.unpack(str[start:end])
01135 start = end
01136 end += length
01137 if python3:
01138 val1.name = str[start:end].decode('utf-8')
01139 else:
01140 val1.name = str[start:end]
01141 start = end
01142 end += 4
01143 (length,) = _struct_I.unpack(str[start:end])
01144 pattern = '<%sf'%length
01145 start = end
01146 end += struct.calcsize(pattern)
01147 val1.values = numpy.frombuffer(str[start:end], dtype=numpy.float32, count=length)
01148 self.model.track.channels.append(val1)
01149 _x = self
01150 start = end
01151 end += 12
01152 (_x.data.header.seq, _x.data.header.stamp.secs, _x.data.header.stamp.nsecs,) = _struct_3I.unpack(str[start:end])
01153 start = end
01154 end += 4
01155 (length,) = _struct_I.unpack(str[start:end])
01156 start = end
01157 end += length
01158 if python3:
01159 self.data.header.frame_id = str[start:end].decode('utf-8')
01160 else:
01161 self.data.header.frame_id = str[start:end]
01162 start = end
01163 end += 4
01164 (self.data.id,) = _struct_i.unpack(str[start:end])
01165 start = end
01166 end += 4
01167 (length,) = _struct_I.unpack(str[start:end])
01168 start = end
01169 end += length
01170 if python3:
01171 self.data.name = str[start:end].decode('utf-8')
01172 else:
01173 self.data.name = str[start:end]
01174 start = end
01175 end += 4
01176 (length,) = _struct_I.unpack(str[start:end])
01177 self.data.params = []
01178 for i in range(0, length):
01179 val1 = articulation_msgs.msg.ParamMsg()
01180 start = end
01181 end += 4
01182 (length,) = _struct_I.unpack(str[start:end])
01183 start = end
01184 end += length
01185 if python3:
01186 val1.name = str[start:end].decode('utf-8')
01187 else:
01188 val1.name = str[start:end]
01189 _x = val1
01190 start = end
01191 end += 9
01192 (_x.value, _x.type,) = _struct_dB.unpack(str[start:end])
01193 self.data.params.append(val1)
01194 _x = self
01195 start = end
01196 end += 12
01197 (_x.data.track.header.seq, _x.data.track.header.stamp.secs, _x.data.track.header.stamp.nsecs,) = _struct_3I.unpack(str[start:end])
01198 start = end
01199 end += 4
01200 (length,) = _struct_I.unpack(str[start:end])
01201 start = end
01202 end += length
01203 if python3:
01204 self.data.track.header.frame_id = str[start:end].decode('utf-8')
01205 else:
01206 self.data.track.header.frame_id = str[start:end]
01207 start = end
01208 end += 4
01209 (self.data.track.id,) = _struct_i.unpack(str[start:end])
01210 start = end
01211 end += 4
01212 (length,) = _struct_I.unpack(str[start:end])
01213 self.data.track.pose = []
01214 for i in range(0, length):
01215 val1 = geometry_msgs.msg.Pose()
01216 _v50 = val1.position
01217 _x = _v50
01218 start = end
01219 end += 24
01220 (_x.x, _x.y, _x.z,) = _struct_3d.unpack(str[start:end])
01221 _v51 = val1.orientation
01222 _x = _v51
01223 start = end
01224 end += 32
01225 (_x.x, _x.y, _x.z, _x.w,) = _struct_4d.unpack(str[start:end])
01226 self.data.track.pose.append(val1)
01227 start = end
01228 end += 4
01229 (length,) = _struct_I.unpack(str[start:end])
01230 self.data.track.pose_headers = []
01231 for i in range(0, length):
01232 val1 = std_msgs.msg.Header()
01233 start = end
01234 end += 4
01235 (val1.seq,) = _struct_I.unpack(str[start:end])
01236 _v52 = val1.stamp
01237 _x = _v52
01238 start = end
01239 end += 8
01240 (_x.secs, _x.nsecs,) = _struct_2I.unpack(str[start:end])
01241 start = end
01242 end += 4
01243 (length,) = _struct_I.unpack(str[start:end])
01244 start = end
01245 end += length
01246 if python3:
01247 val1.frame_id = str[start:end].decode('utf-8')
01248 else:
01249 val1.frame_id = str[start:end]
01250 self.data.track.pose_headers.append(val1)
01251 start = end
01252 end += 4
01253 (length,) = _struct_I.unpack(str[start:end])
01254 self.data.track.pose_projected = []
01255 for i in range(0, length):
01256 val1 = geometry_msgs.msg.Pose()
01257 _v53 = val1.position
01258 _x = _v53
01259 start = end
01260 end += 24
01261 (_x.x, _x.y, _x.z,) = _struct_3d.unpack(str[start:end])
01262 _v54 = val1.orientation
01263 _x = _v54
01264 start = end
01265 end += 32
01266 (_x.x, _x.y, _x.z, _x.w,) = _struct_4d.unpack(str[start:end])
01267 self.data.track.pose_projected.append(val1)
01268 start = end
01269 end += 4
01270 (length,) = _struct_I.unpack(str[start:end])
01271 self.data.track.pose_resampled = []
01272 for i in range(0, length):
01273 val1 = geometry_msgs.msg.Pose()
01274 _v55 = val1.position
01275 _x = _v55
01276 start = end
01277 end += 24
01278 (_x.x, _x.y, _x.z,) = _struct_3d.unpack(str[start:end])
01279 _v56 = val1.orientation
01280 _x = _v56
01281 start = end
01282 end += 32
01283 (_x.x, _x.y, _x.z, _x.w,) = _struct_4d.unpack(str[start:end])
01284 self.data.track.pose_resampled.append(val1)
01285 start = end
01286 end += 4
01287 (length,) = _struct_I.unpack(str[start:end])
01288 pattern = '<%sI'%length
01289 start = end
01290 end += struct.calcsize(pattern)
01291 self.data.track.pose_flags = numpy.frombuffer(str[start:end], dtype=numpy.uint32, count=length)
01292 start = end
01293 end += 4
01294 (length,) = _struct_I.unpack(str[start:end])
01295 self.data.track.channels = []
01296 for i in range(0, length):
01297 val1 = sensor_msgs.msg.ChannelFloat32()
01298 start = end
01299 end += 4
01300 (length,) = _struct_I.unpack(str[start:end])
01301 start = end
01302 end += length
01303 if python3:
01304 val1.name = str[start:end].decode('utf-8')
01305 else:
01306 val1.name = str[start:end]
01307 start = end
01308 end += 4
01309 (length,) = _struct_I.unpack(str[start:end])
01310 pattern = '<%sf'%length
01311 start = end
01312 end += struct.calcsize(pattern)
01313 val1.values = numpy.frombuffer(str[start:end], dtype=numpy.float32, count=length)
01314 self.data.track.channels.append(val1)
01315 return self
01316 except struct.error as e:
01317 raise genpy.DeserializationError(e) #most likely buffer underfill
01318
01319 _struct_I = genpy.struct_I
01320 _struct_i = struct.Struct("<i")
01321 _struct_dB = struct.Struct("<dB")
01322 _struct_3I = struct.Struct("<3I")
01323 _struct_4d = struct.Struct("<4d")
01324 _struct_2I = struct.Struct("<2I")
01325 _struct_3d = struct.Struct("<3d")
01326 """autogenerated by genpy from articulation_msgs/AlignModelSrvResponse.msg. Do not edit."""
01327 import sys
01328 python3 = True if sys.hexversion > 0x03000000 else False
01329 import genpy
01330 import struct
01331
01332 import sensor_msgs.msg
01333 import geometry_msgs.msg
01334 import articulation_msgs.msg
01335 import std_msgs.msg
01336
01337 class AlignModelSrvResponse(genpy.Message):
01338 _md5sum = "244fd493a4121569c1e4d870714e7fc3"
01339 _type = "articulation_msgs/AlignModelSrvResponse"
01340 _has_header = False #flag to mark the presence of a Header object
01341 _full_text = """articulation_msgs/ModelMsg model_aligned
01342
01343
01344 articulation_msgs/ModelMsg data_aligned
01345
01346
01347 float64[9] R
01348 float64[3] T
01349 float64 dist_rot
01350 float32 dist_trans
01351
01352
01353
01354 ================================================================================
01355 MSG: articulation_msgs/ModelMsg
01356 # Single kinematic model
01357 #
01358 # A kinematic model is defined by its model class name, and a set of parameters.
01359 # The client may additionally specify a model id, that can be used to colorize the
01360 # model when visualized using the RVIZ model display.
01361 #
01362 # For a list of currently implemented models, see the documetation at
01363 # http://www.ros.org/wiki/articulation_models
01364 #
01365 #
01366
01367 std_msgs/Header header # frame and timestamp
01368
01369 int32 id # user specified model id
01370 string name # name of the model family (e.g. "rotational",
01371 # "prismatic", "pca-gp", "rigid")
01372 articulation_msgs/ParamMsg[] params # model parameters
01373 articulation_msgs/TrackMsg track # trajectory from which the model is estimated, or
01374 # that is evaluated using the model
01375
01376 ================================================================================
01377 MSG: std_msgs/Header
01378 # Standard metadata for higher-level stamped data types.
01379 # This is generally used to communicate timestamped data
01380 # in a particular coordinate frame.
01381 #
01382 # sequence ID: consecutively increasing ID
01383 uint32 seq
01384 #Two-integer timestamp that is expressed as:
01385 # * stamp.secs: seconds (stamp_secs) since epoch
01386 # * stamp.nsecs: nanoseconds since stamp_secs
01387 # time-handling sugar is provided by the client library
01388 time stamp
01389 #Frame this data is associated with
01390 # 0: no frame
01391 # 1: global frame
01392 string frame_id
01393
01394 ================================================================================
01395 MSG: articulation_msgs/ParamMsg
01396 # Single parameter passed to or from model fitting
01397 #
01398 # This mechanism allows to flexibly pass parameters to
01399 # model fitting (and vice versa). Note that these parameters
01400 # are model-specific: A client may supply additional
01401 # parameters to the model estimator, and, similarly, a estimator
01402 # may add the estimated model parameters to the model message.
01403 # When the model is then evaluated, for example to make predictions
01404 # or to compute the likelihood, the model class can then use
01405 # these parameters.
01406 #
01407 # A parameter has a name, a value, and a type. The type globally
01408 # indicates whether it is a prior parameter (prior to model fitting),
01409 # or a model parameter (found during model fitting, using a maximum-
01410 # likelihood estimator), or a cached evaluation (e.g., the likelihood
01411 # or the BIC are a typical "side"-product of model estimation, and
01412 # can therefore already be cached).
01413 #
01414 # For a list of currently used parameters, see the documentation at
01415 # http://www.ros.org/wiki/articulation_models
01416 #
01417
01418 uint8 PRIOR=0 # indicates a prior model parameter
01419 # (e.g., "sigma_position")
01420 uint8 PARAM=1 # indicates a estimated model parameter
01421 # (e.g., "rot_radius", the estimated radius)
01422 uint8 EVAL=2 # indicates a cached evaluation of the model, given
01423 # the current trajectory
01424 # (e.g., "loglikelihood", the log likelihood of the
01425 # data, given the model and its parameters)
01426
01427 string name # name of the parameter
01428 float64 value # value of the parameter
01429 uint8 type # type of the parameter (PRIOR, PARAM, EVAL)
01430
01431
01432 ================================================================================
01433 MSG: articulation_msgs/TrackMsg
01434 # Single kinematic trajectory
01435 #
01436 # This message contains a kinematic trajectory. The trajectory is specified
01437 # as a vector of 6D poses. An additional flag, track_type, indicates whether
01438 # the track is valid, and whether it includes orientation. The track id
01439 # can be used for automatic coloring in the RVIZ track plugin, and can be
01440 # freely chosen by the client.
01441 #
01442 # A model is fitting only from the trajectory stored in the pose[]-vector.
01443 # Additional information may be associated to each pose using the channels
01444 # vector, with arbitrary # fields (e.g., to include applied/measured forces).
01445 #
01446 # After model evaluation,
01447 # also the associated configurations of the object are stored in the channels,
01448 # named "q[0]".."q[DOF-1]", where DOF is the number of degrees of freedom.
01449 # Model evaluation also projects the poses in the pose vector onto the model,
01450 # and stores these ideal poses in the vector pose_projected. Further, during model
01451 # evaluation, a new set of (uniform) configurations over the valid configuration
01452 # range is sampled, and the result is stored in pose_resampled.
01453 # The vector pose_flags contains additional display flags for the poses in the
01454 # pose vector, for example, whether a pose is visible and/or
01455 # the end of a trajectory segment. At the moment, this is only used by the
01456 # prior_model_learner.
01457 #
01458
01459 std_msgs/Header header # frame and timestamp
01460 int32 id # used-specified track id
01461
01462 geometry_msgs/Pose[] pose # sequence of poses, defining the observed trajectory
01463 std_msgs/Header[] pose_headers # Timestamp and frame for each pose (and pose_projected)
01464 geometry_msgs/Pose[] pose_projected # sequence of poses, projected to the model
01465 # (after model evaluation)
01466 geometry_msgs/Pose[] pose_resampled # sequence of poses, re-sampled from the model in
01467 # the valid configuration range
01468 uint32[] pose_flags # bit-wise combination of POSE_VISIBLE and POSE_END_OF_SEGMENT
01469
01470 uint32 POSE_VISIBLE=1
01471 uint32 POSE_END_OF_SEGMENT=2
01472
01473 # Each channel should have the same number of elements as pose array,
01474 # and the data in each channel should correspond 1:1 with each pose
01475 # possible channels: "width", "height", "rgb", ...
01476 sensor_msgs/ChannelFloat32[] channels
01477
01478
01479
01480 ================================================================================
01481 MSG: geometry_msgs/Pose
01482 # A representation of pose in free space, composed of postion and orientation.
01483 Point position
01484 Quaternion orientation
01485
01486 ================================================================================
01487 MSG: geometry_msgs/Point
01488 # This contains the position of a point in free space
01489 float64 x
01490 float64 y
01491 float64 z
01492
01493 ================================================================================
01494 MSG: geometry_msgs/Quaternion
01495 # This represents an orientation in free space in quaternion form.
01496
01497 float64 x
01498 float64 y
01499 float64 z
01500 float64 w
01501
01502 ================================================================================
01503 MSG: sensor_msgs/ChannelFloat32
01504 # This message is used by the PointCloud message to hold optional data
01505 # associated with each point in the cloud. The length of the values
01506 # array should be the same as the length of the points array in the
01507 # PointCloud, and each value should be associated with the corresponding
01508 # point.
01509
01510 # Channel names in existing practice include:
01511 # "u", "v" - row and column (respectively) in the left stereo image.
01512 # This is opposite to usual conventions but remains for
01513 # historical reasons. The newer PointCloud2 message has no
01514 # such problem.
01515 # "rgb" - For point clouds produced by color stereo cameras. uint8
01516 # (R,G,B) values packed into the least significant 24 bits,
01517 # in order.
01518 # "intensity" - laser or pixel intensity.
01519 # "distance"
01520
01521 # The channel name should give semantics of the channel (e.g.
01522 # "intensity" instead of "value").
01523 string name
01524
01525 # The values array should be 1-1 with the elements of the associated
01526 # PointCloud.
01527 float32[] values
01528
01529 """
01530 __slots__ = ['model_aligned','data_aligned','R','T','dist_rot','dist_trans']
01531 _slot_types = ['articulation_msgs/ModelMsg','articulation_msgs/ModelMsg','float64[9]','float64[3]','float64','float32']
01532
01533 def __init__(self, *args, **kwds):
01534 """
01535 Constructor. Any message fields that are implicitly/explicitly
01536 set to None will be assigned a default value. The recommend
01537 use is keyword arguments as this is more robust to future message
01538 changes. You cannot mix in-order arguments and keyword arguments.
01539
01540 The available fields are:
01541 model_aligned,data_aligned,R,T,dist_rot,dist_trans
01542
01543 :param args: complete set of field values, in .msg order
01544 :param kwds: use keyword arguments corresponding to message field names
01545 to set specific fields.
01546 """
01547 if args or kwds:
01548 super(AlignModelSrvResponse, self).__init__(*args, **kwds)
01549 #message fields cannot be None, assign default values for those that are
01550 if self.model_aligned is None:
01551 self.model_aligned = articulation_msgs.msg.ModelMsg()
01552 if self.data_aligned is None:
01553 self.data_aligned = articulation_msgs.msg.ModelMsg()
01554 if self.R is None:
01555 self.R = [0.,0.,0.,0.,0.,0.,0.,0.,0.]
01556 if self.T is None:
01557 self.T = [0.,0.,0.]
01558 if self.dist_rot is None:
01559 self.dist_rot = 0.
01560 if self.dist_trans is None:
01561 self.dist_trans = 0.
01562 else:
01563 self.model_aligned = articulation_msgs.msg.ModelMsg()
01564 self.data_aligned = articulation_msgs.msg.ModelMsg()
01565 self.R = [0.,0.,0.,0.,0.,0.,0.,0.,0.]
01566 self.T = [0.,0.,0.]
01567 self.dist_rot = 0.
01568 self.dist_trans = 0.
01569
01570 def _get_types(self):
01571 """
01572 internal API method
01573 """
01574 return self._slot_types
01575
01576 def serialize(self, buff):
01577 """
01578 serialize message into buffer
01579 :param buff: buffer, ``StringIO``
01580 """
01581 try:
01582 _x = self
01583 buff.write(_struct_3I.pack(_x.model_aligned.header.seq, _x.model_aligned.header.stamp.secs, _x.model_aligned.header.stamp.nsecs))
01584 _x = self.model_aligned.header.frame_id
01585 length = len(_x)
01586 if python3 or type(_x) == unicode:
01587 _x = _x.encode('utf-8')
01588 length = len(_x)
01589 buff.write(struct.pack('<I%ss'%length, length, _x))
01590 buff.write(_struct_i.pack(self.model_aligned.id))
01591 _x = self.model_aligned.name
01592 length = len(_x)
01593 if python3 or type(_x) == unicode:
01594 _x = _x.encode('utf-8')
01595 length = len(_x)
01596 buff.write(struct.pack('<I%ss'%length, length, _x))
01597 length = len(self.model_aligned.params)
01598 buff.write(_struct_I.pack(length))
01599 for val1 in self.model_aligned.params:
01600 _x = val1.name
01601 length = len(_x)
01602 if python3 or type(_x) == unicode:
01603 _x = _x.encode('utf-8')
01604 length = len(_x)
01605 buff.write(struct.pack('<I%ss'%length, length, _x))
01606 _x = val1
01607 buff.write(_struct_dB.pack(_x.value, _x.type))
01608 _x = self
01609 buff.write(_struct_3I.pack(_x.model_aligned.track.header.seq, _x.model_aligned.track.header.stamp.secs, _x.model_aligned.track.header.stamp.nsecs))
01610 _x = self.model_aligned.track.header.frame_id
01611 length = len(_x)
01612 if python3 or type(_x) == unicode:
01613 _x = _x.encode('utf-8')
01614 length = len(_x)
01615 buff.write(struct.pack('<I%ss'%length, length, _x))
01616 buff.write(_struct_i.pack(self.model_aligned.track.id))
01617 length = len(self.model_aligned.track.pose)
01618 buff.write(_struct_I.pack(length))
01619 for val1 in self.model_aligned.track.pose:
01620 _v57 = val1.position
01621 _x = _v57
01622 buff.write(_struct_3d.pack(_x.x, _x.y, _x.z))
01623 _v58 = val1.orientation
01624 _x = _v58
01625 buff.write(_struct_4d.pack(_x.x, _x.y, _x.z, _x.w))
01626 length = len(self.model_aligned.track.pose_headers)
01627 buff.write(_struct_I.pack(length))
01628 for val1 in self.model_aligned.track.pose_headers:
01629 buff.write(_struct_I.pack(val1.seq))
01630 _v59 = val1.stamp
01631 _x = _v59
01632 buff.write(_struct_2I.pack(_x.secs, _x.nsecs))
01633 _x = val1.frame_id
01634 length = len(_x)
01635 if python3 or type(_x) == unicode:
01636 _x = _x.encode('utf-8')
01637 length = len(_x)
01638 buff.write(struct.pack('<I%ss'%length, length, _x))
01639 length = len(self.model_aligned.track.pose_projected)
01640 buff.write(_struct_I.pack(length))
01641 for val1 in self.model_aligned.track.pose_projected:
01642 _v60 = val1.position
01643 _x = _v60
01644 buff.write(_struct_3d.pack(_x.x, _x.y, _x.z))
01645 _v61 = val1.orientation
01646 _x = _v61
01647 buff.write(_struct_4d.pack(_x.x, _x.y, _x.z, _x.w))
01648 length = len(self.model_aligned.track.pose_resampled)
01649 buff.write(_struct_I.pack(length))
01650 for val1 in self.model_aligned.track.pose_resampled:
01651 _v62 = val1.position
01652 _x = _v62
01653 buff.write(_struct_3d.pack(_x.x, _x.y, _x.z))
01654 _v63 = val1.orientation
01655 _x = _v63
01656 buff.write(_struct_4d.pack(_x.x, _x.y, _x.z, _x.w))
01657 length = len(self.model_aligned.track.pose_flags)
01658 buff.write(_struct_I.pack(length))
01659 pattern = '<%sI'%length
01660 buff.write(struct.pack(pattern, *self.model_aligned.track.pose_flags))
01661 length = len(self.model_aligned.track.channels)
01662 buff.write(_struct_I.pack(length))
01663 for val1 in self.model_aligned.track.channels:
01664 _x = val1.name
01665 length = len(_x)
01666 if python3 or type(_x) == unicode:
01667 _x = _x.encode('utf-8')
01668 length = len(_x)
01669 buff.write(struct.pack('<I%ss'%length, length, _x))
01670 length = len(val1.values)
01671 buff.write(_struct_I.pack(length))
01672 pattern = '<%sf'%length
01673 buff.write(struct.pack(pattern, *val1.values))
01674 _x = self
01675 buff.write(_struct_3I.pack(_x.data_aligned.header.seq, _x.data_aligned.header.stamp.secs, _x.data_aligned.header.stamp.nsecs))
01676 _x = self.data_aligned.header.frame_id
01677 length = len(_x)
01678 if python3 or type(_x) == unicode:
01679 _x = _x.encode('utf-8')
01680 length = len(_x)
01681 buff.write(struct.pack('<I%ss'%length, length, _x))
01682 buff.write(_struct_i.pack(self.data_aligned.id))
01683 _x = self.data_aligned.name
01684 length = len(_x)
01685 if python3 or type(_x) == unicode:
01686 _x = _x.encode('utf-8')
01687 length = len(_x)
01688 buff.write(struct.pack('<I%ss'%length, length, _x))
01689 length = len(self.data_aligned.params)
01690 buff.write(_struct_I.pack(length))
01691 for val1 in self.data_aligned.params:
01692 _x = val1.name
01693 length = len(_x)
01694 if python3 or type(_x) == unicode:
01695 _x = _x.encode('utf-8')
01696 length = len(_x)
01697 buff.write(struct.pack('<I%ss'%length, length, _x))
01698 _x = val1
01699 buff.write(_struct_dB.pack(_x.value, _x.type))
01700 _x = self
01701 buff.write(_struct_3I.pack(_x.data_aligned.track.header.seq, _x.data_aligned.track.header.stamp.secs, _x.data_aligned.track.header.stamp.nsecs))
01702 _x = self.data_aligned.track.header.frame_id
01703 length = len(_x)
01704 if python3 or type(_x) == unicode:
01705 _x = _x.encode('utf-8')
01706 length = len(_x)
01707 buff.write(struct.pack('<I%ss'%length, length, _x))
01708 buff.write(_struct_i.pack(self.data_aligned.track.id))
01709 length = len(self.data_aligned.track.pose)
01710 buff.write(_struct_I.pack(length))
01711 for val1 in self.data_aligned.track.pose:
01712 _v64 = val1.position
01713 _x = _v64
01714 buff.write(_struct_3d.pack(_x.x, _x.y, _x.z))
01715 _v65 = val1.orientation
01716 _x = _v65
01717 buff.write(_struct_4d.pack(_x.x, _x.y, _x.z, _x.w))
01718 length = len(self.data_aligned.track.pose_headers)
01719 buff.write(_struct_I.pack(length))
01720 for val1 in self.data_aligned.track.pose_headers:
01721 buff.write(_struct_I.pack(val1.seq))
01722 _v66 = val1.stamp
01723 _x = _v66
01724 buff.write(_struct_2I.pack(_x.secs, _x.nsecs))
01725 _x = val1.frame_id
01726 length = len(_x)
01727 if python3 or type(_x) == unicode:
01728 _x = _x.encode('utf-8')
01729 length = len(_x)
01730 buff.write(struct.pack('<I%ss'%length, length, _x))
01731 length = len(self.data_aligned.track.pose_projected)
01732 buff.write(_struct_I.pack(length))
01733 for val1 in self.data_aligned.track.pose_projected:
01734 _v67 = val1.position
01735 _x = _v67
01736 buff.write(_struct_3d.pack(_x.x, _x.y, _x.z))
01737 _v68 = val1.orientation
01738 _x = _v68
01739 buff.write(_struct_4d.pack(_x.x, _x.y, _x.z, _x.w))
01740 length = len(self.data_aligned.track.pose_resampled)
01741 buff.write(_struct_I.pack(length))
01742 for val1 in self.data_aligned.track.pose_resampled:
01743 _v69 = val1.position
01744 _x = _v69
01745 buff.write(_struct_3d.pack(_x.x, _x.y, _x.z))
01746 _v70 = val1.orientation
01747 _x = _v70
01748 buff.write(_struct_4d.pack(_x.x, _x.y, _x.z, _x.w))
01749 length = len(self.data_aligned.track.pose_flags)
01750 buff.write(_struct_I.pack(length))
01751 pattern = '<%sI'%length
01752 buff.write(struct.pack(pattern, *self.data_aligned.track.pose_flags))
01753 length = len(self.data_aligned.track.channels)
01754 buff.write(_struct_I.pack(length))
01755 for val1 in self.data_aligned.track.channels:
01756 _x = val1.name
01757 length = len(_x)
01758 if python3 or type(_x) == unicode:
01759 _x = _x.encode('utf-8')
01760 length = len(_x)
01761 buff.write(struct.pack('<I%ss'%length, length, _x))
01762 length = len(val1.values)
01763 buff.write(_struct_I.pack(length))
01764 pattern = '<%sf'%length
01765 buff.write(struct.pack(pattern, *val1.values))
01766 buff.write(_struct_9d.pack(*self.R))
01767 buff.write(_struct_3d.pack(*self.T))
01768 _x = self
01769 buff.write(_struct_df.pack(_x.dist_rot, _x.dist_trans))
01770 except struct.error as se: self._check_types(se)
01771 except TypeError as te: self._check_types(te)
01772
01773 def deserialize(self, str):
01774 """
01775 unpack serialized message in str into this message instance
01776 :param str: byte array of serialized message, ``str``
01777 """
01778 try:
01779 if self.model_aligned is None:
01780 self.model_aligned = articulation_msgs.msg.ModelMsg()
01781 if self.data_aligned is None:
01782 self.data_aligned = articulation_msgs.msg.ModelMsg()
01783 end = 0
01784 _x = self
01785 start = end
01786 end += 12
01787 (_x.model_aligned.header.seq, _x.model_aligned.header.stamp.secs, _x.model_aligned.header.stamp.nsecs,) = _struct_3I.unpack(str[start:end])
01788 start = end
01789 end += 4
01790 (length,) = _struct_I.unpack(str[start:end])
01791 start = end
01792 end += length
01793 if python3:
01794 self.model_aligned.header.frame_id = str[start:end].decode('utf-8')
01795 else:
01796 self.model_aligned.header.frame_id = str[start:end]
01797 start = end
01798 end += 4
01799 (self.model_aligned.id,) = _struct_i.unpack(str[start:end])
01800 start = end
01801 end += 4
01802 (length,) = _struct_I.unpack(str[start:end])
01803 start = end
01804 end += length
01805 if python3:
01806 self.model_aligned.name = str[start:end].decode('utf-8')
01807 else:
01808 self.model_aligned.name = str[start:end]
01809 start = end
01810 end += 4
01811 (length,) = _struct_I.unpack(str[start:end])
01812 self.model_aligned.params = []
01813 for i in range(0, length):
01814 val1 = articulation_msgs.msg.ParamMsg()
01815 start = end
01816 end += 4
01817 (length,) = _struct_I.unpack(str[start:end])
01818 start = end
01819 end += length
01820 if python3:
01821 val1.name = str[start:end].decode('utf-8')
01822 else:
01823 val1.name = str[start:end]
01824 _x = val1
01825 start = end
01826 end += 9
01827 (_x.value, _x.type,) = _struct_dB.unpack(str[start:end])
01828 self.model_aligned.params.append(val1)
01829 _x = self
01830 start = end
01831 end += 12
01832 (_x.model_aligned.track.header.seq, _x.model_aligned.track.header.stamp.secs, _x.model_aligned.track.header.stamp.nsecs,) = _struct_3I.unpack(str[start:end])
01833 start = end
01834 end += 4
01835 (length,) = _struct_I.unpack(str[start:end])
01836 start = end
01837 end += length
01838 if python3:
01839 self.model_aligned.track.header.frame_id = str[start:end].decode('utf-8')
01840 else:
01841 self.model_aligned.track.header.frame_id = str[start:end]
01842 start = end
01843 end += 4
01844 (self.model_aligned.track.id,) = _struct_i.unpack(str[start:end])
01845 start = end
01846 end += 4
01847 (length,) = _struct_I.unpack(str[start:end])
01848 self.model_aligned.track.pose = []
01849 for i in range(0, length):
01850 val1 = geometry_msgs.msg.Pose()
01851 _v71 = val1.position
01852 _x = _v71
01853 start = end
01854 end += 24
01855 (_x.x, _x.y, _x.z,) = _struct_3d.unpack(str[start:end])
01856 _v72 = val1.orientation
01857 _x = _v72
01858 start = end
01859 end += 32
01860 (_x.x, _x.y, _x.z, _x.w,) = _struct_4d.unpack(str[start:end])
01861 self.model_aligned.track.pose.append(val1)
01862 start = end
01863 end += 4
01864 (length,) = _struct_I.unpack(str[start:end])
01865 self.model_aligned.track.pose_headers = []
01866 for i in range(0, length):
01867 val1 = std_msgs.msg.Header()
01868 start = end
01869 end += 4
01870 (val1.seq,) = _struct_I.unpack(str[start:end])
01871 _v73 = val1.stamp
01872 _x = _v73
01873 start = end
01874 end += 8
01875 (_x.secs, _x.nsecs,) = _struct_2I.unpack(str[start:end])
01876 start = end
01877 end += 4
01878 (length,) = _struct_I.unpack(str[start:end])
01879 start = end
01880 end += length
01881 if python3:
01882 val1.frame_id = str[start:end].decode('utf-8')
01883 else:
01884 val1.frame_id = str[start:end]
01885 self.model_aligned.track.pose_headers.append(val1)
01886 start = end
01887 end += 4
01888 (length,) = _struct_I.unpack(str[start:end])
01889 self.model_aligned.track.pose_projected = []
01890 for i in range(0, length):
01891 val1 = geometry_msgs.msg.Pose()
01892 _v74 = val1.position
01893 _x = _v74
01894 start = end
01895 end += 24
01896 (_x.x, _x.y, _x.z,) = _struct_3d.unpack(str[start:end])
01897 _v75 = val1.orientation
01898 _x = _v75
01899 start = end
01900 end += 32
01901 (_x.x, _x.y, _x.z, _x.w,) = _struct_4d.unpack(str[start:end])
01902 self.model_aligned.track.pose_projected.append(val1)
01903 start = end
01904 end += 4
01905 (length,) = _struct_I.unpack(str[start:end])
01906 self.model_aligned.track.pose_resampled = []
01907 for i in range(0, length):
01908 val1 = geometry_msgs.msg.Pose()
01909 _v76 = val1.position
01910 _x = _v76
01911 start = end
01912 end += 24
01913 (_x.x, _x.y, _x.z,) = _struct_3d.unpack(str[start:end])
01914 _v77 = val1.orientation
01915 _x = _v77
01916 start = end
01917 end += 32
01918 (_x.x, _x.y, _x.z, _x.w,) = _struct_4d.unpack(str[start:end])
01919 self.model_aligned.track.pose_resampled.append(val1)
01920 start = end
01921 end += 4
01922 (length,) = _struct_I.unpack(str[start:end])
01923 pattern = '<%sI'%length
01924 start = end
01925 end += struct.calcsize(pattern)
01926 self.model_aligned.track.pose_flags = struct.unpack(pattern, str[start:end])
01927 start = end
01928 end += 4
01929 (length,) = _struct_I.unpack(str[start:end])
01930 self.model_aligned.track.channels = []
01931 for i in range(0, length):
01932 val1 = sensor_msgs.msg.ChannelFloat32()
01933 start = end
01934 end += 4
01935 (length,) = _struct_I.unpack(str[start:end])
01936 start = end
01937 end += length
01938 if python3:
01939 val1.name = str[start:end].decode('utf-8')
01940 else:
01941 val1.name = str[start:end]
01942 start = end
01943 end += 4
01944 (length,) = _struct_I.unpack(str[start:end])
01945 pattern = '<%sf'%length
01946 start = end
01947 end += struct.calcsize(pattern)
01948 val1.values = struct.unpack(pattern, str[start:end])
01949 self.model_aligned.track.channels.append(val1)
01950 _x = self
01951 start = end
01952 end += 12
01953 (_x.data_aligned.header.seq, _x.data_aligned.header.stamp.secs, _x.data_aligned.header.stamp.nsecs,) = _struct_3I.unpack(str[start:end])
01954 start = end
01955 end += 4
01956 (length,) = _struct_I.unpack(str[start:end])
01957 start = end
01958 end += length
01959 if python3:
01960 self.data_aligned.header.frame_id = str[start:end].decode('utf-8')
01961 else:
01962 self.data_aligned.header.frame_id = str[start:end]
01963 start = end
01964 end += 4
01965 (self.data_aligned.id,) = _struct_i.unpack(str[start:end])
01966 start = end
01967 end += 4
01968 (length,) = _struct_I.unpack(str[start:end])
01969 start = end
01970 end += length
01971 if python3:
01972 self.data_aligned.name = str[start:end].decode('utf-8')
01973 else:
01974 self.data_aligned.name = str[start:end]
01975 start = end
01976 end += 4
01977 (length,) = _struct_I.unpack(str[start:end])
01978 self.data_aligned.params = []
01979 for i in range(0, length):
01980 val1 = articulation_msgs.msg.ParamMsg()
01981 start = end
01982 end += 4
01983 (length,) = _struct_I.unpack(str[start:end])
01984 start = end
01985 end += length
01986 if python3:
01987 val1.name = str[start:end].decode('utf-8')
01988 else:
01989 val1.name = str[start:end]
01990 _x = val1
01991 start = end
01992 end += 9
01993 (_x.value, _x.type,) = _struct_dB.unpack(str[start:end])
01994 self.data_aligned.params.append(val1)
01995 _x = self
01996 start = end
01997 end += 12
01998 (_x.data_aligned.track.header.seq, _x.data_aligned.track.header.stamp.secs, _x.data_aligned.track.header.stamp.nsecs,) = _struct_3I.unpack(str[start:end])
01999 start = end
02000 end += 4
02001 (length,) = _struct_I.unpack(str[start:end])
02002 start = end
02003 end += length
02004 if python3:
02005 self.data_aligned.track.header.frame_id = str[start:end].decode('utf-8')
02006 else:
02007 self.data_aligned.track.header.frame_id = str[start:end]
02008 start = end
02009 end += 4
02010 (self.data_aligned.track.id,) = _struct_i.unpack(str[start:end])
02011 start = end
02012 end += 4
02013 (length,) = _struct_I.unpack(str[start:end])
02014 self.data_aligned.track.pose = []
02015 for i in range(0, length):
02016 val1 = geometry_msgs.msg.Pose()
02017 _v78 = val1.position
02018 _x = _v78
02019 start = end
02020 end += 24
02021 (_x.x, _x.y, _x.z,) = _struct_3d.unpack(str[start:end])
02022 _v79 = val1.orientation
02023 _x = _v79
02024 start = end
02025 end += 32
02026 (_x.x, _x.y, _x.z, _x.w,) = _struct_4d.unpack(str[start:end])
02027 self.data_aligned.track.pose.append(val1)
02028 start = end
02029 end += 4
02030 (length,) = _struct_I.unpack(str[start:end])
02031 self.data_aligned.track.pose_headers = []
02032 for i in range(0, length):
02033 val1 = std_msgs.msg.Header()
02034 start = end
02035 end += 4
02036 (val1.seq,) = _struct_I.unpack(str[start:end])
02037 _v80 = val1.stamp
02038 _x = _v80
02039 start = end
02040 end += 8
02041 (_x.secs, _x.nsecs,) = _struct_2I.unpack(str[start:end])
02042 start = end
02043 end += 4
02044 (length,) = _struct_I.unpack(str[start:end])
02045 start = end
02046 end += length
02047 if python3:
02048 val1.frame_id = str[start:end].decode('utf-8')
02049 else:
02050 val1.frame_id = str[start:end]
02051 self.data_aligned.track.pose_headers.append(val1)
02052 start = end
02053 end += 4
02054 (length,) = _struct_I.unpack(str[start:end])
02055 self.data_aligned.track.pose_projected = []
02056 for i in range(0, length):
02057 val1 = geometry_msgs.msg.Pose()
02058 _v81 = val1.position
02059 _x = _v81
02060 start = end
02061 end += 24
02062 (_x.x, _x.y, _x.z,) = _struct_3d.unpack(str[start:end])
02063 _v82 = val1.orientation
02064 _x = _v82
02065 start = end
02066 end += 32
02067 (_x.x, _x.y, _x.z, _x.w,) = _struct_4d.unpack(str[start:end])
02068 self.data_aligned.track.pose_projected.append(val1)
02069 start = end
02070 end += 4
02071 (length,) = _struct_I.unpack(str[start:end])
02072 self.data_aligned.track.pose_resampled = []
02073 for i in range(0, length):
02074 val1 = geometry_msgs.msg.Pose()
02075 _v83 = val1.position
02076 _x = _v83
02077 start = end
02078 end += 24
02079 (_x.x, _x.y, _x.z,) = _struct_3d.unpack(str[start:end])
02080 _v84 = val1.orientation
02081 _x = _v84
02082 start = end
02083 end += 32
02084 (_x.x, _x.y, _x.z, _x.w,) = _struct_4d.unpack(str[start:end])
02085 self.data_aligned.track.pose_resampled.append(val1)
02086 start = end
02087 end += 4
02088 (length,) = _struct_I.unpack(str[start:end])
02089 pattern = '<%sI'%length
02090 start = end
02091 end += struct.calcsize(pattern)
02092 self.data_aligned.track.pose_flags = struct.unpack(pattern, str[start:end])
02093 start = end
02094 end += 4
02095 (length,) = _struct_I.unpack(str[start:end])
02096 self.data_aligned.track.channels = []
02097 for i in range(0, length):
02098 val1 = sensor_msgs.msg.ChannelFloat32()
02099 start = end
02100 end += 4
02101 (length,) = _struct_I.unpack(str[start:end])
02102 start = end
02103 end += length
02104 if python3:
02105 val1.name = str[start:end].decode('utf-8')
02106 else:
02107 val1.name = str[start:end]
02108 start = end
02109 end += 4
02110 (length,) = _struct_I.unpack(str[start:end])
02111 pattern = '<%sf'%length
02112 start = end
02113 end += struct.calcsize(pattern)
02114 val1.values = struct.unpack(pattern, str[start:end])
02115 self.data_aligned.track.channels.append(val1)
02116 start = end
02117 end += 72
02118 self.R = _struct_9d.unpack(str[start:end])
02119 start = end
02120 end += 24
02121 self.T = _struct_3d.unpack(str[start:end])
02122 _x = self
02123 start = end
02124 end += 12
02125 (_x.dist_rot, _x.dist_trans,) = _struct_df.unpack(str[start:end])
02126 return self
02127 except struct.error as e:
02128 raise genpy.DeserializationError(e) #most likely buffer underfill
02129
02130
02131 def serialize_numpy(self, buff, numpy):
02132 """
02133 serialize message with numpy array types into buffer
02134 :param buff: buffer, ``StringIO``
02135 :param numpy: numpy python module
02136 """
02137 try:
02138 _x = self
02139 buff.write(_struct_3I.pack(_x.model_aligned.header.seq, _x.model_aligned.header.stamp.secs, _x.model_aligned.header.stamp.nsecs))
02140 _x = self.model_aligned.header.frame_id
02141 length = len(_x)
02142 if python3 or type(_x) == unicode:
02143 _x = _x.encode('utf-8')
02144 length = len(_x)
02145 buff.write(struct.pack('<I%ss'%length, length, _x))
02146 buff.write(_struct_i.pack(self.model_aligned.id))
02147 _x = self.model_aligned.name
02148 length = len(_x)
02149 if python3 or type(_x) == unicode:
02150 _x = _x.encode('utf-8')
02151 length = len(_x)
02152 buff.write(struct.pack('<I%ss'%length, length, _x))
02153 length = len(self.model_aligned.params)
02154 buff.write(_struct_I.pack(length))
02155 for val1 in self.model_aligned.params:
02156 _x = val1.name
02157 length = len(_x)
02158 if python3 or type(_x) == unicode:
02159 _x = _x.encode('utf-8')
02160 length = len(_x)
02161 buff.write(struct.pack('<I%ss'%length, length, _x))
02162 _x = val1
02163 buff.write(_struct_dB.pack(_x.value, _x.type))
02164 _x = self
02165 buff.write(_struct_3I.pack(_x.model_aligned.track.header.seq, _x.model_aligned.track.header.stamp.secs, _x.model_aligned.track.header.stamp.nsecs))
02166 _x = self.model_aligned.track.header.frame_id
02167 length = len(_x)
02168 if python3 or type(_x) == unicode:
02169 _x = _x.encode('utf-8')
02170 length = len(_x)
02171 buff.write(struct.pack('<I%ss'%length, length, _x))
02172 buff.write(_struct_i.pack(self.model_aligned.track.id))
02173 length = len(self.model_aligned.track.pose)
02174 buff.write(_struct_I.pack(length))
02175 for val1 in self.model_aligned.track.pose:
02176 _v85 = val1.position
02177 _x = _v85
02178 buff.write(_struct_3d.pack(_x.x, _x.y, _x.z))
02179 _v86 = val1.orientation
02180 _x = _v86
02181 buff.write(_struct_4d.pack(_x.x, _x.y, _x.z, _x.w))
02182 length = len(self.model_aligned.track.pose_headers)
02183 buff.write(_struct_I.pack(length))
02184 for val1 in self.model_aligned.track.pose_headers:
02185 buff.write(_struct_I.pack(val1.seq))
02186 _v87 = val1.stamp
02187 _x = _v87
02188 buff.write(_struct_2I.pack(_x.secs, _x.nsecs))
02189 _x = val1.frame_id
02190 length = len(_x)
02191 if python3 or type(_x) == unicode:
02192 _x = _x.encode('utf-8')
02193 length = len(_x)
02194 buff.write(struct.pack('<I%ss'%length, length, _x))
02195 length = len(self.model_aligned.track.pose_projected)
02196 buff.write(_struct_I.pack(length))
02197 for val1 in self.model_aligned.track.pose_projected:
02198 _v88 = val1.position
02199 _x = _v88
02200 buff.write(_struct_3d.pack(_x.x, _x.y, _x.z))
02201 _v89 = val1.orientation
02202 _x = _v89
02203 buff.write(_struct_4d.pack(_x.x, _x.y, _x.z, _x.w))
02204 length = len(self.model_aligned.track.pose_resampled)
02205 buff.write(_struct_I.pack(length))
02206 for val1 in self.model_aligned.track.pose_resampled:
02207 _v90 = val1.position
02208 _x = _v90
02209 buff.write(_struct_3d.pack(_x.x, _x.y, _x.z))
02210 _v91 = val1.orientation
02211 _x = _v91
02212 buff.write(_struct_4d.pack(_x.x, _x.y, _x.z, _x.w))
02213 length = len(self.model_aligned.track.pose_flags)
02214 buff.write(_struct_I.pack(length))
02215 pattern = '<%sI'%length
02216 buff.write(self.model_aligned.track.pose_flags.tostring())
02217 length = len(self.model_aligned.track.channels)
02218 buff.write(_struct_I.pack(length))
02219 for val1 in self.model_aligned.track.channels:
02220 _x = val1.name
02221 length = len(_x)
02222 if python3 or type(_x) == unicode:
02223 _x = _x.encode('utf-8')
02224 length = len(_x)
02225 buff.write(struct.pack('<I%ss'%length, length, _x))
02226 length = len(val1.values)
02227 buff.write(_struct_I.pack(length))
02228 pattern = '<%sf'%length
02229 buff.write(val1.values.tostring())
02230 _x = self
02231 buff.write(_struct_3I.pack(_x.data_aligned.header.seq, _x.data_aligned.header.stamp.secs, _x.data_aligned.header.stamp.nsecs))
02232 _x = self.data_aligned.header.frame_id
02233 length = len(_x)
02234 if python3 or type(_x) == unicode:
02235 _x = _x.encode('utf-8')
02236 length = len(_x)
02237 buff.write(struct.pack('<I%ss'%length, length, _x))
02238 buff.write(_struct_i.pack(self.data_aligned.id))
02239 _x = self.data_aligned.name
02240 length = len(_x)
02241 if python3 or type(_x) == unicode:
02242 _x = _x.encode('utf-8')
02243 length = len(_x)
02244 buff.write(struct.pack('<I%ss'%length, length, _x))
02245 length = len(self.data_aligned.params)
02246 buff.write(_struct_I.pack(length))
02247 for val1 in self.data_aligned.params:
02248 _x = val1.name
02249 length = len(_x)
02250 if python3 or type(_x) == unicode:
02251 _x = _x.encode('utf-8')
02252 length = len(_x)
02253 buff.write(struct.pack('<I%ss'%length, length, _x))
02254 _x = val1
02255 buff.write(_struct_dB.pack(_x.value, _x.type))
02256 _x = self
02257 buff.write(_struct_3I.pack(_x.data_aligned.track.header.seq, _x.data_aligned.track.header.stamp.secs, _x.data_aligned.track.header.stamp.nsecs))
02258 _x = self.data_aligned.track.header.frame_id
02259 length = len(_x)
02260 if python3 or type(_x) == unicode:
02261 _x = _x.encode('utf-8')
02262 length = len(_x)
02263 buff.write(struct.pack('<I%ss'%length, length, _x))
02264 buff.write(_struct_i.pack(self.data_aligned.track.id))
02265 length = len(self.data_aligned.track.pose)
02266 buff.write(_struct_I.pack(length))
02267 for val1 in self.data_aligned.track.pose:
02268 _v92 = val1.position
02269 _x = _v92
02270 buff.write(_struct_3d.pack(_x.x, _x.y, _x.z))
02271 _v93 = val1.orientation
02272 _x = _v93
02273 buff.write(_struct_4d.pack(_x.x, _x.y, _x.z, _x.w))
02274 length = len(self.data_aligned.track.pose_headers)
02275 buff.write(_struct_I.pack(length))
02276 for val1 in self.data_aligned.track.pose_headers:
02277 buff.write(_struct_I.pack(val1.seq))
02278 _v94 = val1.stamp
02279 _x = _v94
02280 buff.write(_struct_2I.pack(_x.secs, _x.nsecs))
02281 _x = val1.frame_id
02282 length = len(_x)
02283 if python3 or type(_x) == unicode:
02284 _x = _x.encode('utf-8')
02285 length = len(_x)
02286 buff.write(struct.pack('<I%ss'%length, length, _x))
02287 length = len(self.data_aligned.track.pose_projected)
02288 buff.write(_struct_I.pack(length))
02289 for val1 in self.data_aligned.track.pose_projected:
02290 _v95 = val1.position
02291 _x = _v95
02292 buff.write(_struct_3d.pack(_x.x, _x.y, _x.z))
02293 _v96 = val1.orientation
02294 _x = _v96
02295 buff.write(_struct_4d.pack(_x.x, _x.y, _x.z, _x.w))
02296 length = len(self.data_aligned.track.pose_resampled)
02297 buff.write(_struct_I.pack(length))
02298 for val1 in self.data_aligned.track.pose_resampled:
02299 _v97 = val1.position
02300 _x = _v97
02301 buff.write(_struct_3d.pack(_x.x, _x.y, _x.z))
02302 _v98 = val1.orientation
02303 _x = _v98
02304 buff.write(_struct_4d.pack(_x.x, _x.y, _x.z, _x.w))
02305 length = len(self.data_aligned.track.pose_flags)
02306 buff.write(_struct_I.pack(length))
02307 pattern = '<%sI'%length
02308 buff.write(self.data_aligned.track.pose_flags.tostring())
02309 length = len(self.data_aligned.track.channels)
02310 buff.write(_struct_I.pack(length))
02311 for val1 in self.data_aligned.track.channels:
02312 _x = val1.name
02313 length = len(_x)
02314 if python3 or type(_x) == unicode:
02315 _x = _x.encode('utf-8')
02316 length = len(_x)
02317 buff.write(struct.pack('<I%ss'%length, length, _x))
02318 length = len(val1.values)
02319 buff.write(_struct_I.pack(length))
02320 pattern = '<%sf'%length
02321 buff.write(val1.values.tostring())
02322 buff.write(self.R.tostring())
02323 buff.write(self.T.tostring())
02324 _x = self
02325 buff.write(_struct_df.pack(_x.dist_rot, _x.dist_trans))
02326 except struct.error as se: self._check_types(se)
02327 except TypeError as te: self._check_types(te)
02328
02329 def deserialize_numpy(self, str, numpy):
02330 """
02331 unpack serialized message in str into this message instance using numpy for array types
02332 :param str: byte array of serialized message, ``str``
02333 :param numpy: numpy python module
02334 """
02335 try:
02336 if self.model_aligned is None:
02337 self.model_aligned = articulation_msgs.msg.ModelMsg()
02338 if self.data_aligned is None:
02339 self.data_aligned = articulation_msgs.msg.ModelMsg()
02340 end = 0
02341 _x = self
02342 start = end
02343 end += 12
02344 (_x.model_aligned.header.seq, _x.model_aligned.header.stamp.secs, _x.model_aligned.header.stamp.nsecs,) = _struct_3I.unpack(str[start:end])
02345 start = end
02346 end += 4
02347 (length,) = _struct_I.unpack(str[start:end])
02348 start = end
02349 end += length
02350 if python3:
02351 self.model_aligned.header.frame_id = str[start:end].decode('utf-8')
02352 else:
02353 self.model_aligned.header.frame_id = str[start:end]
02354 start = end
02355 end += 4
02356 (self.model_aligned.id,) = _struct_i.unpack(str[start:end])
02357 start = end
02358 end += 4
02359 (length,) = _struct_I.unpack(str[start:end])
02360 start = end
02361 end += length
02362 if python3:
02363 self.model_aligned.name = str[start:end].decode('utf-8')
02364 else:
02365 self.model_aligned.name = str[start:end]
02366 start = end
02367 end += 4
02368 (length,) = _struct_I.unpack(str[start:end])
02369 self.model_aligned.params = []
02370 for i in range(0, length):
02371 val1 = articulation_msgs.msg.ParamMsg()
02372 start = end
02373 end += 4
02374 (length,) = _struct_I.unpack(str[start:end])
02375 start = end
02376 end += length
02377 if python3:
02378 val1.name = str[start:end].decode('utf-8')
02379 else:
02380 val1.name = str[start:end]
02381 _x = val1
02382 start = end
02383 end += 9
02384 (_x.value, _x.type,) = _struct_dB.unpack(str[start:end])
02385 self.model_aligned.params.append(val1)
02386 _x = self
02387 start = end
02388 end += 12
02389 (_x.model_aligned.track.header.seq, _x.model_aligned.track.header.stamp.secs, _x.model_aligned.track.header.stamp.nsecs,) = _struct_3I.unpack(str[start:end])
02390 start = end
02391 end += 4
02392 (length,) = _struct_I.unpack(str[start:end])
02393 start = end
02394 end += length
02395 if python3:
02396 self.model_aligned.track.header.frame_id = str[start:end].decode('utf-8')
02397 else:
02398 self.model_aligned.track.header.frame_id = str[start:end]
02399 start = end
02400 end += 4
02401 (self.model_aligned.track.id,) = _struct_i.unpack(str[start:end])
02402 start = end
02403 end += 4
02404 (length,) = _struct_I.unpack(str[start:end])
02405 self.model_aligned.track.pose = []
02406 for i in range(0, length):
02407 val1 = geometry_msgs.msg.Pose()
02408 _v99 = val1.position
02409 _x = _v99
02410 start = end
02411 end += 24
02412 (_x.x, _x.y, _x.z,) = _struct_3d.unpack(str[start:end])
02413 _v100 = val1.orientation
02414 _x = _v100
02415 start = end
02416 end += 32
02417 (_x.x, _x.y, _x.z, _x.w,) = _struct_4d.unpack(str[start:end])
02418 self.model_aligned.track.pose.append(val1)
02419 start = end
02420 end += 4
02421 (length,) = _struct_I.unpack(str[start:end])
02422 self.model_aligned.track.pose_headers = []
02423 for i in range(0, length):
02424 val1 = std_msgs.msg.Header()
02425 start = end
02426 end += 4
02427 (val1.seq,) = _struct_I.unpack(str[start:end])
02428 _v101 = val1.stamp
02429 _x = _v101
02430 start = end
02431 end += 8
02432 (_x.secs, _x.nsecs,) = _struct_2I.unpack(str[start:end])
02433 start = end
02434 end += 4
02435 (length,) = _struct_I.unpack(str[start:end])
02436 start = end
02437 end += length
02438 if python3:
02439 val1.frame_id = str[start:end].decode('utf-8')
02440 else:
02441 val1.frame_id = str[start:end]
02442 self.model_aligned.track.pose_headers.append(val1)
02443 start = end
02444 end += 4
02445 (length,) = _struct_I.unpack(str[start:end])
02446 self.model_aligned.track.pose_projected = []
02447 for i in range(0, length):
02448 val1 = geometry_msgs.msg.Pose()
02449 _v102 = val1.position
02450 _x = _v102
02451 start = end
02452 end += 24
02453 (_x.x, _x.y, _x.z,) = _struct_3d.unpack(str[start:end])
02454 _v103 = val1.orientation
02455 _x = _v103
02456 start = end
02457 end += 32
02458 (_x.x, _x.y, _x.z, _x.w,) = _struct_4d.unpack(str[start:end])
02459 self.model_aligned.track.pose_projected.append(val1)
02460 start = end
02461 end += 4
02462 (length,) = _struct_I.unpack(str[start:end])
02463 self.model_aligned.track.pose_resampled = []
02464 for i in range(0, length):
02465 val1 = geometry_msgs.msg.Pose()
02466 _v104 = val1.position
02467 _x = _v104
02468 start = end
02469 end += 24
02470 (_x.x, _x.y, _x.z,) = _struct_3d.unpack(str[start:end])
02471 _v105 = val1.orientation
02472 _x = _v105
02473 start = end
02474 end += 32
02475 (_x.x, _x.y, _x.z, _x.w,) = _struct_4d.unpack(str[start:end])
02476 self.model_aligned.track.pose_resampled.append(val1)
02477 start = end
02478 end += 4
02479 (length,) = _struct_I.unpack(str[start:end])
02480 pattern = '<%sI'%length
02481 start = end
02482 end += struct.calcsize(pattern)
02483 self.model_aligned.track.pose_flags = numpy.frombuffer(str[start:end], dtype=numpy.uint32, count=length)
02484 start = end
02485 end += 4
02486 (length,) = _struct_I.unpack(str[start:end])
02487 self.model_aligned.track.channels = []
02488 for i in range(0, length):
02489 val1 = sensor_msgs.msg.ChannelFloat32()
02490 start = end
02491 end += 4
02492 (length,) = _struct_I.unpack(str[start:end])
02493 start = end
02494 end += length
02495 if python3:
02496 val1.name = str[start:end].decode('utf-8')
02497 else:
02498 val1.name = str[start:end]
02499 start = end
02500 end += 4
02501 (length,) = _struct_I.unpack(str[start:end])
02502 pattern = '<%sf'%length
02503 start = end
02504 end += struct.calcsize(pattern)
02505 val1.values = numpy.frombuffer(str[start:end], dtype=numpy.float32, count=length)
02506 self.model_aligned.track.channels.append(val1)
02507 _x = self
02508 start = end
02509 end += 12
02510 (_x.data_aligned.header.seq, _x.data_aligned.header.stamp.secs, _x.data_aligned.header.stamp.nsecs,) = _struct_3I.unpack(str[start:end])
02511 start = end
02512 end += 4
02513 (length,) = _struct_I.unpack(str[start:end])
02514 start = end
02515 end += length
02516 if python3:
02517 self.data_aligned.header.frame_id = str[start:end].decode('utf-8')
02518 else:
02519 self.data_aligned.header.frame_id = str[start:end]
02520 start = end
02521 end += 4
02522 (self.data_aligned.id,) = _struct_i.unpack(str[start:end])
02523 start = end
02524 end += 4
02525 (length,) = _struct_I.unpack(str[start:end])
02526 start = end
02527 end += length
02528 if python3:
02529 self.data_aligned.name = str[start:end].decode('utf-8')
02530 else:
02531 self.data_aligned.name = str[start:end]
02532 start = end
02533 end += 4
02534 (length,) = _struct_I.unpack(str[start:end])
02535 self.data_aligned.params = []
02536 for i in range(0, length):
02537 val1 = articulation_msgs.msg.ParamMsg()
02538 start = end
02539 end += 4
02540 (length,) = _struct_I.unpack(str[start:end])
02541 start = end
02542 end += length
02543 if python3:
02544 val1.name = str[start:end].decode('utf-8')
02545 else:
02546 val1.name = str[start:end]
02547 _x = val1
02548 start = end
02549 end += 9
02550 (_x.value, _x.type,) = _struct_dB.unpack(str[start:end])
02551 self.data_aligned.params.append(val1)
02552 _x = self
02553 start = end
02554 end += 12
02555 (_x.data_aligned.track.header.seq, _x.data_aligned.track.header.stamp.secs, _x.data_aligned.track.header.stamp.nsecs,) = _struct_3I.unpack(str[start:end])
02556 start = end
02557 end += 4
02558 (length,) = _struct_I.unpack(str[start:end])
02559 start = end
02560 end += length
02561 if python3:
02562 self.data_aligned.track.header.frame_id = str[start:end].decode('utf-8')
02563 else:
02564 self.data_aligned.track.header.frame_id = str[start:end]
02565 start = end
02566 end += 4
02567 (self.data_aligned.track.id,) = _struct_i.unpack(str[start:end])
02568 start = end
02569 end += 4
02570 (length,) = _struct_I.unpack(str[start:end])
02571 self.data_aligned.track.pose = []
02572 for i in range(0, length):
02573 val1 = geometry_msgs.msg.Pose()
02574 _v106 = val1.position
02575 _x = _v106
02576 start = end
02577 end += 24
02578 (_x.x, _x.y, _x.z,) = _struct_3d.unpack(str[start:end])
02579 _v107 = val1.orientation
02580 _x = _v107
02581 start = end
02582 end += 32
02583 (_x.x, _x.y, _x.z, _x.w,) = _struct_4d.unpack(str[start:end])
02584 self.data_aligned.track.pose.append(val1)
02585 start = end
02586 end += 4
02587 (length,) = _struct_I.unpack(str[start:end])
02588 self.data_aligned.track.pose_headers = []
02589 for i in range(0, length):
02590 val1 = std_msgs.msg.Header()
02591 start = end
02592 end += 4
02593 (val1.seq,) = _struct_I.unpack(str[start:end])
02594 _v108 = val1.stamp
02595 _x = _v108
02596 start = end
02597 end += 8
02598 (_x.secs, _x.nsecs,) = _struct_2I.unpack(str[start:end])
02599 start = end
02600 end += 4
02601 (length,) = _struct_I.unpack(str[start:end])
02602 start = end
02603 end += length
02604 if python3:
02605 val1.frame_id = str[start:end].decode('utf-8')
02606 else:
02607 val1.frame_id = str[start:end]
02608 self.data_aligned.track.pose_headers.append(val1)
02609 start = end
02610 end += 4
02611 (length,) = _struct_I.unpack(str[start:end])
02612 self.data_aligned.track.pose_projected = []
02613 for i in range(0, length):
02614 val1 = geometry_msgs.msg.Pose()
02615 _v109 = val1.position
02616 _x = _v109
02617 start = end
02618 end += 24
02619 (_x.x, _x.y, _x.z,) = _struct_3d.unpack(str[start:end])
02620 _v110 = val1.orientation
02621 _x = _v110
02622 start = end
02623 end += 32
02624 (_x.x, _x.y, _x.z, _x.w,) = _struct_4d.unpack(str[start:end])
02625 self.data_aligned.track.pose_projected.append(val1)
02626 start = end
02627 end += 4
02628 (length,) = _struct_I.unpack(str[start:end])
02629 self.data_aligned.track.pose_resampled = []
02630 for i in range(0, length):
02631 val1 = geometry_msgs.msg.Pose()
02632 _v111 = val1.position
02633 _x = _v111
02634 start = end
02635 end += 24
02636 (_x.x, _x.y, _x.z,) = _struct_3d.unpack(str[start:end])
02637 _v112 = val1.orientation
02638 _x = _v112
02639 start = end
02640 end += 32
02641 (_x.x, _x.y, _x.z, _x.w,) = _struct_4d.unpack(str[start:end])
02642 self.data_aligned.track.pose_resampled.append(val1)
02643 start = end
02644 end += 4
02645 (length,) = _struct_I.unpack(str[start:end])
02646 pattern = '<%sI'%length
02647 start = end
02648 end += struct.calcsize(pattern)
02649 self.data_aligned.track.pose_flags = numpy.frombuffer(str[start:end], dtype=numpy.uint32, count=length)
02650 start = end
02651 end += 4
02652 (length,) = _struct_I.unpack(str[start:end])
02653 self.data_aligned.track.channels = []
02654 for i in range(0, length):
02655 val1 = sensor_msgs.msg.ChannelFloat32()
02656 start = end
02657 end += 4
02658 (length,) = _struct_I.unpack(str[start:end])
02659 start = end
02660 end += length
02661 if python3:
02662 val1.name = str[start:end].decode('utf-8')
02663 else:
02664 val1.name = str[start:end]
02665 start = end
02666 end += 4
02667 (length,) = _struct_I.unpack(str[start:end])
02668 pattern = '<%sf'%length
02669 start = end
02670 end += struct.calcsize(pattern)
02671 val1.values = numpy.frombuffer(str[start:end], dtype=numpy.float32, count=length)
02672 self.data_aligned.track.channels.append(val1)
02673 start = end
02674 end += 72
02675 self.R = numpy.frombuffer(str[start:end], dtype=numpy.float64, count=9)
02676 start = end
02677 end += 24
02678 self.T = numpy.frombuffer(str[start:end], dtype=numpy.float64, count=3)
02679 _x = self
02680 start = end
02681 end += 12
02682 (_x.dist_rot, _x.dist_trans,) = _struct_df.unpack(str[start:end])
02683 return self
02684 except struct.error as e:
02685 raise genpy.DeserializationError(e) #most likely buffer underfill
02686
02687 _struct_I = genpy.struct_I
02688 _struct_i = struct.Struct("<i")
02689 _struct_dB = struct.Struct("<dB")
02690 _struct_9d = struct.Struct("<9d")
02691 _struct_3I = struct.Struct("<3I")
02692 _struct_df = struct.Struct("<df")
02693 _struct_4d = struct.Struct("<4d")
02694 _struct_2I = struct.Struct("<2I")
02695 _struct_3d = struct.Struct("<3d")
02696 class AlignModelSrv(object):
02697 _type = 'articulation_msgs/AlignModelSrv'
02698 _md5sum = '72514be7b9552a12ceffcc5039c793f3'
02699 _request_class = AlignModelSrvRequest
02700 _response_class = AlignModelSrvResponse