00001 """autogenerated by genpy from camera_pose_calibration/RobotMeasurement.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 camera_pose_calibration.msg
00009 import geometry_msgs.msg
00010 import calibration_msgs.msg
00011 import std_msgs.msg
00012
00013 class RobotMeasurement(genpy.Message):
00014 _md5sum = "b245ac2435925ecb8e4bf5475545f405"
00015 _type = "camera_pose_calibration/RobotMeasurement"
00016 _has_header = True
00017 _full_text = """Header header
00018 CameraMeasurement[] M_cam
00019
00020 ================================================================================
00021 MSG: std_msgs/Header
00022 # Standard metadata for higher-level stamped data types.
00023 # This is generally used to communicate timestamped data
00024 # in a particular coordinate frame.
00025 #
00026 # sequence ID: consecutively increasing ID
00027 uint32 seq
00028 #Two-integer timestamp that is expressed as:
00029 # * stamp.secs: seconds (stamp_secs) since epoch
00030 # * stamp.nsecs: nanoseconds since stamp_secs
00031 # time-handling sugar is provided by the client library
00032 time stamp
00033 #Frame this data is associated with
00034 # 0: no frame
00035 # 1: global frame
00036 string frame_id
00037
00038 ================================================================================
00039 MSG: camera_pose_calibration/CameraMeasurement
00040 Header header
00041 string camera_id
00042 calibration_msgs/CalibrationPattern features
00043 sensor_msgs/CameraInfo cam_info
00044
00045 ================================================================================
00046 MSG: calibration_msgs/CalibrationPattern
00047 Header header
00048 geometry_msgs/Point[] object_points
00049 geometry_msgs/Point[] image_points
00050 uint8 success
00051
00052 ================================================================================
00053 MSG: geometry_msgs/Point
00054 # This contains the position of a point in free space
00055 float64 x
00056 float64 y
00057 float64 z
00058
00059 ================================================================================
00060 MSG: sensor_msgs/CameraInfo
00061 # This message defines meta information for a camera. It should be in a
00062 # camera namespace on topic "camera_info" and accompanied by up to five
00063 # image topics named:
00064 #
00065 # image_raw - raw data from the camera driver, possibly Bayer encoded
00066 # image - monochrome, distorted
00067 # image_color - color, distorted
00068 # image_rect - monochrome, rectified
00069 # image_rect_color - color, rectified
00070 #
00071 # The image_pipeline contains packages (image_proc, stereo_image_proc)
00072 # for producing the four processed image topics from image_raw and
00073 # camera_info. The meaning of the camera parameters are described in
00074 # detail at http://www.ros.org/wiki/image_pipeline/CameraInfo.
00075 #
00076 # The image_geometry package provides a user-friendly interface to
00077 # common operations using this meta information. If you want to, e.g.,
00078 # project a 3d point into image coordinates, we strongly recommend
00079 # using image_geometry.
00080 #
00081 # If the camera is uncalibrated, the matrices D, K, R, P should be left
00082 # zeroed out. In particular, clients may assume that K[0] == 0.0
00083 # indicates an uncalibrated camera.
00084
00085 #######################################################################
00086 # Image acquisition info #
00087 #######################################################################
00088
00089 # Time of image acquisition, camera coordinate frame ID
00090 Header header # Header timestamp should be acquisition time of image
00091 # Header frame_id should be optical frame of camera
00092 # origin of frame should be optical center of camera
00093 # +x should point to the right in the image
00094 # +y should point down in the image
00095 # +z should point into the plane of the image
00096
00097
00098 #######################################################################
00099 # Calibration Parameters #
00100 #######################################################################
00101 # These are fixed during camera calibration. Their values will be the #
00102 # same in all messages until the camera is recalibrated. Note that #
00103 # self-calibrating systems may "recalibrate" frequently. #
00104 # #
00105 # The internal parameters can be used to warp a raw (distorted) image #
00106 # to: #
00107 # 1. An undistorted image (requires D and K) #
00108 # 2. A rectified image (requires D, K, R) #
00109 # The projection matrix P projects 3D points into the rectified image.#
00110 #######################################################################
00111
00112 # The image dimensions with which the camera was calibrated. Normally
00113 # this will be the full camera resolution in pixels.
00114 uint32 height
00115 uint32 width
00116
00117 # The distortion model used. Supported models are listed in
00118 # sensor_msgs/distortion_models.h. For most cameras, "plumb_bob" - a
00119 # simple model of radial and tangential distortion - is sufficent.
00120 string distortion_model
00121
00122 # The distortion parameters, size depending on the distortion model.
00123 # For "plumb_bob", the 5 parameters are: (k1, k2, t1, t2, k3).
00124 float64[] D
00125
00126 # Intrinsic camera matrix for the raw (distorted) images.
00127 # [fx 0 cx]
00128 # K = [ 0 fy cy]
00129 # [ 0 0 1]
00130 # Projects 3D points in the camera coordinate frame to 2D pixel
00131 # coordinates using the focal lengths (fx, fy) and principal point
00132 # (cx, cy).
00133 float64[9] K # 3x3 row-major matrix
00134
00135 # Rectification matrix (stereo cameras only)
00136 # A rotation matrix aligning the camera coordinate system to the ideal
00137 # stereo image plane so that epipolar lines in both stereo images are
00138 # parallel.
00139 float64[9] R # 3x3 row-major matrix
00140
00141 # Projection/camera matrix
00142 # [fx' 0 cx' Tx]
00143 # P = [ 0 fy' cy' Ty]
00144 # [ 0 0 1 0]
00145 # By convention, this matrix specifies the intrinsic (camera) matrix
00146 # of the processed (rectified) image. That is, the left 3x3 portion
00147 # is the normal camera intrinsic matrix for the rectified image.
00148 # It projects 3D points in the camera coordinate frame to 2D pixel
00149 # coordinates using the focal lengths (fx', fy') and principal point
00150 # (cx', cy') - these may differ from the values in K.
00151 # For monocular cameras, Tx = Ty = 0. Normally, monocular cameras will
00152 # also have R = the identity and P[1:3,1:3] = K.
00153 # For a stereo pair, the fourth column [Tx Ty 0]' is related to the
00154 # position of the optical center of the second camera in the first
00155 # camera's frame. We assume Tz = 0 so both cameras are in the same
00156 # stereo image plane. The first camera always has Tx = Ty = 0. For
00157 # the right (second) camera of a horizontal stereo pair, Ty = 0 and
00158 # Tx = -fx' * B, where B is the baseline between the cameras.
00159 # Given a 3D point [X Y Z]', the projection (x, y) of the point onto
00160 # the rectified image is given by:
00161 # [u v w]' = P * [X Y Z 1]'
00162 # x = u / w
00163 # y = v / w
00164 # This holds for both images of a stereo pair.
00165 float64[12] P # 3x4 row-major matrix
00166
00167
00168 #######################################################################
00169 # Operational Parameters #
00170 #######################################################################
00171 # These define the image region actually captured by the camera #
00172 # driver. Although they affect the geometry of the output image, they #
00173 # may be changed freely without recalibrating the camera. #
00174 #######################################################################
00175
00176 # Binning refers here to any camera setting which combines rectangular
00177 # neighborhoods of pixels into larger "super-pixels." It reduces the
00178 # resolution of the output image to
00179 # (width / binning_x) x (height / binning_y).
00180 # The default values binning_x = binning_y = 0 is considered the same
00181 # as binning_x = binning_y = 1 (no subsampling).
00182 uint32 binning_x
00183 uint32 binning_y
00184
00185 # Region of interest (subwindow of full camera resolution), given in
00186 # full resolution (unbinned) image coordinates. A particular ROI
00187 # always denotes the same window of pixels on the camera sensor,
00188 # regardless of binning settings.
00189 # The default setting of roi (all values 0) is considered the same as
00190 # full resolution (roi.width = width, roi.height = height).
00191 RegionOfInterest roi
00192
00193 ================================================================================
00194 MSG: sensor_msgs/RegionOfInterest
00195 # This message is used to specify a region of interest within an image.
00196 #
00197 # When used to specify the ROI setting of the camera when the image was
00198 # taken, the height and width fields should either match the height and
00199 # width fields for the associated image; or height = width = 0
00200 # indicates that the full resolution image was captured.
00201
00202 uint32 x_offset # Leftmost pixel of the ROI
00203 # (0 if the ROI includes the left edge of the image)
00204 uint32 y_offset # Topmost pixel of the ROI
00205 # (0 if the ROI includes the top edge of the image)
00206 uint32 height # Height of ROI
00207 uint32 width # Width of ROI
00208
00209 # True if a distinct rectified ROI should be calculated from the "raw"
00210 # ROI in this message. Typically this should be False if the full image
00211 # is captured (ROI not used), and True if a subwindow is captured (ROI
00212 # used).
00213 bool do_rectify
00214
00215 """
00216 __slots__ = ['header','M_cam']
00217 _slot_types = ['std_msgs/Header','camera_pose_calibration/CameraMeasurement[]']
00218
00219 def __init__(self, *args, **kwds):
00220 """
00221 Constructor. Any message fields that are implicitly/explicitly
00222 set to None will be assigned a default value. The recommend
00223 use is keyword arguments as this is more robust to future message
00224 changes. You cannot mix in-order arguments and keyword arguments.
00225
00226 The available fields are:
00227 header,M_cam
00228
00229 :param args: complete set of field values, in .msg order
00230 :param kwds: use keyword arguments corresponding to message field names
00231 to set specific fields.
00232 """
00233 if args or kwds:
00234 super(RobotMeasurement, self).__init__(*args, **kwds)
00235
00236 if self.header is None:
00237 self.header = std_msgs.msg.Header()
00238 if self.M_cam is None:
00239 self.M_cam = []
00240 else:
00241 self.header = std_msgs.msg.Header()
00242 self.M_cam = []
00243
00244 def _get_types(self):
00245 """
00246 internal API method
00247 """
00248 return self._slot_types
00249
00250 def serialize(self, buff):
00251 """
00252 serialize message into buffer
00253 :param buff: buffer, ``StringIO``
00254 """
00255 try:
00256 _x = self
00257 buff.write(_struct_3I.pack(_x.header.seq, _x.header.stamp.secs, _x.header.stamp.nsecs))
00258 _x = self.header.frame_id
00259 length = len(_x)
00260 if python3 or type(_x) == unicode:
00261 _x = _x.encode('utf-8')
00262 length = len(_x)
00263 buff.write(struct.pack('<I%ss'%length, length, _x))
00264 length = len(self.M_cam)
00265 buff.write(_struct_I.pack(length))
00266 for val1 in self.M_cam:
00267 _v1 = val1.header
00268 buff.write(_struct_I.pack(_v1.seq))
00269 _v2 = _v1.stamp
00270 _x = _v2
00271 buff.write(_struct_2I.pack(_x.secs, _x.nsecs))
00272 _x = _v1.frame_id
00273 length = len(_x)
00274 if python3 or type(_x) == unicode:
00275 _x = _x.encode('utf-8')
00276 length = len(_x)
00277 buff.write(struct.pack('<I%ss'%length, length, _x))
00278 _x = val1.camera_id
00279 length = len(_x)
00280 if python3 or type(_x) == unicode:
00281 _x = _x.encode('utf-8')
00282 length = len(_x)
00283 buff.write(struct.pack('<I%ss'%length, length, _x))
00284 _v3 = val1.features
00285 _v4 = _v3.header
00286 buff.write(_struct_I.pack(_v4.seq))
00287 _v5 = _v4.stamp
00288 _x = _v5
00289 buff.write(_struct_2I.pack(_x.secs, _x.nsecs))
00290 _x = _v4.frame_id
00291 length = len(_x)
00292 if python3 or type(_x) == unicode:
00293 _x = _x.encode('utf-8')
00294 length = len(_x)
00295 buff.write(struct.pack('<I%ss'%length, length, _x))
00296 length = len(_v3.object_points)
00297 buff.write(_struct_I.pack(length))
00298 for val3 in _v3.object_points:
00299 _x = val3
00300 buff.write(_struct_3d.pack(_x.x, _x.y, _x.z))
00301 length = len(_v3.image_points)
00302 buff.write(_struct_I.pack(length))
00303 for val3 in _v3.image_points:
00304 _x = val3
00305 buff.write(_struct_3d.pack(_x.x, _x.y, _x.z))
00306 buff.write(_struct_B.pack(_v3.success))
00307 _v6 = val1.cam_info
00308 _v7 = _v6.header
00309 buff.write(_struct_I.pack(_v7.seq))
00310 _v8 = _v7.stamp
00311 _x = _v8
00312 buff.write(_struct_2I.pack(_x.secs, _x.nsecs))
00313 _x = _v7.frame_id
00314 length = len(_x)
00315 if python3 or type(_x) == unicode:
00316 _x = _x.encode('utf-8')
00317 length = len(_x)
00318 buff.write(struct.pack('<I%ss'%length, length, _x))
00319 _x = _v6
00320 buff.write(_struct_2I.pack(_x.height, _x.width))
00321 _x = _v6.distortion_model
00322 length = len(_x)
00323 if python3 or type(_x) == unicode:
00324 _x = _x.encode('utf-8')
00325 length = len(_x)
00326 buff.write(struct.pack('<I%ss'%length, length, _x))
00327 length = len(_v6.D)
00328 buff.write(_struct_I.pack(length))
00329 pattern = '<%sd'%length
00330 buff.write(struct.pack(pattern, *_v6.D))
00331 buff.write(_struct_9d.pack(*_v6.K))
00332 buff.write(_struct_9d.pack(*_v6.R))
00333 buff.write(_struct_12d.pack(*_v6.P))
00334 _x = _v6
00335 buff.write(_struct_2I.pack(_x.binning_x, _x.binning_y))
00336 _v9 = _v6.roi
00337 _x = _v9
00338 buff.write(_struct_4IB.pack(_x.x_offset, _x.y_offset, _x.height, _x.width, _x.do_rectify))
00339 except struct.error as se: self._check_types(se)
00340 except TypeError as te: self._check_types(te)
00341
00342 def deserialize(self, str):
00343 """
00344 unpack serialized message in str into this message instance
00345 :param str: byte array of serialized message, ``str``
00346 """
00347 try:
00348 if self.header is None:
00349 self.header = std_msgs.msg.Header()
00350 if self.M_cam is None:
00351 self.M_cam = None
00352 end = 0
00353 _x = self
00354 start = end
00355 end += 12
00356 (_x.header.seq, _x.header.stamp.secs, _x.header.stamp.nsecs,) = _struct_3I.unpack(str[start:end])
00357 start = end
00358 end += 4
00359 (length,) = _struct_I.unpack(str[start:end])
00360 start = end
00361 end += length
00362 if python3:
00363 self.header.frame_id = str[start:end].decode('utf-8')
00364 else:
00365 self.header.frame_id = str[start:end]
00366 start = end
00367 end += 4
00368 (length,) = _struct_I.unpack(str[start:end])
00369 self.M_cam = []
00370 for i in range(0, length):
00371 val1 = camera_pose_calibration.msg.CameraMeasurement()
00372 _v10 = val1.header
00373 start = end
00374 end += 4
00375 (_v10.seq,) = _struct_I.unpack(str[start:end])
00376 _v11 = _v10.stamp
00377 _x = _v11
00378 start = end
00379 end += 8
00380 (_x.secs, _x.nsecs,) = _struct_2I.unpack(str[start:end])
00381 start = end
00382 end += 4
00383 (length,) = _struct_I.unpack(str[start:end])
00384 start = end
00385 end += length
00386 if python3:
00387 _v10.frame_id = str[start:end].decode('utf-8')
00388 else:
00389 _v10.frame_id = str[start:end]
00390 start = end
00391 end += 4
00392 (length,) = _struct_I.unpack(str[start:end])
00393 start = end
00394 end += length
00395 if python3:
00396 val1.camera_id = str[start:end].decode('utf-8')
00397 else:
00398 val1.camera_id = str[start:end]
00399 _v12 = val1.features
00400 _v13 = _v12.header
00401 start = end
00402 end += 4
00403 (_v13.seq,) = _struct_I.unpack(str[start:end])
00404 _v14 = _v13.stamp
00405 _x = _v14
00406 start = end
00407 end += 8
00408 (_x.secs, _x.nsecs,) = _struct_2I.unpack(str[start:end])
00409 start = end
00410 end += 4
00411 (length,) = _struct_I.unpack(str[start:end])
00412 start = end
00413 end += length
00414 if python3:
00415 _v13.frame_id = str[start:end].decode('utf-8')
00416 else:
00417 _v13.frame_id = str[start:end]
00418 start = end
00419 end += 4
00420 (length,) = _struct_I.unpack(str[start:end])
00421 _v12.object_points = []
00422 for i in range(0, length):
00423 val3 = geometry_msgs.msg.Point()
00424 _x = val3
00425 start = end
00426 end += 24
00427 (_x.x, _x.y, _x.z,) = _struct_3d.unpack(str[start:end])
00428 _v12.object_points.append(val3)
00429 start = end
00430 end += 4
00431 (length,) = _struct_I.unpack(str[start:end])
00432 _v12.image_points = []
00433 for i in range(0, length):
00434 val3 = geometry_msgs.msg.Point()
00435 _x = val3
00436 start = end
00437 end += 24
00438 (_x.x, _x.y, _x.z,) = _struct_3d.unpack(str[start:end])
00439 _v12.image_points.append(val3)
00440 start = end
00441 end += 1
00442 (_v12.success,) = _struct_B.unpack(str[start:end])
00443 _v15 = val1.cam_info
00444 _v16 = _v15.header
00445 start = end
00446 end += 4
00447 (_v16.seq,) = _struct_I.unpack(str[start:end])
00448 _v17 = _v16.stamp
00449 _x = _v17
00450 start = end
00451 end += 8
00452 (_x.secs, _x.nsecs,) = _struct_2I.unpack(str[start:end])
00453 start = end
00454 end += 4
00455 (length,) = _struct_I.unpack(str[start:end])
00456 start = end
00457 end += length
00458 if python3:
00459 _v16.frame_id = str[start:end].decode('utf-8')
00460 else:
00461 _v16.frame_id = str[start:end]
00462 _x = _v15
00463 start = end
00464 end += 8
00465 (_x.height, _x.width,) = _struct_2I.unpack(str[start:end])
00466 start = end
00467 end += 4
00468 (length,) = _struct_I.unpack(str[start:end])
00469 start = end
00470 end += length
00471 if python3:
00472 _v15.distortion_model = str[start:end].decode('utf-8')
00473 else:
00474 _v15.distortion_model = str[start:end]
00475 start = end
00476 end += 4
00477 (length,) = _struct_I.unpack(str[start:end])
00478 pattern = '<%sd'%length
00479 start = end
00480 end += struct.calcsize(pattern)
00481 _v15.D = struct.unpack(pattern, str[start:end])
00482 start = end
00483 end += 72
00484 _v15.K = _struct_9d.unpack(str[start:end])
00485 start = end
00486 end += 72
00487 _v15.R = _struct_9d.unpack(str[start:end])
00488 start = end
00489 end += 96
00490 _v15.P = _struct_12d.unpack(str[start:end])
00491 _x = _v15
00492 start = end
00493 end += 8
00494 (_x.binning_x, _x.binning_y,) = _struct_2I.unpack(str[start:end])
00495 _v18 = _v15.roi
00496 _x = _v18
00497 start = end
00498 end += 17
00499 (_x.x_offset, _x.y_offset, _x.height, _x.width, _x.do_rectify,) = _struct_4IB.unpack(str[start:end])
00500 _v18.do_rectify = bool(_v18.do_rectify)
00501 self.M_cam.append(val1)
00502 return self
00503 except struct.error as e:
00504 raise genpy.DeserializationError(e)
00505
00506
00507 def serialize_numpy(self, buff, numpy):
00508 """
00509 serialize message with numpy array types into buffer
00510 :param buff: buffer, ``StringIO``
00511 :param numpy: numpy python module
00512 """
00513 try:
00514 _x = self
00515 buff.write(_struct_3I.pack(_x.header.seq, _x.header.stamp.secs, _x.header.stamp.nsecs))
00516 _x = self.header.frame_id
00517 length = len(_x)
00518 if python3 or type(_x) == unicode:
00519 _x = _x.encode('utf-8')
00520 length = len(_x)
00521 buff.write(struct.pack('<I%ss'%length, length, _x))
00522 length = len(self.M_cam)
00523 buff.write(_struct_I.pack(length))
00524 for val1 in self.M_cam:
00525 _v19 = val1.header
00526 buff.write(_struct_I.pack(_v19.seq))
00527 _v20 = _v19.stamp
00528 _x = _v20
00529 buff.write(_struct_2I.pack(_x.secs, _x.nsecs))
00530 _x = _v19.frame_id
00531 length = len(_x)
00532 if python3 or type(_x) == unicode:
00533 _x = _x.encode('utf-8')
00534 length = len(_x)
00535 buff.write(struct.pack('<I%ss'%length, length, _x))
00536 _x = val1.camera_id
00537 length = len(_x)
00538 if python3 or type(_x) == unicode:
00539 _x = _x.encode('utf-8')
00540 length = len(_x)
00541 buff.write(struct.pack('<I%ss'%length, length, _x))
00542 _v21 = val1.features
00543 _v22 = _v21.header
00544 buff.write(_struct_I.pack(_v22.seq))
00545 _v23 = _v22.stamp
00546 _x = _v23
00547 buff.write(_struct_2I.pack(_x.secs, _x.nsecs))
00548 _x = _v22.frame_id
00549 length = len(_x)
00550 if python3 or type(_x) == unicode:
00551 _x = _x.encode('utf-8')
00552 length = len(_x)
00553 buff.write(struct.pack('<I%ss'%length, length, _x))
00554 length = len(_v21.object_points)
00555 buff.write(_struct_I.pack(length))
00556 for val3 in _v21.object_points:
00557 _x = val3
00558 buff.write(_struct_3d.pack(_x.x, _x.y, _x.z))
00559 length = len(_v21.image_points)
00560 buff.write(_struct_I.pack(length))
00561 for val3 in _v21.image_points:
00562 _x = val3
00563 buff.write(_struct_3d.pack(_x.x, _x.y, _x.z))
00564 buff.write(_struct_B.pack(_v21.success))
00565 _v24 = val1.cam_info
00566 _v25 = _v24.header
00567 buff.write(_struct_I.pack(_v25.seq))
00568 _v26 = _v25.stamp
00569 _x = _v26
00570 buff.write(_struct_2I.pack(_x.secs, _x.nsecs))
00571 _x = _v25.frame_id
00572 length = len(_x)
00573 if python3 or type(_x) == unicode:
00574 _x = _x.encode('utf-8')
00575 length = len(_x)
00576 buff.write(struct.pack('<I%ss'%length, length, _x))
00577 _x = _v24
00578 buff.write(_struct_2I.pack(_x.height, _x.width))
00579 _x = _v24.distortion_model
00580 length = len(_x)
00581 if python3 or type(_x) == unicode:
00582 _x = _x.encode('utf-8')
00583 length = len(_x)
00584 buff.write(struct.pack('<I%ss'%length, length, _x))
00585 length = len(_v24.D)
00586 buff.write(_struct_I.pack(length))
00587 pattern = '<%sd'%length
00588 buff.write(_v24.D.tostring())
00589 buff.write(_v24.K.tostring())
00590 buff.write(_v24.R.tostring())
00591 buff.write(_v24.P.tostring())
00592 _x = _v24
00593 buff.write(_struct_2I.pack(_x.binning_x, _x.binning_y))
00594 _v27 = _v24.roi
00595 _x = _v27
00596 buff.write(_struct_4IB.pack(_x.x_offset, _x.y_offset, _x.height, _x.width, _x.do_rectify))
00597 except struct.error as se: self._check_types(se)
00598 except TypeError as te: self._check_types(te)
00599
00600 def deserialize_numpy(self, str, numpy):
00601 """
00602 unpack serialized message in str into this message instance using numpy for array types
00603 :param str: byte array of serialized message, ``str``
00604 :param numpy: numpy python module
00605 """
00606 try:
00607 if self.header is None:
00608 self.header = std_msgs.msg.Header()
00609 if self.M_cam is None:
00610 self.M_cam = None
00611 end = 0
00612 _x = self
00613 start = end
00614 end += 12
00615 (_x.header.seq, _x.header.stamp.secs, _x.header.stamp.nsecs,) = _struct_3I.unpack(str[start:end])
00616 start = end
00617 end += 4
00618 (length,) = _struct_I.unpack(str[start:end])
00619 start = end
00620 end += length
00621 if python3:
00622 self.header.frame_id = str[start:end].decode('utf-8')
00623 else:
00624 self.header.frame_id = str[start:end]
00625 start = end
00626 end += 4
00627 (length,) = _struct_I.unpack(str[start:end])
00628 self.M_cam = []
00629 for i in range(0, length):
00630 val1 = camera_pose_calibration.msg.CameraMeasurement()
00631 _v28 = val1.header
00632 start = end
00633 end += 4
00634 (_v28.seq,) = _struct_I.unpack(str[start:end])
00635 _v29 = _v28.stamp
00636 _x = _v29
00637 start = end
00638 end += 8
00639 (_x.secs, _x.nsecs,) = _struct_2I.unpack(str[start:end])
00640 start = end
00641 end += 4
00642 (length,) = _struct_I.unpack(str[start:end])
00643 start = end
00644 end += length
00645 if python3:
00646 _v28.frame_id = str[start:end].decode('utf-8')
00647 else:
00648 _v28.frame_id = str[start:end]
00649 start = end
00650 end += 4
00651 (length,) = _struct_I.unpack(str[start:end])
00652 start = end
00653 end += length
00654 if python3:
00655 val1.camera_id = str[start:end].decode('utf-8')
00656 else:
00657 val1.camera_id = str[start:end]
00658 _v30 = val1.features
00659 _v31 = _v30.header
00660 start = end
00661 end += 4
00662 (_v31.seq,) = _struct_I.unpack(str[start:end])
00663 _v32 = _v31.stamp
00664 _x = _v32
00665 start = end
00666 end += 8
00667 (_x.secs, _x.nsecs,) = _struct_2I.unpack(str[start:end])
00668 start = end
00669 end += 4
00670 (length,) = _struct_I.unpack(str[start:end])
00671 start = end
00672 end += length
00673 if python3:
00674 _v31.frame_id = str[start:end].decode('utf-8')
00675 else:
00676 _v31.frame_id = str[start:end]
00677 start = end
00678 end += 4
00679 (length,) = _struct_I.unpack(str[start:end])
00680 _v30.object_points = []
00681 for i in range(0, length):
00682 val3 = geometry_msgs.msg.Point()
00683 _x = val3
00684 start = end
00685 end += 24
00686 (_x.x, _x.y, _x.z,) = _struct_3d.unpack(str[start:end])
00687 _v30.object_points.append(val3)
00688 start = end
00689 end += 4
00690 (length,) = _struct_I.unpack(str[start:end])
00691 _v30.image_points = []
00692 for i in range(0, length):
00693 val3 = geometry_msgs.msg.Point()
00694 _x = val3
00695 start = end
00696 end += 24
00697 (_x.x, _x.y, _x.z,) = _struct_3d.unpack(str[start:end])
00698 _v30.image_points.append(val3)
00699 start = end
00700 end += 1
00701 (_v30.success,) = _struct_B.unpack(str[start:end])
00702 _v33 = val1.cam_info
00703 _v34 = _v33.header
00704 start = end
00705 end += 4
00706 (_v34.seq,) = _struct_I.unpack(str[start:end])
00707 _v35 = _v34.stamp
00708 _x = _v35
00709 start = end
00710 end += 8
00711 (_x.secs, _x.nsecs,) = _struct_2I.unpack(str[start:end])
00712 start = end
00713 end += 4
00714 (length,) = _struct_I.unpack(str[start:end])
00715 start = end
00716 end += length
00717 if python3:
00718 _v34.frame_id = str[start:end].decode('utf-8')
00719 else:
00720 _v34.frame_id = str[start:end]
00721 _x = _v33
00722 start = end
00723 end += 8
00724 (_x.height, _x.width,) = _struct_2I.unpack(str[start:end])
00725 start = end
00726 end += 4
00727 (length,) = _struct_I.unpack(str[start:end])
00728 start = end
00729 end += length
00730 if python3:
00731 _v33.distortion_model = str[start:end].decode('utf-8')
00732 else:
00733 _v33.distortion_model = str[start:end]
00734 start = end
00735 end += 4
00736 (length,) = _struct_I.unpack(str[start:end])
00737 pattern = '<%sd'%length
00738 start = end
00739 end += struct.calcsize(pattern)
00740 _v33.D = numpy.frombuffer(str[start:end], dtype=numpy.float64, count=length)
00741 start = end
00742 end += 72
00743 _v33.K = numpy.frombuffer(str[start:end], dtype=numpy.float64, count=9)
00744 start = end
00745 end += 72
00746 _v33.R = numpy.frombuffer(str[start:end], dtype=numpy.float64, count=9)
00747 start = end
00748 end += 96
00749 _v33.P = numpy.frombuffer(str[start:end], dtype=numpy.float64, count=12)
00750 _x = _v33
00751 start = end
00752 end += 8
00753 (_x.binning_x, _x.binning_y,) = _struct_2I.unpack(str[start:end])
00754 _v36 = _v33.roi
00755 _x = _v36
00756 start = end
00757 end += 17
00758 (_x.x_offset, _x.y_offset, _x.height, _x.width, _x.do_rectify,) = _struct_4IB.unpack(str[start:end])
00759 _v36.do_rectify = bool(_v36.do_rectify)
00760 self.M_cam.append(val1)
00761 return self
00762 except struct.error as e:
00763 raise genpy.DeserializationError(e)
00764
00765 _struct_I = genpy.struct_I
00766 _struct_B = struct.Struct("<B")
00767 _struct_12d = struct.Struct("<12d")
00768 _struct_9d = struct.Struct("<9d")
00769 _struct_3I = struct.Struct("<3I")
00770 _struct_2I = struct.Struct("<2I")
00771 _struct_4IB = struct.Struct("<4IB")
00772 _struct_3d = struct.Struct("<3d")