virtual_camera_info_publisher.py
Go to the documentation of this file.
1 #!/usr/bin/env python
2 
3 from jsk_topic_tools import ConnectionBasedTransport
4 import rospy
5 from sensor_msgs.msg import CameraInfo
6 
7 
8 class VirtualCameraInfoPublisher(ConnectionBasedTransport):
9 
10  def __init__(self):
11  super(VirtualCameraInfoPublisher, self).__init__()
12  self.frame_id = rospy.get_param('~frame_id', None)
13  self.pub = self.advertise(
14  '~output/camera_info', CameraInfo, queue_size=1)
15  self.height = rospy.get_param('~height', None)
16  self.width = rospy.get_param('~width', None)
17 
18  def subscribe(self):
19  self.sub = rospy.Subscriber('~input/camera_info', CameraInfo, self._cb)
20 
21  def unsubscribe(self):
22  self.sub.unregister()
23 
24  def _cb(self, info_msg):
25  K = list(info_msg.K)
26  P = list(info_msg.P)
27 
28  if self.frame_id is not None:
29  info_msg.header.frame_id = self.frame_id
30 
31  if self.height is not None:
32  info_msg.height = self.height
33  K[5] = self.height // 2
34  P[6] = self.height // 2
35 
36  if self.width is not None:
37  info_msg.width = self.width
38  K[2] = self.width // 2
39  P[2] = self.width // 2
40 
41  K[0] = 400.0
42  K[4] = 400.0
43  P[0] = 400.0
44  P[5] = 400.0
45  info_msg.K = K
46  info_msg.P = P
47  self.pub.publish(info_msg)
48 
49 
50 if __name__ == '__main__':
51  rospy.init_node('virtual_camera_info_publisher')
53  rospy.spin()
virtual_camera_info_publisher.VirtualCameraInfoPublisher.subscribe
def subscribe(self)
Definition: virtual_camera_info_publisher.py:18
virtual_camera_info_publisher.VirtualCameraInfoPublisher.unsubscribe
def unsubscribe(self)
Definition: virtual_camera_info_publisher.py:21
virtual_camera_info_publisher.VirtualCameraInfoPublisher.height
height
Definition: virtual_camera_info_publisher.py:15
virtual_camera_info_publisher.VirtualCameraInfoPublisher.__init__
def __init__(self)
Definition: virtual_camera_info_publisher.py:10
virtual_camera_info_publisher.VirtualCameraInfoPublisher.sub
sub
Definition: virtual_camera_info_publisher.py:19
virtual_camera_info_publisher.VirtualCameraInfoPublisher.width
width
Definition: virtual_camera_info_publisher.py:16
virtual_camera_info_publisher.VirtualCameraInfoPublisher.frame_id
frame_id
Definition: virtual_camera_info_publisher.py:12
virtual_camera_info_publisher.VirtualCameraInfoPublisher
Definition: virtual_camera_info_publisher.py:8
virtual_camera_info_publisher.VirtualCameraInfoPublisher._cb
def _cb(self, info_msg)
Definition: virtual_camera_info_publisher.py:24
virtual_camera_info_publisher.VirtualCameraInfoPublisher.pub
pub
Definition: virtual_camera_info_publisher.py:13


eus_teleop
Author(s): Shingo Kitagawa
autogenerated on Mon Dec 9 2024 04:10:50