Example #1
0
 def debagify_msg(self, msg):
     """
     The messages read from the rosbags do not have the correct classes so we need to reinitialize themself.
     """
     if 'Header' in str(type(msg)):
         newMsg = Header()
         newMsg.seq = msg.seq
         newMsg.stamp.secs = msg.stamp.secs
         newMsg.stamp.nsecs = msg.stamp.nsecs
         newMsg.frame_id = msg.frame_id
         return newMsg
     if 'RegionOfInterest' in str(type(msg)):
         newMsg = RegionOfInterest()
         newMsg.x_offset = msg.x_offset
         newMsg.y_offset = msg.y_offset
         newMsg.height = msg.height
         newMsg.width = msg.width
         newMsg.do_rectify = msg.do_rectify
         return newMsg
     if '_sensor_msgs__CompressedImage' in str(type(msg)):
         im = self.bridge.compressed_imgmsg_to_cv2(msg).copy()
         newMsg = self.bridge.cv2_to_compressed_imgmsg(im)
         newMsg.header = self.debagify_msg(msg.header)
         return newMsg
     if '_sensor_msgs__CameraInfo' in str(type(msg)):
         newMsg = CameraInfo()
         newMsg.header = self.debagify_msg(msg.header)
         newMsg.height = msg.height
         newMsg.width = msg.width
         newMsg.distortion_model = msg.distortion_model
         newMsg.D = msg.D
         newMsg.P = msg.P
         newMsg.R = msg.R
         newMsg.K = msg.K
         newMsg.binning_x = msg.binning_x
         newMsg.binning_y = msg.binning_y
         newMsg.roi = self.debagify_msg(msg.roi)
         return newMsg
     raise Exception("Message type %s could not be debagified" %
                     str(type(msg)))