ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question
0

different resolutions and camera_info_manager/openni (e.g. kinect camera)

asked 2012-01-19 23:46:28 -0600

updated 2016-10-24 09:00:51 -0600

ngrennan gravatar image

After the calibration and using the camera_calibration_parsers, I get a rgb_A00363A22671047A.yaml file. This file can be placed in /home/username/.ros/camera_info/. But I can chance the resolution anytime(e.g. 640x480 -> 1280x1024). How is it possible to store different calibrations, one for every supported resolution?

edit retag flag offensive close merge delete

3 Answers

Sort by ยป oldest newest most voted
2

answered 2012-01-20 09:47:30 -0600

Patrick Mihelich gravatar image

In principle you shouldn't have to store different calibrations for each resolution. Going from 640x480 to 1280x1024 amounts to changing the binning and region-of-interest settings on the camera, which don't affect its intrinsic calibration. See REP 104 for the gory details.

It's possible that the OpenNI driver doesn't update camera_info correctly when you change the resolution - it's supposed to, but we haven't tested it much. If so, please report a bug.

edit flag offensive delete link more
0

answered 2012-01-20 02:17:23 -0600

joq gravatar image

You are correct, the resolution does affect calibration.

I would recommend calibrating the camera for each resolution you intend to use. Store them in separate files, including resolution in the name, like this:

package://my_cameras/calibrations/${NAME}_640x480.yaml
package://my_cameras/calibrations/${NAME}_1280x1024.yaml

Here is a detailed description of the camera info URL.

Since the calibrated width and height are included in the calibration file, the camera driver should complain if you accidentally use the wrong one.

edit flag offensive delete link more
0

answered 2012-01-20 00:10:15 -0600

Hansg91 gravatar image

updated 2012-01-20 00:10:41 -0600

What you could do is store the calibration files in some folder and make a new launch script that sets the following arguments:

  <arg name="rgb_camera_info_url"   value="path_to_rgb_calibration" />
  <arg name="depth_camera_info_url" value="path_to_depth_calibration" />

That should make it load your desired calibration file. You could create 2 launch scripts, one for each resolution, using different calibration files. However I wouldn't recommend the 1280x1024 resolution unless you don't mind the low framerate.

edit flag offensive delete link more

Question Tools

Stats

Asked: 2012-01-19 23:46:28 -0600

Seen: 1,125 times

Last updated: Jan 20 '12