[ros-users] stereo_image_proc intrinsic camera matrix

Sean Matthews sean.d.matthews at gmail.com
Mon Jan 10 21:04:38 UTC 2011


Why does stereo_image_proc (in stereo_camera_model.cpp >
fromCameraInfo(...) ) assert that fx, fy, cx, and cy be exactly the
same?

I am using a Bumblebee2 camera. My goal is to run a Bumblebee2 node
that publishes left and right images and camera_info as required by
stereo_image_proc, so that stereo_image_proc will calculate the
disparity image.

Here's my setup:
- I have a Bumblebee2 node from which I publish
/BB2/left/image_raw
/BB2/right/image_raw
/BB2/left/camera_info
/BB2/right/camera_info

It also provides services:
/BB2/left/set_camera_info
/BB2/right/set_camera_info

The services let ROS camera_calibration upload its results to the
Bumblebee2 node.

- I run ROS's camera_calibration to create these camera info matrices:

""
epipolar error: 0.121284634744

Left:
D =  [-0.47960798104204255, 0.32679954572044628,
0.0027042295145013441, -0.010927699724799535]
K =  [847.53789023826789, 0.0, 354.3969865786467, 0.0,
854.10490013170568, 230.52400263936929, 0.0, 0.0, 1.0]
R =  [0.99958787004573446, -0.004024799808271951,
-0.028423424211998463, 0.0040017945229592457, 0.99999161762062039,
-0.00086621538361643477, 0.028426672299583344, 0.00075211368697471789,
0.99959559754281335]
P =  [839.18355334074897, 0.0, 374.96363067626953, 0.0, 0.0,
839.18355334074897, 236.4456615447998, 0.0, 0.0, 0.0, 1.0, 0.0]

Right:
D =  [-0.46627567727156183, 0.34037243489633934,
0.0021856048884861057, -0.013366558510665757]
K =  [836.29642565283461, 0.0, 355.06475102231099, 0.0,
844.46697268527635, 240.24032246448206, 0.0, 0.0, 1.0]
R =  [0.9997164611914402, -0.0067238461474538377,
-0.022842659999418043, 0.0067423306310031321, 0.99997700210153218,
0.00073228798601938287, 0.022837210874489013, -0.00088609312016393069,
0.9997388042076073]
P =  [839.18355334074897, 0.0, 374.96363067626953, 100.62667085092157,
0.0, 839.18355334074897, 236.4456615447998, 0.0, 0.0, 0.0, 1.0, 0.0]
self.T [0.11991733732892706, -0.00080653441041777726, -0.0027400078632049837]
self.R [0.99998061542356764, 0.0027357916717672473,
-0.0055932299283717925, -0.0027445612377031614, 0.99999501560685133,
-0.001560815513024416, 0.0055889319834331718, 0.0015761362193317404,
0.99998313967481611]
self.l.R =  [1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0]
self.r.R =  [1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0]
self.l.P =  [847.53789023826789, 0.0, 354.3969865786467, 0.0, 0.0,
854.10490013170568, 230.52400263936929, 0.0, 0.0, 0.0, 1.0, 0.0]
self.r.P =  [836.29642565283461, 0.0, 355.06475102231099, 0.0, 0.0,
844.46697268527635, 240.24032246448206, 0.0, 0.0, 0.0, 1.0, 0.0]
# oST version 5.0 parameters
""

- However, stereo_image_proc will not use camera matrices from right
and left that are not exactly the same. Does anyone have more insight
into this? Am I improperly using camera_calibration,
stereo_image_proc, or anything else?

Thanks for your help,
Sean



More information about the ros-users mailing list