Rosanswers logo


I am using a Kinect mounted on a PR2, ROS Electric and the openni_camera package from the openni_kinect stack. After starting the Kinect driver with

  • rgb_frame id: /openni_rgb_optical_frame and
  • depth_frame_id: /openni_depth_optical_frame

the published clouds both have the frame_id /openni_rgb_optical_frame.

Has someone an explanation for me?

Thanks David

pr2admin@kodiak-c1:/opt/ros/electric/stacks/openni_kinect/openni_camera/launch$ roslaunch openni_camera openni_node.launch

... logging to /u/pr2admin/.ros/log/bf52f8ea-e5a0-11e1-9e5c-001517ebc101/roslaunch-kodiak-c1-11445.log Checking log directory for disk usage. This may take awhile. Press Ctrl-C to interrupt Done checking log file disk usage. Usage is <1GB.

started roslaunch server http://kodiak-c1:55334/


PARAMETERS * /rosdistro * /openni_node1/use_indices * /openni_node1/depth_registration * /openni_node1/image_time_offset * /openni_node1/depth_frame_id * /openni_node1/depth_mode * /openni_node1/debayering * /rosversion * /openni_node1/projector_depth_baseline

  • /openni_node1/rgb_frame_id * /openni_node1/depth_rgb_translation * /openni_node1/depth_time_offset * /openni_node1/image_mode * /openni_node1/shift_offset * /openni_node1/device_id * /openni_node1/depth_rgb_rotation

NODES / openni_node1 (openni_camera/openni_node) kinect_base_link (tf/static_transform_publisher) kinect_base_link1 (tf/static_transform_publisher) kinect_base_link2 (tf/static_transform_publisher) kinect_base_link3 (tf/static_transform_publisher)

auto-starting new master process[master]: started with pid [11471] ROS_MASTER_URI=http://c1:11311

setting /run_id to bf52f8ea-e5a0-11e1-9e5c-001517ebc101 process[rosout-1]: started with pid [11488] started core service [/rosout] process[openni_node1-2]: started with pid [11498] process[kinect_base_link-3]: started with pid [11501] process[kinect_base_link1-4]: started with pid [11502] process[kinect_base_link2-5]: started with pid [11503] process[kinect_base_link3-6]: started with pid [11505] [ INFO] [1344901438.735767926]: [/openni_node1] Number devices connected: 1 [ INFO] [1344901438.736005847]: [/openni_node1] 1. device on bus 002:09 is a Xbox NUI Camera (2ae) from Microsoft (45e) with serial id 'A00365902376048A' [ INFO] [1344901438.738526435]: [/openni_node1] searching for device with index = 1 [ INFO] [1344901438.783217136]: [/openni_node1] Opened 'Xbox NUI Camera' on bus 2:9 with serial number 'A00365902376048A' [ INFO] [1344901438.798280799]: rgb_frame_id = '/openni_rgb_optical_frame' [ INFO] [1344901438.800312236]: depth_frame_id = '/openni_depth_optical_frame'


pr2admin@kodiak-c1:~$ rostopic echo /camera/depth/points | grep frame > frame_id: /openni_rgb_optical_frame** > > **pr2admin@kodiak-c1:~$ rostopic echo /camera/rgb/image_color | grep frame frame_id: /openni_rgb_optical_frame

Originally posted by DavidF on ROS Answers with karma: 3 on 2012-08-13

Post score: 0


1 Answer 1


Rosanswers logo

Hi DavidF!

That is an easy one!! If you look into the file $(find openni_camera)/launch/openni_node.launch you will see that the parameter depth_registration is set to true:

<param name="depth_registration" value="true" />

This means that the depth image is being registered with the rgb image (so the pixels in both images represent the exact same points in the real world) and therefore both /camera/rgb/image_color and /camera/depth/points are now expressed in terms of /openni_rgb_optical_frame.

If you set that parameter to false, then /camera/depth/points will have frame_id = /openni_depth_optical_frame as you would expect.

I hope this was helpful. Martin.

Originally posted by Martin Peris with karma: 5625 on 2012-08-13

This answer was ACCEPTED on the original site

Post score: 2


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.