_AlignModelSrv.py
Go to the documentation of this file.
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 #flag to mark the presence of a Header object
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
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends


articulation_msgs
Author(s): Juergen Sturm
autogenerated on Wed Dec 26 2012 15:30:49