$search
00001 """autogenerated by genmsg_py from ObjectSegmentationGuiGoal.msg. Do not edit.""" 00002 import roslib.message 00003 import struct 00004 00005 import stereo_msgs.msg 00006 import std_msgs.msg 00007 import sensor_msgs.msg 00008 00009 class ObjectSegmentationGuiGoal(roslib.message.Message): 00010 _md5sum = "e1d5b6113ada0dd63b3fd30b2ac9f913" 00011 _type = "object_segmentation_gui/ObjectSegmentationGuiGoal" 00012 _has_header = False #flag to mark the presence of a Header object 00013 _full_text = """# ====== DO NOT MODIFY! AUTOGENERATED FROM AN ACTION DEFINITION ====== 00014 sensor_msgs/Image image 00015 sensor_msgs/CameraInfo camera_info 00016 sensor_msgs/Image wide_field 00017 sensor_msgs/CameraInfo wide_camera_info 00018 00019 sensor_msgs/PointCloud2 point_cloud 00020 stereo_msgs/DisparityImage disparity_image 00021 00022 00023 ================================================================================ 00024 MSG: sensor_msgs/Image 00025 # This message contains an uncompressed image 00026 # (0, 0) is at top-left corner of image 00027 # 00028 00029 Header header # Header timestamp should be acquisition time of image 00030 # Header frame_id should be optical frame of camera 00031 # origin of frame should be optical center of cameara 00032 # +x should point to the right in the image 00033 # +y should point down in the image 00034 # +z should point into to plane of the image 00035 # If the frame_id here and the frame_id of the CameraInfo 00036 # message associated with the image conflict 00037 # the behavior is undefined 00038 00039 uint32 height # image height, that is, number of rows 00040 uint32 width # image width, that is, number of columns 00041 00042 # The legal values for encoding are in file src/image_encodings.cpp 00043 # If you want to standardize a new string format, join 00044 # ros-users@lists.sourceforge.net and send an email proposing a new encoding. 00045 00046 string encoding # Encoding of pixels -- channel meaning, ordering, size 00047 # taken from the list of strings in src/image_encodings.cpp 00048 00049 uint8 is_bigendian # is this data bigendian? 00050 uint32 step # Full row length in bytes 00051 uint8[] data # actual matrix data, size is (step * rows) 00052 00053 ================================================================================ 00054 MSG: std_msgs/Header 00055 # Standard metadata for higher-level stamped data types. 00056 # This is generally used to communicate timestamped data 00057 # in a particular coordinate frame. 00058 # 00059 # sequence ID: consecutively increasing ID 00060 uint32 seq 00061 #Two-integer timestamp that is expressed as: 00062 # * stamp.secs: seconds (stamp_secs) since epoch 00063 # * stamp.nsecs: nanoseconds since stamp_secs 00064 # time-handling sugar is provided by the client library 00065 time stamp 00066 #Frame this data is associated with 00067 # 0: no frame 00068 # 1: global frame 00069 string frame_id 00070 00071 ================================================================================ 00072 MSG: sensor_msgs/CameraInfo 00073 # This message defines meta information for a camera. It should be in a 00074 # camera namespace on topic "camera_info" and accompanied by up to five 00075 # image topics named: 00076 # 00077 # image_raw - raw data from the camera driver, possibly Bayer encoded 00078 # image - monochrome, distorted 00079 # image_color - color, distorted 00080 # image_rect - monochrome, rectified 00081 # image_rect_color - color, rectified 00082 # 00083 # The image_pipeline contains packages (image_proc, stereo_image_proc) 00084 # for producing the four processed image topics from image_raw and 00085 # camera_info. The meaning of the camera parameters are described in 00086 # detail at http://www.ros.org/wiki/image_pipeline/CameraInfo. 00087 # 00088 # The image_geometry package provides a user-friendly interface to 00089 # common operations using this meta information. If you want to, e.g., 00090 # project a 3d point into image coordinates, we strongly recommend 00091 # using image_geometry. 00092 # 00093 # If the camera is uncalibrated, the matrices D, K, R, P should be left 00094 # zeroed out. In particular, clients may assume that K[0] == 0.0 00095 # indicates an uncalibrated camera. 00096 00097 ####################################################################### 00098 # Image acquisition info # 00099 ####################################################################### 00100 00101 # Time of image acquisition, camera coordinate frame ID 00102 Header header # Header timestamp should be acquisition time of image 00103 # Header frame_id should be optical frame of camera 00104 # origin of frame should be optical center of camera 00105 # +x should point to the right in the image 00106 # +y should point down in the image 00107 # +z should point into the plane of the image 00108 00109 00110 ####################################################################### 00111 # Calibration Parameters # 00112 ####################################################################### 00113 # These are fixed during camera calibration. Their values will be the # 00114 # same in all messages until the camera is recalibrated. Note that # 00115 # self-calibrating systems may "recalibrate" frequently. # 00116 # # 00117 # The internal parameters can be used to warp a raw (distorted) image # 00118 # to: # 00119 # 1. An undistorted image (requires D and K) # 00120 # 2. A rectified image (requires D, K, R) # 00121 # The projection matrix P projects 3D points into the rectified image.# 00122 ####################################################################### 00123 00124 # The image dimensions with which the camera was calibrated. Normally 00125 # this will be the full camera resolution in pixels. 00126 uint32 height 00127 uint32 width 00128 00129 # The distortion model used. Supported models are listed in 00130 # sensor_msgs/distortion_models.h. For most cameras, "plumb_bob" - a 00131 # simple model of radial and tangential distortion - is sufficent. 00132 string distortion_model 00133 00134 # The distortion parameters, size depending on the distortion model. 00135 # For "plumb_bob", the 5 parameters are: (k1, k2, t1, t2, k3). 00136 float64[] D 00137 00138 # Intrinsic camera matrix for the raw (distorted) images. 00139 # [fx 0 cx] 00140 # K = [ 0 fy cy] 00141 # [ 0 0 1] 00142 # Projects 3D points in the camera coordinate frame to 2D pixel 00143 # coordinates using the focal lengths (fx, fy) and principal point 00144 # (cx, cy). 00145 float64[9] K # 3x3 row-major matrix 00146 00147 # Rectification matrix (stereo cameras only) 00148 # A rotation matrix aligning the camera coordinate system to the ideal 00149 # stereo image plane so that epipolar lines in both stereo images are 00150 # parallel. 00151 float64[9] R # 3x3 row-major matrix 00152 00153 # Projection/camera matrix 00154 # [fx' 0 cx' Tx] 00155 # P = [ 0 fy' cy' Ty] 00156 # [ 0 0 1 0] 00157 # By convention, this matrix specifies the intrinsic (camera) matrix 00158 # of the processed (rectified) image. That is, the left 3x3 portion 00159 # is the normal camera intrinsic matrix for the rectified image. 00160 # It projects 3D points in the camera coordinate frame to 2D pixel 00161 # coordinates using the focal lengths (fx', fy') and principal point 00162 # (cx', cy') - these may differ from the values in K. 00163 # For monocular cameras, Tx = Ty = 0. Normally, monocular cameras will 00164 # also have R = the identity and P[1:3,1:3] = K. 00165 # For a stereo pair, the fourth column [Tx Ty 0]' is related to the 00166 # position of the optical center of the second camera in the first 00167 # camera's frame. We assume Tz = 0 so both cameras are in the same 00168 # stereo image plane. The first camera always has Tx = Ty = 0. For 00169 # the right (second) camera of a horizontal stereo pair, Ty = 0 and 00170 # Tx = -fx' * B, where B is the baseline between the cameras. 00171 # Given a 3D point [X Y Z]', the projection (x, y) of the point onto 00172 # the rectified image is given by: 00173 # [u v w]' = P * [X Y Z 1]' 00174 # x = u / w 00175 # y = v / w 00176 # This holds for both images of a stereo pair. 00177 float64[12] P # 3x4 row-major matrix 00178 00179 00180 ####################################################################### 00181 # Operational Parameters # 00182 ####################################################################### 00183 # These define the image region actually captured by the camera # 00184 # driver. Although they affect the geometry of the output image, they # 00185 # may be changed freely without recalibrating the camera. # 00186 ####################################################################### 00187 00188 # Binning refers here to any camera setting which combines rectangular 00189 # neighborhoods of pixels into larger "super-pixels." It reduces the 00190 # resolution of the output image to 00191 # (width / binning_x) x (height / binning_y). 00192 # The default values binning_x = binning_y = 0 is considered the same 00193 # as binning_x = binning_y = 1 (no subsampling). 00194 uint32 binning_x 00195 uint32 binning_y 00196 00197 # Region of interest (subwindow of full camera resolution), given in 00198 # full resolution (unbinned) image coordinates. A particular ROI 00199 # always denotes the same window of pixels on the camera sensor, 00200 # regardless of binning settings. 00201 # The default setting of roi (all values 0) is considered the same as 00202 # full resolution (roi.width = width, roi.height = height). 00203 RegionOfInterest roi 00204 00205 ================================================================================ 00206 MSG: sensor_msgs/RegionOfInterest 00207 # This message is used to specify a region of interest within an image. 00208 # 00209 # When used to specify the ROI setting of the camera when the image was 00210 # taken, the height and width fields should either match the height and 00211 # width fields for the associated image; or height = width = 0 00212 # indicates that the full resolution image was captured. 00213 00214 uint32 x_offset # Leftmost pixel of the ROI 00215 # (0 if the ROI includes the left edge of the image) 00216 uint32 y_offset # Topmost pixel of the ROI 00217 # (0 if the ROI includes the top edge of the image) 00218 uint32 height # Height of ROI 00219 uint32 width # Width of ROI 00220 00221 # True if a distinct rectified ROI should be calculated from the "raw" 00222 # ROI in this message. Typically this should be False if the full image 00223 # is captured (ROI not used), and True if a subwindow is captured (ROI 00224 # used). 00225 bool do_rectify 00226 00227 ================================================================================ 00228 MSG: sensor_msgs/PointCloud2 00229 # This message holds a collection of N-dimensional points, which may 00230 # contain additional information such as normals, intensity, etc. The 00231 # point data is stored as a binary blob, its layout described by the 00232 # contents of the "fields" array. 00233 00234 # The point cloud data may be organized 2d (image-like) or 1d 00235 # (unordered). Point clouds organized as 2d images may be produced by 00236 # camera depth sensors such as stereo or time-of-flight. 00237 00238 # Time of sensor data acquisition, and the coordinate frame ID (for 3d 00239 # points). 00240 Header header 00241 00242 # 2D structure of the point cloud. If the cloud is unordered, height is 00243 # 1 and width is the length of the point cloud. 00244 uint32 height 00245 uint32 width 00246 00247 # Describes the channels and their layout in the binary data blob. 00248 PointField[] fields 00249 00250 bool is_bigendian # Is this data bigendian? 00251 uint32 point_step # Length of a point in bytes 00252 uint32 row_step # Length of a row in bytes 00253 uint8[] data # Actual point data, size is (row_step*height) 00254 00255 bool is_dense # True if there are no invalid points 00256 00257 ================================================================================ 00258 MSG: sensor_msgs/PointField 00259 # This message holds the description of one point entry in the 00260 # PointCloud2 message format. 00261 uint8 INT8 = 1 00262 uint8 UINT8 = 2 00263 uint8 INT16 = 3 00264 uint8 UINT16 = 4 00265 uint8 INT32 = 5 00266 uint8 UINT32 = 6 00267 uint8 FLOAT32 = 7 00268 uint8 FLOAT64 = 8 00269 00270 string name # Name of field 00271 uint32 offset # Offset from start of point struct 00272 uint8 datatype # Datatype enumeration, see above 00273 uint32 count # How many elements in the field 00274 00275 ================================================================================ 00276 MSG: stereo_msgs/DisparityImage 00277 # Separate header for compatibility with current TimeSynchronizer. 00278 # Likely to be removed in a later release, use image.header instead. 00279 Header header 00280 00281 # Floating point disparity image. The disparities are pre-adjusted for any 00282 # x-offset between the principal points of the two cameras (in the case 00283 # that they are verged). That is: d = x_l - x_r - (cx_l - cx_r) 00284 sensor_msgs/Image image 00285 00286 # Stereo geometry. For disparity d, the depth from the camera is Z = fT/d. 00287 float32 f # Focal length, pixels 00288 float32 T # Baseline, world units 00289 00290 # Subwindow of (potentially) valid disparity values. 00291 sensor_msgs/RegionOfInterest valid_window 00292 00293 # The range of disparities searched. 00294 # In the disparity image, any disparity less than min_disparity is invalid. 00295 # The disparity search range defines the horopter, or 3D volume that the 00296 # stereo algorithm can "see". Points with Z outside of: 00297 # Z_min = fT / max_disparity 00298 # Z_max = fT / min_disparity 00299 # could not be found. 00300 float32 min_disparity 00301 float32 max_disparity 00302 00303 # Smallest allowed disparity increment. The smallest achievable depth range 00304 # resolution is delta_Z = (Z^2/fT)*delta_d. 00305 float32 delta_d 00306 00307 """ 00308 __slots__ = ['image','camera_info','wide_field','wide_camera_info','point_cloud','disparity_image'] 00309 _slot_types = ['sensor_msgs/Image','sensor_msgs/CameraInfo','sensor_msgs/Image','sensor_msgs/CameraInfo','sensor_msgs/PointCloud2','stereo_msgs/DisparityImage'] 00310 00311 def __init__(self, *args, **kwds): 00312 """ 00313 Constructor. Any message fields that are implicitly/explicitly 00314 set to None will be assigned a default value. The recommend 00315 use is keyword arguments as this is more robust to future message 00316 changes. You cannot mix in-order arguments and keyword arguments. 00317 00318 The available fields are: 00319 image,camera_info,wide_field,wide_camera_info,point_cloud,disparity_image 00320 00321 @param args: complete set of field values, in .msg order 00322 @param kwds: use keyword arguments corresponding to message field names 00323 to set specific fields. 00324 """ 00325 if args or kwds: 00326 super(ObjectSegmentationGuiGoal, self).__init__(*args, **kwds) 00327 #message fields cannot be None, assign default values for those that are 00328 if self.image is None: 00329 self.image = sensor_msgs.msg.Image() 00330 if self.camera_info is None: 00331 self.camera_info = sensor_msgs.msg.CameraInfo() 00332 if self.wide_field is None: 00333 self.wide_field = sensor_msgs.msg.Image() 00334 if self.wide_camera_info is None: 00335 self.wide_camera_info = sensor_msgs.msg.CameraInfo() 00336 if self.point_cloud is None: 00337 self.point_cloud = sensor_msgs.msg.PointCloud2() 00338 if self.disparity_image is None: 00339 self.disparity_image = stereo_msgs.msg.DisparityImage() 00340 else: 00341 self.image = sensor_msgs.msg.Image() 00342 self.camera_info = sensor_msgs.msg.CameraInfo() 00343 self.wide_field = sensor_msgs.msg.Image() 00344 self.wide_camera_info = sensor_msgs.msg.CameraInfo() 00345 self.point_cloud = sensor_msgs.msg.PointCloud2() 00346 self.disparity_image = stereo_msgs.msg.DisparityImage() 00347 00348 def _get_types(self): 00349 """ 00350 internal API method 00351 """ 00352 return self._slot_types 00353 00354 def serialize(self, buff): 00355 """ 00356 serialize message into buffer 00357 @param buff: buffer 00358 @type buff: StringIO 00359 """ 00360 try: 00361 _x = self 00362 buff.write(_struct_3I.pack(_x.image.header.seq, _x.image.header.stamp.secs, _x.image.header.stamp.nsecs)) 00363 _x = self.image.header.frame_id 00364 length = len(_x) 00365 buff.write(struct.pack('<I%ss'%length, length, _x)) 00366 _x = self 00367 buff.write(_struct_2I.pack(_x.image.height, _x.image.width)) 00368 _x = self.image.encoding 00369 length = len(_x) 00370 buff.write(struct.pack('<I%ss'%length, length, _x)) 00371 _x = self 00372 buff.write(_struct_BI.pack(_x.image.is_bigendian, _x.image.step)) 00373 _x = self.image.data 00374 length = len(_x) 00375 # - if encoded as a list instead, serialize as bytes instead of string 00376 if type(_x) in [list, tuple]: 00377 buff.write(struct.pack('<I%sB'%length, length, *_x)) 00378 else: 00379 buff.write(struct.pack('<I%ss'%length, length, _x)) 00380 _x = self 00381 buff.write(_struct_3I.pack(_x.camera_info.header.seq, _x.camera_info.header.stamp.secs, _x.camera_info.header.stamp.nsecs)) 00382 _x = self.camera_info.header.frame_id 00383 length = len(_x) 00384 buff.write(struct.pack('<I%ss'%length, length, _x)) 00385 _x = self 00386 buff.write(_struct_2I.pack(_x.camera_info.height, _x.camera_info.width)) 00387 _x = self.camera_info.distortion_model 00388 length = len(_x) 00389 buff.write(struct.pack('<I%ss'%length, length, _x)) 00390 length = len(self.camera_info.D) 00391 buff.write(_struct_I.pack(length)) 00392 pattern = '<%sd'%length 00393 buff.write(struct.pack(pattern, *self.camera_info.D)) 00394 buff.write(_struct_9d.pack(*self.camera_info.K)) 00395 buff.write(_struct_9d.pack(*self.camera_info.R)) 00396 buff.write(_struct_12d.pack(*self.camera_info.P)) 00397 _x = self 00398 buff.write(_struct_6IB3I.pack(_x.camera_info.binning_x, _x.camera_info.binning_y, _x.camera_info.roi.x_offset, _x.camera_info.roi.y_offset, _x.camera_info.roi.height, _x.camera_info.roi.width, _x.camera_info.roi.do_rectify, _x.wide_field.header.seq, _x.wide_field.header.stamp.secs, _x.wide_field.header.stamp.nsecs)) 00399 _x = self.wide_field.header.frame_id 00400 length = len(_x) 00401 buff.write(struct.pack('<I%ss'%length, length, _x)) 00402 _x = self 00403 buff.write(_struct_2I.pack(_x.wide_field.height, _x.wide_field.width)) 00404 _x = self.wide_field.encoding 00405 length = len(_x) 00406 buff.write(struct.pack('<I%ss'%length, length, _x)) 00407 _x = self 00408 buff.write(_struct_BI.pack(_x.wide_field.is_bigendian, _x.wide_field.step)) 00409 _x = self.wide_field.data 00410 length = len(_x) 00411 # - if encoded as a list instead, serialize as bytes instead of string 00412 if type(_x) in [list, tuple]: 00413 buff.write(struct.pack('<I%sB'%length, length, *_x)) 00414 else: 00415 buff.write(struct.pack('<I%ss'%length, length, _x)) 00416 _x = self 00417 buff.write(_struct_3I.pack(_x.wide_camera_info.header.seq, _x.wide_camera_info.header.stamp.secs, _x.wide_camera_info.header.stamp.nsecs)) 00418 _x = self.wide_camera_info.header.frame_id 00419 length = len(_x) 00420 buff.write(struct.pack('<I%ss'%length, length, _x)) 00421 _x = self 00422 buff.write(_struct_2I.pack(_x.wide_camera_info.height, _x.wide_camera_info.width)) 00423 _x = self.wide_camera_info.distortion_model 00424 length = len(_x) 00425 buff.write(struct.pack('<I%ss'%length, length, _x)) 00426 length = len(self.wide_camera_info.D) 00427 buff.write(_struct_I.pack(length)) 00428 pattern = '<%sd'%length 00429 buff.write(struct.pack(pattern, *self.wide_camera_info.D)) 00430 buff.write(_struct_9d.pack(*self.wide_camera_info.K)) 00431 buff.write(_struct_9d.pack(*self.wide_camera_info.R)) 00432 buff.write(_struct_12d.pack(*self.wide_camera_info.P)) 00433 _x = self 00434 buff.write(_struct_6IB3I.pack(_x.wide_camera_info.binning_x, _x.wide_camera_info.binning_y, _x.wide_camera_info.roi.x_offset, _x.wide_camera_info.roi.y_offset, _x.wide_camera_info.roi.height, _x.wide_camera_info.roi.width, _x.wide_camera_info.roi.do_rectify, _x.point_cloud.header.seq, _x.point_cloud.header.stamp.secs, _x.point_cloud.header.stamp.nsecs)) 00435 _x = self.point_cloud.header.frame_id 00436 length = len(_x) 00437 buff.write(struct.pack('<I%ss'%length, length, _x)) 00438 _x = self 00439 buff.write(_struct_2I.pack(_x.point_cloud.height, _x.point_cloud.width)) 00440 length = len(self.point_cloud.fields) 00441 buff.write(_struct_I.pack(length)) 00442 for val1 in self.point_cloud.fields: 00443 _x = val1.name 00444 length = len(_x) 00445 buff.write(struct.pack('<I%ss'%length, length, _x)) 00446 _x = val1 00447 buff.write(_struct_IBI.pack(_x.offset, _x.datatype, _x.count)) 00448 _x = self 00449 buff.write(_struct_B2I.pack(_x.point_cloud.is_bigendian, _x.point_cloud.point_step, _x.point_cloud.row_step)) 00450 _x = self.point_cloud.data 00451 length = len(_x) 00452 # - if encoded as a list instead, serialize as bytes instead of string 00453 if type(_x) in [list, tuple]: 00454 buff.write(struct.pack('<I%sB'%length, length, *_x)) 00455 else: 00456 buff.write(struct.pack('<I%ss'%length, length, _x)) 00457 _x = self 00458 buff.write(_struct_B3I.pack(_x.point_cloud.is_dense, _x.disparity_image.header.seq, _x.disparity_image.header.stamp.secs, _x.disparity_image.header.stamp.nsecs)) 00459 _x = self.disparity_image.header.frame_id 00460 length = len(_x) 00461 buff.write(struct.pack('<I%ss'%length, length, _x)) 00462 _x = self 00463 buff.write(_struct_3I.pack(_x.disparity_image.image.header.seq, _x.disparity_image.image.header.stamp.secs, _x.disparity_image.image.header.stamp.nsecs)) 00464 _x = self.disparity_image.image.header.frame_id 00465 length = len(_x) 00466 buff.write(struct.pack('<I%ss'%length, length, _x)) 00467 _x = self 00468 buff.write(_struct_2I.pack(_x.disparity_image.image.height, _x.disparity_image.image.width)) 00469 _x = self.disparity_image.image.encoding 00470 length = len(_x) 00471 buff.write(struct.pack('<I%ss'%length, length, _x)) 00472 _x = self 00473 buff.write(_struct_BI.pack(_x.disparity_image.image.is_bigendian, _x.disparity_image.image.step)) 00474 _x = self.disparity_image.image.data 00475 length = len(_x) 00476 # - if encoded as a list instead, serialize as bytes instead of string 00477 if type(_x) in [list, tuple]: 00478 buff.write(struct.pack('<I%sB'%length, length, *_x)) 00479 else: 00480 buff.write(struct.pack('<I%ss'%length, length, _x)) 00481 _x = self 00482 buff.write(_struct_2f4IB3f.pack(_x.disparity_image.f, _x.disparity_image.T, _x.disparity_image.valid_window.x_offset, _x.disparity_image.valid_window.y_offset, _x.disparity_image.valid_window.height, _x.disparity_image.valid_window.width, _x.disparity_image.valid_window.do_rectify, _x.disparity_image.min_disparity, _x.disparity_image.max_disparity, _x.disparity_image.delta_d)) 00483 except struct.error as se: self._check_types(se) 00484 except TypeError as te: self._check_types(te) 00485 00486 def deserialize(self, str): 00487 """ 00488 unpack serialized message in str into this message instance 00489 @param str: byte array of serialized message 00490 @type str: str 00491 """ 00492 try: 00493 if self.image is None: 00494 self.image = sensor_msgs.msg.Image() 00495 if self.camera_info is None: 00496 self.camera_info = sensor_msgs.msg.CameraInfo() 00497 if self.wide_field is None: 00498 self.wide_field = sensor_msgs.msg.Image() 00499 if self.wide_camera_info is None: 00500 self.wide_camera_info = sensor_msgs.msg.CameraInfo() 00501 if self.point_cloud is None: 00502 self.point_cloud = sensor_msgs.msg.PointCloud2() 00503 if self.disparity_image is None: 00504 self.disparity_image = stereo_msgs.msg.DisparityImage() 00505 end = 0 00506 _x = self 00507 start = end 00508 end += 12 00509 (_x.image.header.seq, _x.image.header.stamp.secs, _x.image.header.stamp.nsecs,) = _struct_3I.unpack(str[start:end]) 00510 start = end 00511 end += 4 00512 (length,) = _struct_I.unpack(str[start:end]) 00513 start = end 00514 end += length 00515 self.image.header.frame_id = str[start:end] 00516 _x = self 00517 start = end 00518 end += 8 00519 (_x.image.height, _x.image.width,) = _struct_2I.unpack(str[start:end]) 00520 start = end 00521 end += 4 00522 (length,) = _struct_I.unpack(str[start:end]) 00523 start = end 00524 end += length 00525 self.image.encoding = str[start:end] 00526 _x = self 00527 start = end 00528 end += 5 00529 (_x.image.is_bigendian, _x.image.step,) = _struct_BI.unpack(str[start:end]) 00530 start = end 00531 end += 4 00532 (length,) = _struct_I.unpack(str[start:end]) 00533 start = end 00534 end += length 00535 self.image.data = str[start:end] 00536 _x = self 00537 start = end 00538 end += 12 00539 (_x.camera_info.header.seq, _x.camera_info.header.stamp.secs, _x.camera_info.header.stamp.nsecs,) = _struct_3I.unpack(str[start:end]) 00540 start = end 00541 end += 4 00542 (length,) = _struct_I.unpack(str[start:end]) 00543 start = end 00544 end += length 00545 self.camera_info.header.frame_id = str[start:end] 00546 _x = self 00547 start = end 00548 end += 8 00549 (_x.camera_info.height, _x.camera_info.width,) = _struct_2I.unpack(str[start:end]) 00550 start = end 00551 end += 4 00552 (length,) = _struct_I.unpack(str[start:end]) 00553 start = end 00554 end += length 00555 self.camera_info.distortion_model = str[start:end] 00556 start = end 00557 end += 4 00558 (length,) = _struct_I.unpack(str[start:end]) 00559 pattern = '<%sd'%length 00560 start = end 00561 end += struct.calcsize(pattern) 00562 self.camera_info.D = struct.unpack(pattern, str[start:end]) 00563 start = end 00564 end += 72 00565 self.camera_info.K = _struct_9d.unpack(str[start:end]) 00566 start = end 00567 end += 72 00568 self.camera_info.R = _struct_9d.unpack(str[start:end]) 00569 start = end 00570 end += 96 00571 self.camera_info.P = _struct_12d.unpack(str[start:end]) 00572 _x = self 00573 start = end 00574 end += 37 00575 (_x.camera_info.binning_x, _x.camera_info.binning_y, _x.camera_info.roi.x_offset, _x.camera_info.roi.y_offset, _x.camera_info.roi.height, _x.camera_info.roi.width, _x.camera_info.roi.do_rectify, _x.wide_field.header.seq, _x.wide_field.header.stamp.secs, _x.wide_field.header.stamp.nsecs,) = _struct_6IB3I.unpack(str[start:end]) 00576 self.camera_info.roi.do_rectify = bool(self.camera_info.roi.do_rectify) 00577 start = end 00578 end += 4 00579 (length,) = _struct_I.unpack(str[start:end]) 00580 start = end 00581 end += length 00582 self.wide_field.header.frame_id = str[start:end] 00583 _x = self 00584 start = end 00585 end += 8 00586 (_x.wide_field.height, _x.wide_field.width,) = _struct_2I.unpack(str[start:end]) 00587 start = end 00588 end += 4 00589 (length,) = _struct_I.unpack(str[start:end]) 00590 start = end 00591 end += length 00592 self.wide_field.encoding = str[start:end] 00593 _x = self 00594 start = end 00595 end += 5 00596 (_x.wide_field.is_bigendian, _x.wide_field.step,) = _struct_BI.unpack(str[start:end]) 00597 start = end 00598 end += 4 00599 (length,) = _struct_I.unpack(str[start:end]) 00600 start = end 00601 end += length 00602 self.wide_field.data = str[start:end] 00603 _x = self 00604 start = end 00605 end += 12 00606 (_x.wide_camera_info.header.seq, _x.wide_camera_info.header.stamp.secs, _x.wide_camera_info.header.stamp.nsecs,) = _struct_3I.unpack(str[start:end]) 00607 start = end 00608 end += 4 00609 (length,) = _struct_I.unpack(str[start:end]) 00610 start = end 00611 end += length 00612 self.wide_camera_info.header.frame_id = str[start:end] 00613 _x = self 00614 start = end 00615 end += 8 00616 (_x.wide_camera_info.height, _x.wide_camera_info.width,) = _struct_2I.unpack(str[start:end]) 00617 start = end 00618 end += 4 00619 (length,) = _struct_I.unpack(str[start:end]) 00620 start = end 00621 end += length 00622 self.wide_camera_info.distortion_model = str[start:end] 00623 start = end 00624 end += 4 00625 (length,) = _struct_I.unpack(str[start:end]) 00626 pattern = '<%sd'%length 00627 start = end 00628 end += struct.calcsize(pattern) 00629 self.wide_camera_info.D = struct.unpack(pattern, str[start:end]) 00630 start = end 00631 end += 72 00632 self.wide_camera_info.K = _struct_9d.unpack(str[start:end]) 00633 start = end 00634 end += 72 00635 self.wide_camera_info.R = _struct_9d.unpack(str[start:end]) 00636 start = end 00637 end += 96 00638 self.wide_camera_info.P = _struct_12d.unpack(str[start:end]) 00639 _x = self 00640 start = end 00641 end += 37 00642 (_x.wide_camera_info.binning_x, _x.wide_camera_info.binning_y, _x.wide_camera_info.roi.x_offset, _x.wide_camera_info.roi.y_offset, _x.wide_camera_info.roi.height, _x.wide_camera_info.roi.width, _x.wide_camera_info.roi.do_rectify, _x.point_cloud.header.seq, _x.point_cloud.header.stamp.secs, _x.point_cloud.header.stamp.nsecs,) = _struct_6IB3I.unpack(str[start:end]) 00643 self.wide_camera_info.roi.do_rectify = bool(self.wide_camera_info.roi.do_rectify) 00644 start = end 00645 end += 4 00646 (length,) = _struct_I.unpack(str[start:end]) 00647 start = end 00648 end += length 00649 self.point_cloud.header.frame_id = str[start:end] 00650 _x = self 00651 start = end 00652 end += 8 00653 (_x.point_cloud.height, _x.point_cloud.width,) = _struct_2I.unpack(str[start:end]) 00654 start = end 00655 end += 4 00656 (length,) = _struct_I.unpack(str[start:end]) 00657 self.point_cloud.fields = [] 00658 for i in range(0, length): 00659 val1 = sensor_msgs.msg.PointField() 00660 start = end 00661 end += 4 00662 (length,) = _struct_I.unpack(str[start:end]) 00663 start = end 00664 end += length 00665 val1.name = str[start:end] 00666 _x = val1 00667 start = end 00668 end += 9 00669 (_x.offset, _x.datatype, _x.count,) = _struct_IBI.unpack(str[start:end]) 00670 self.point_cloud.fields.append(val1) 00671 _x = self 00672 start = end 00673 end += 9 00674 (_x.point_cloud.is_bigendian, _x.point_cloud.point_step, _x.point_cloud.row_step,) = _struct_B2I.unpack(str[start:end]) 00675 self.point_cloud.is_bigendian = bool(self.point_cloud.is_bigendian) 00676 start = end 00677 end += 4 00678 (length,) = _struct_I.unpack(str[start:end]) 00679 start = end 00680 end += length 00681 self.point_cloud.data = str[start:end] 00682 _x = self 00683 start = end 00684 end += 13 00685 (_x.point_cloud.is_dense, _x.disparity_image.header.seq, _x.disparity_image.header.stamp.secs, _x.disparity_image.header.stamp.nsecs,) = _struct_B3I.unpack(str[start:end]) 00686 self.point_cloud.is_dense = bool(self.point_cloud.is_dense) 00687 start = end 00688 end += 4 00689 (length,) = _struct_I.unpack(str[start:end]) 00690 start = end 00691 end += length 00692 self.disparity_image.header.frame_id = str[start:end] 00693 _x = self 00694 start = end 00695 end += 12 00696 (_x.disparity_image.image.header.seq, _x.disparity_image.image.header.stamp.secs, _x.disparity_image.image.header.stamp.nsecs,) = _struct_3I.unpack(str[start:end]) 00697 start = end 00698 end += 4 00699 (length,) = _struct_I.unpack(str[start:end]) 00700 start = end 00701 end += length 00702 self.disparity_image.image.header.frame_id = str[start:end] 00703 _x = self 00704 start = end 00705 end += 8 00706 (_x.disparity_image.image.height, _x.disparity_image.image.width,) = _struct_2I.unpack(str[start:end]) 00707 start = end 00708 end += 4 00709 (length,) = _struct_I.unpack(str[start:end]) 00710 start = end 00711 end += length 00712 self.disparity_image.image.encoding = str[start:end] 00713 _x = self 00714 start = end 00715 end += 5 00716 (_x.disparity_image.image.is_bigendian, _x.disparity_image.image.step,) = _struct_BI.unpack(str[start:end]) 00717 start = end 00718 end += 4 00719 (length,) = _struct_I.unpack(str[start:end]) 00720 start = end 00721 end += length 00722 self.disparity_image.image.data = str[start:end] 00723 _x = self 00724 start = end 00725 end += 37 00726 (_x.disparity_image.f, _x.disparity_image.T, _x.disparity_image.valid_window.x_offset, _x.disparity_image.valid_window.y_offset, _x.disparity_image.valid_window.height, _x.disparity_image.valid_window.width, _x.disparity_image.valid_window.do_rectify, _x.disparity_image.min_disparity, _x.disparity_image.max_disparity, _x.disparity_image.delta_d,) = _struct_2f4IB3f.unpack(str[start:end]) 00727 self.disparity_image.valid_window.do_rectify = bool(self.disparity_image.valid_window.do_rectify) 00728 return self 00729 except struct.error as e: 00730 raise roslib.message.DeserializationError(e) #most likely buffer underfill 00731 00732 00733 def serialize_numpy(self, buff, numpy): 00734 """ 00735 serialize message with numpy array types into buffer 00736 @param buff: buffer 00737 @type buff: StringIO 00738 @param numpy: numpy python module 00739 @type numpy module 00740 """ 00741 try: 00742 _x = self 00743 buff.write(_struct_3I.pack(_x.image.header.seq, _x.image.header.stamp.secs, _x.image.header.stamp.nsecs)) 00744 _x = self.image.header.frame_id 00745 length = len(_x) 00746 buff.write(struct.pack('<I%ss'%length, length, _x)) 00747 _x = self 00748 buff.write(_struct_2I.pack(_x.image.height, _x.image.width)) 00749 _x = self.image.encoding 00750 length = len(_x) 00751 buff.write(struct.pack('<I%ss'%length, length, _x)) 00752 _x = self 00753 buff.write(_struct_BI.pack(_x.image.is_bigendian, _x.image.step)) 00754 _x = self.image.data 00755 length = len(_x) 00756 # - if encoded as a list instead, serialize as bytes instead of string 00757 if type(_x) in [list, tuple]: 00758 buff.write(struct.pack('<I%sB'%length, length, *_x)) 00759 else: 00760 buff.write(struct.pack('<I%ss'%length, length, _x)) 00761 _x = self 00762 buff.write(_struct_3I.pack(_x.camera_info.header.seq, _x.camera_info.header.stamp.secs, _x.camera_info.header.stamp.nsecs)) 00763 _x = self.camera_info.header.frame_id 00764 length = len(_x) 00765 buff.write(struct.pack('<I%ss'%length, length, _x)) 00766 _x = self 00767 buff.write(_struct_2I.pack(_x.camera_info.height, _x.camera_info.width)) 00768 _x = self.camera_info.distortion_model 00769 length = len(_x) 00770 buff.write(struct.pack('<I%ss'%length, length, _x)) 00771 length = len(self.camera_info.D) 00772 buff.write(_struct_I.pack(length)) 00773 pattern = '<%sd'%length 00774 buff.write(self.camera_info.D.tostring()) 00775 buff.write(self.camera_info.K.tostring()) 00776 buff.write(self.camera_info.R.tostring()) 00777 buff.write(self.camera_info.P.tostring()) 00778 _x = self 00779 buff.write(_struct_6IB3I.pack(_x.camera_info.binning_x, _x.camera_info.binning_y, _x.camera_info.roi.x_offset, _x.camera_info.roi.y_offset, _x.camera_info.roi.height, _x.camera_info.roi.width, _x.camera_info.roi.do_rectify, _x.wide_field.header.seq, _x.wide_field.header.stamp.secs, _x.wide_field.header.stamp.nsecs)) 00780 _x = self.wide_field.header.frame_id 00781 length = len(_x) 00782 buff.write(struct.pack('<I%ss'%length, length, _x)) 00783 _x = self 00784 buff.write(_struct_2I.pack(_x.wide_field.height, _x.wide_field.width)) 00785 _x = self.wide_field.encoding 00786 length = len(_x) 00787 buff.write(struct.pack('<I%ss'%length, length, _x)) 00788 _x = self 00789 buff.write(_struct_BI.pack(_x.wide_field.is_bigendian, _x.wide_field.step)) 00790 _x = self.wide_field.data 00791 length = len(_x) 00792 # - if encoded as a list instead, serialize as bytes instead of string 00793 if type(_x) in [list, tuple]: 00794 buff.write(struct.pack('<I%sB'%length, length, *_x)) 00795 else: 00796 buff.write(struct.pack('<I%ss'%length, length, _x)) 00797 _x = self 00798 buff.write(_struct_3I.pack(_x.wide_camera_info.header.seq, _x.wide_camera_info.header.stamp.secs, _x.wide_camera_info.header.stamp.nsecs)) 00799 _x = self.wide_camera_info.header.frame_id 00800 length = len(_x) 00801 buff.write(struct.pack('<I%ss'%length, length, _x)) 00802 _x = self 00803 buff.write(_struct_2I.pack(_x.wide_camera_info.height, _x.wide_camera_info.width)) 00804 _x = self.wide_camera_info.distortion_model 00805 length = len(_x) 00806 buff.write(struct.pack('<I%ss'%length, length, _x)) 00807 length = len(self.wide_camera_info.D) 00808 buff.write(_struct_I.pack(length)) 00809 pattern = '<%sd'%length 00810 buff.write(self.wide_camera_info.D.tostring()) 00811 buff.write(self.wide_camera_info.K.tostring()) 00812 buff.write(self.wide_camera_info.R.tostring()) 00813 buff.write(self.wide_camera_info.P.tostring()) 00814 _x = self 00815 buff.write(_struct_6IB3I.pack(_x.wide_camera_info.binning_x, _x.wide_camera_info.binning_y, _x.wide_camera_info.roi.x_offset, _x.wide_camera_info.roi.y_offset, _x.wide_camera_info.roi.height, _x.wide_camera_info.roi.width, _x.wide_camera_info.roi.do_rectify, _x.point_cloud.header.seq, _x.point_cloud.header.stamp.secs, _x.point_cloud.header.stamp.nsecs)) 00816 _x = self.point_cloud.header.frame_id 00817 length = len(_x) 00818 buff.write(struct.pack('<I%ss'%length, length, _x)) 00819 _x = self 00820 buff.write(_struct_2I.pack(_x.point_cloud.height, _x.point_cloud.width)) 00821 length = len(self.point_cloud.fields) 00822 buff.write(_struct_I.pack(length)) 00823 for val1 in self.point_cloud.fields: 00824 _x = val1.name 00825 length = len(_x) 00826 buff.write(struct.pack('<I%ss'%length, length, _x)) 00827 _x = val1 00828 buff.write(_struct_IBI.pack(_x.offset, _x.datatype, _x.count)) 00829 _x = self 00830 buff.write(_struct_B2I.pack(_x.point_cloud.is_bigendian, _x.point_cloud.point_step, _x.point_cloud.row_step)) 00831 _x = self.point_cloud.data 00832 length = len(_x) 00833 # - if encoded as a list instead, serialize as bytes instead of string 00834 if type(_x) in [list, tuple]: 00835 buff.write(struct.pack('<I%sB'%length, length, *_x)) 00836 else: 00837 buff.write(struct.pack('<I%ss'%length, length, _x)) 00838 _x = self 00839 buff.write(_struct_B3I.pack(_x.point_cloud.is_dense, _x.disparity_image.header.seq, _x.disparity_image.header.stamp.secs, _x.disparity_image.header.stamp.nsecs)) 00840 _x = self.disparity_image.header.frame_id 00841 length = len(_x) 00842 buff.write(struct.pack('<I%ss'%length, length, _x)) 00843 _x = self 00844 buff.write(_struct_3I.pack(_x.disparity_image.image.header.seq, _x.disparity_image.image.header.stamp.secs, _x.disparity_image.image.header.stamp.nsecs)) 00845 _x = self.disparity_image.image.header.frame_id 00846 length = len(_x) 00847 buff.write(struct.pack('<I%ss'%length, length, _x)) 00848 _x = self 00849 buff.write(_struct_2I.pack(_x.disparity_image.image.height, _x.disparity_image.image.width)) 00850 _x = self.disparity_image.image.encoding 00851 length = len(_x) 00852 buff.write(struct.pack('<I%ss'%length, length, _x)) 00853 _x = self 00854 buff.write(_struct_BI.pack(_x.disparity_image.image.is_bigendian, _x.disparity_image.image.step)) 00855 _x = self.disparity_image.image.data 00856 length = len(_x) 00857 # - if encoded as a list instead, serialize as bytes instead of string 00858 if type(_x) in [list, tuple]: 00859 buff.write(struct.pack('<I%sB'%length, length, *_x)) 00860 else: 00861 buff.write(struct.pack('<I%ss'%length, length, _x)) 00862 _x = self 00863 buff.write(_struct_2f4IB3f.pack(_x.disparity_image.f, _x.disparity_image.T, _x.disparity_image.valid_window.x_offset, _x.disparity_image.valid_window.y_offset, _x.disparity_image.valid_window.height, _x.disparity_image.valid_window.width, _x.disparity_image.valid_window.do_rectify, _x.disparity_image.min_disparity, _x.disparity_image.max_disparity, _x.disparity_image.delta_d)) 00864 except struct.error as se: self._check_types(se) 00865 except TypeError as te: self._check_types(te) 00866 00867 def deserialize_numpy(self, str, numpy): 00868 """ 00869 unpack serialized message in str into this message instance using numpy for array types 00870 @param str: byte array of serialized message 00871 @type str: str 00872 @param numpy: numpy python module 00873 @type numpy: module 00874 """ 00875 try: 00876 if self.image is None: 00877 self.image = sensor_msgs.msg.Image() 00878 if self.camera_info is None: 00879 self.camera_info = sensor_msgs.msg.CameraInfo() 00880 if self.wide_field is None: 00881 self.wide_field = sensor_msgs.msg.Image() 00882 if self.wide_camera_info is None: 00883 self.wide_camera_info = sensor_msgs.msg.CameraInfo() 00884 if self.point_cloud is None: 00885 self.point_cloud = sensor_msgs.msg.PointCloud2() 00886 if self.disparity_image is None: 00887 self.disparity_image = stereo_msgs.msg.DisparityImage() 00888 end = 0 00889 _x = self 00890 start = end 00891 end += 12 00892 (_x.image.header.seq, _x.image.header.stamp.secs, _x.image.header.stamp.nsecs,) = _struct_3I.unpack(str[start:end]) 00893 start = end 00894 end += 4 00895 (length,) = _struct_I.unpack(str[start:end]) 00896 start = end 00897 end += length 00898 self.image.header.frame_id = str[start:end] 00899 _x = self 00900 start = end 00901 end += 8 00902 (_x.image.height, _x.image.width,) = _struct_2I.unpack(str[start:end]) 00903 start = end 00904 end += 4 00905 (length,) = _struct_I.unpack(str[start:end]) 00906 start = end 00907 end += length 00908 self.image.encoding = str[start:end] 00909 _x = self 00910 start = end 00911 end += 5 00912 (_x.image.is_bigendian, _x.image.step,) = _struct_BI.unpack(str[start:end]) 00913 start = end 00914 end += 4 00915 (length,) = _struct_I.unpack(str[start:end]) 00916 start = end 00917 end += length 00918 self.image.data = str[start:end] 00919 _x = self 00920 start = end 00921 end += 12 00922 (_x.camera_info.header.seq, _x.camera_info.header.stamp.secs, _x.camera_info.header.stamp.nsecs,) = _struct_3I.unpack(str[start:end]) 00923 start = end 00924 end += 4 00925 (length,) = _struct_I.unpack(str[start:end]) 00926 start = end 00927 end += length 00928 self.camera_info.header.frame_id = str[start:end] 00929 _x = self 00930 start = end 00931 end += 8 00932 (_x.camera_info.height, _x.camera_info.width,) = _struct_2I.unpack(str[start:end]) 00933 start = end 00934 end += 4 00935 (length,) = _struct_I.unpack(str[start:end]) 00936 start = end 00937 end += length 00938 self.camera_info.distortion_model = str[start:end] 00939 start = end 00940 end += 4 00941 (length,) = _struct_I.unpack(str[start:end]) 00942 pattern = '<%sd'%length 00943 start = end 00944 end += struct.calcsize(pattern) 00945 self.camera_info.D = numpy.frombuffer(str[start:end], dtype=numpy.float64, count=length) 00946 start = end 00947 end += 72 00948 self.camera_info.K = numpy.frombuffer(str[start:end], dtype=numpy.float64, count=9) 00949 start = end 00950 end += 72 00951 self.camera_info.R = numpy.frombuffer(str[start:end], dtype=numpy.float64, count=9) 00952 start = end 00953 end += 96 00954 self.camera_info.P = numpy.frombuffer(str[start:end], dtype=numpy.float64, count=12) 00955 _x = self 00956 start = end 00957 end += 37 00958 (_x.camera_info.binning_x, _x.camera_info.binning_y, _x.camera_info.roi.x_offset, _x.camera_info.roi.y_offset, _x.camera_info.roi.height, _x.camera_info.roi.width, _x.camera_info.roi.do_rectify, _x.wide_field.header.seq, _x.wide_field.header.stamp.secs, _x.wide_field.header.stamp.nsecs,) = _struct_6IB3I.unpack(str[start:end]) 00959 self.camera_info.roi.do_rectify = bool(self.camera_info.roi.do_rectify) 00960 start = end 00961 end += 4 00962 (length,) = _struct_I.unpack(str[start:end]) 00963 start = end 00964 end += length 00965 self.wide_field.header.frame_id = str[start:end] 00966 _x = self 00967 start = end 00968 end += 8 00969 (_x.wide_field.height, _x.wide_field.width,) = _struct_2I.unpack(str[start:end]) 00970 start = end 00971 end += 4 00972 (length,) = _struct_I.unpack(str[start:end]) 00973 start = end 00974 end += length 00975 self.wide_field.encoding = str[start:end] 00976 _x = self 00977 start = end 00978 end += 5 00979 (_x.wide_field.is_bigendian, _x.wide_field.step,) = _struct_BI.unpack(str[start:end]) 00980 start = end 00981 end += 4 00982 (length,) = _struct_I.unpack(str[start:end]) 00983 start = end 00984 end += length 00985 self.wide_field.data = str[start:end] 00986 _x = self 00987 start = end 00988 end += 12 00989 (_x.wide_camera_info.header.seq, _x.wide_camera_info.header.stamp.secs, _x.wide_camera_info.header.stamp.nsecs,) = _struct_3I.unpack(str[start:end]) 00990 start = end 00991 end += 4 00992 (length,) = _struct_I.unpack(str[start:end]) 00993 start = end 00994 end += length 00995 self.wide_camera_info.header.frame_id = str[start:end] 00996 _x = self 00997 start = end 00998 end += 8 00999 (_x.wide_camera_info.height, _x.wide_camera_info.width,) = _struct_2I.unpack(str[start:end]) 01000 start = end 01001 end += 4 01002 (length,) = _struct_I.unpack(str[start:end]) 01003 start = end 01004 end += length 01005 self.wide_camera_info.distortion_model = str[start:end] 01006 start = end 01007 end += 4 01008 (length,) = _struct_I.unpack(str[start:end]) 01009 pattern = '<%sd'%length 01010 start = end 01011 end += struct.calcsize(pattern) 01012 self.wide_camera_info.D = numpy.frombuffer(str[start:end], dtype=numpy.float64, count=length) 01013 start = end 01014 end += 72 01015 self.wide_camera_info.K = numpy.frombuffer(str[start:end], dtype=numpy.float64, count=9) 01016 start = end 01017 end += 72 01018 self.wide_camera_info.R = numpy.frombuffer(str[start:end], dtype=numpy.float64, count=9) 01019 start = end 01020 end += 96 01021 self.wide_camera_info.P = numpy.frombuffer(str[start:end], dtype=numpy.float64, count=12) 01022 _x = self 01023 start = end 01024 end += 37 01025 (_x.wide_camera_info.binning_x, _x.wide_camera_info.binning_y, _x.wide_camera_info.roi.x_offset, _x.wide_camera_info.roi.y_offset, _x.wide_camera_info.roi.height, _x.wide_camera_info.roi.width, _x.wide_camera_info.roi.do_rectify, _x.point_cloud.header.seq, _x.point_cloud.header.stamp.secs, _x.point_cloud.header.stamp.nsecs,) = _struct_6IB3I.unpack(str[start:end]) 01026 self.wide_camera_info.roi.do_rectify = bool(self.wide_camera_info.roi.do_rectify) 01027 start = end 01028 end += 4 01029 (length,) = _struct_I.unpack(str[start:end]) 01030 start = end 01031 end += length 01032 self.point_cloud.header.frame_id = str[start:end] 01033 _x = self 01034 start = end 01035 end += 8 01036 (_x.point_cloud.height, _x.point_cloud.width,) = _struct_2I.unpack(str[start:end]) 01037 start = end 01038 end += 4 01039 (length,) = _struct_I.unpack(str[start:end]) 01040 self.point_cloud.fields = [] 01041 for i in range(0, length): 01042 val1 = sensor_msgs.msg.PointField() 01043 start = end 01044 end += 4 01045 (length,) = _struct_I.unpack(str[start:end]) 01046 start = end 01047 end += length 01048 val1.name = str[start:end] 01049 _x = val1 01050 start = end 01051 end += 9 01052 (_x.offset, _x.datatype, _x.count,) = _struct_IBI.unpack(str[start:end]) 01053 self.point_cloud.fields.append(val1) 01054 _x = self 01055 start = end 01056 end += 9 01057 (_x.point_cloud.is_bigendian, _x.point_cloud.point_step, _x.point_cloud.row_step,) = _struct_B2I.unpack(str[start:end]) 01058 self.point_cloud.is_bigendian = bool(self.point_cloud.is_bigendian) 01059 start = end 01060 end += 4 01061 (length,) = _struct_I.unpack(str[start:end]) 01062 start = end 01063 end += length 01064 self.point_cloud.data = str[start:end] 01065 _x = self 01066 start = end 01067 end += 13 01068 (_x.point_cloud.is_dense, _x.disparity_image.header.seq, _x.disparity_image.header.stamp.secs, _x.disparity_image.header.stamp.nsecs,) = _struct_B3I.unpack(str[start:end]) 01069 self.point_cloud.is_dense = bool(self.point_cloud.is_dense) 01070 start = end 01071 end += 4 01072 (length,) = _struct_I.unpack(str[start:end]) 01073 start = end 01074 end += length 01075 self.disparity_image.header.frame_id = str[start:end] 01076 _x = self 01077 start = end 01078 end += 12 01079 (_x.disparity_image.image.header.seq, _x.disparity_image.image.header.stamp.secs, _x.disparity_image.image.header.stamp.nsecs,) = _struct_3I.unpack(str[start:end]) 01080 start = end 01081 end += 4 01082 (length,) = _struct_I.unpack(str[start:end]) 01083 start = end 01084 end += length 01085 self.disparity_image.image.header.frame_id = str[start:end] 01086 _x = self 01087 start = end 01088 end += 8 01089 (_x.disparity_image.image.height, _x.disparity_image.image.width,) = _struct_2I.unpack(str[start:end]) 01090 start = end 01091 end += 4 01092 (length,) = _struct_I.unpack(str[start:end]) 01093 start = end 01094 end += length 01095 self.disparity_image.image.encoding = str[start:end] 01096 _x = self 01097 start = end 01098 end += 5 01099 (_x.disparity_image.image.is_bigendian, _x.disparity_image.image.step,) = _struct_BI.unpack(str[start:end]) 01100 start = end 01101 end += 4 01102 (length,) = _struct_I.unpack(str[start:end]) 01103 start = end 01104 end += length 01105 self.disparity_image.image.data = str[start:end] 01106 _x = self 01107 start = end 01108 end += 37 01109 (_x.disparity_image.f, _x.disparity_image.T, _x.disparity_image.valid_window.x_offset, _x.disparity_image.valid_window.y_offset, _x.disparity_image.valid_window.height, _x.disparity_image.valid_window.width, _x.disparity_image.valid_window.do_rectify, _x.disparity_image.min_disparity, _x.disparity_image.max_disparity, _x.disparity_image.delta_d,) = _struct_2f4IB3f.unpack(str[start:end]) 01110 self.disparity_image.valid_window.do_rectify = bool(self.disparity_image.valid_window.do_rectify) 01111 return self 01112 except struct.error as e: 01113 raise roslib.message.DeserializationError(e) #most likely buffer underfill 01114 01115 _struct_I = roslib.message.struct_I 01116 _struct_IBI = struct.Struct("<IBI") 01117 _struct_6IB3I = struct.Struct("<6IB3I") 01118 _struct_12d = struct.Struct("<12d") 01119 _struct_2f4IB3f = struct.Struct("<2f4IB3f") 01120 _struct_9d = struct.Struct("<9d") 01121 _struct_BI = struct.Struct("<BI") 01122 _struct_3I = struct.Struct("<3I") 01123 _struct_B3I = struct.Struct("<B3I") 01124 _struct_B2I = struct.Struct("<B2I") 01125 _struct_2I = struct.Struct("<2I")