Example #1
0
 def makeROS(self, data):
     # Given a list of the form [{message type (str)}, {message data (dict)}] received via TCP,
     # parse and create a ROS message.  
     print "Data received (" + str(sys.getsizeof(data[1])) + "): " + data[0]
     header = std_msgs.msg.Header()
     header.stamp = rospy.Time.now()
     header.frame_id = RVIZ_FRAME
     if data[0] == '/hardware_joint_states':
         pass
     elif data[0] == '/ihmc_ros/valkyrie/output/joint_states':
         msg = JointState()
         msg.header = header
         msg.name = data[1]['name']
         msg.position = data[1]['position']
         self.joints_publisher.publish(msg)
     elif data[0] == '/tf':
         msg = TFMessage()
         msg.transforms = data[1]['transforms']
         self.tf_publisher.publish(msg)
     elif data[0] == '/multisense/camera/points2':
         self.points2_publisher.publish(pc2.create_cloud_xyz32(header,data[1]))
     elif data[0] == '/multisense/camera/left/image_rect_color':
         msg = Image()
         msg.header = header 
         msg.height = data[1]['height']
         msg.width = data[1]['width']
         msg.encoding = data[1]['encoding']
         msg.is_bigendian = data[1]['is_bigendian']
         msg.step = data[1]['step']
         msg.data = data[1]['data']
         self.image_publisher.publish(msg)
         
         bridge = CvBridge()
         left_image = cv2.flip(cv2.flip( bridge.imgmsg_to_cv2(msg, "bgr8") ,0),1)
         cv2.imshow("left camera",left_image) 
         cv2.waitKey(3)
     else: 
         print ("WARNING!  Unrecognized data packet received.  Ignoring data")