Robotics StackExchange | Archived questions

How to use camera calibration restults from the ROS stereo calibration to check accuracy of the camera for long distances.

Hi Im using two point Grey Chameleon3 mono camera set up as Master Salve and synchronized so can work as stereo camera. I have a installed ROS driver and able to publish the camera topics . Im using this ROS driver https://github.com/KumarRobotics/flea3. And with roslaunch flea3 stereonode.launch left:=18081067 right:=17496474 camera:=stereocamera

can launch the driver.

Then was following the ROS tutorial camera_calibrationTutorialsStereoCalibration http://wiki.ros.org/camera_calibration/Tutorials/StereoCalibration to calibrate the cameras. I got 70 samples for the calibration and the epipolar error was around 0.2. This are the Calibration results

 Left:
('D = ', [-0.20826996106865595, 0.18366155924086058, -0.0034661778577718466, 0.00307931151347718, 0.0])
('K = ', [432.82205088588205, 0.0, 272.95231180581044, 0.0, 435.6996693192078, 174.95641222266673, 0.0, 0.0, 1.0])
('R = ', [0.9746296173669449, 0.02700939091034212, -0.22218821245470002, -0.026808041682390916, 0.9996329035169494, 0.003922640364378138, 0.22221259607033478, 0.0021333093834195356, 0.974995903139473])
('P = ', [482.0586696457318, 0.0, 402.53031158447266, 0.0, 0.0, 482.0586696457318, 178.41748809814453, 0.0, 0.0, 0.0, 1.0, 0.0])

Right:
('D = ', [-0.20871659658963718, 0.13988041114304747, -0.0024096479983088267, 0.0031211255518143266, 0.0])
('K = ', [428.59279077571426, 0.0, 275.84270706306677, 0.0, 430.39539990687126, 189.6284029604295, 0.0, 0.0, 1.0])
('R = ', [0.9744460995294874, 0.030491070431326987, -0.22254234144476925, -0.03069272631969819, 0.9995256063000713, 0.002553213962635353, 0.2225146189867814, 0.004342461793354892, 0.9749196825188937])
('P = ', [482.0586696457318, 0.0, 402.53031158447266, -71.0404082822227, 0.0, 482.0586696457318, 178.41748809814453, 0.0, 0.0, 0.0, 1.0, 0.0])
('self.T ', [-0.14360295357921507, -0.004493432498569846, 0.03279579808809728])
('self.R ', [0.999992392164315, -0.003887570979931969, 0.0003200083856870595, 0.0038871258997246238, 0.9999914930203251, 0.0013799055115972527, -0.0003253701440041504, -0.0013786511006187285, 0.9999989967272028])
None
# oST version 5.0 parameters


[image]

width
512

height
384

[narrow_stereo/left]

camera matrix
432.822051 0.000000 272.952312
0.000000 435.699669 174.956412
0.000000 0.000000 1.000000

distortion
-0.208270 0.183662 -0.003466 0.003079 0.000000

rectification
0.974630 0.027009 -0.222188
-0.026808 0.999633 0.003923
0.222213 0.002133 0.974996

projection
482.058670 0.000000 402.530312 0.000000
0.000000 482.058670 178.417488 0.000000
0.000000 0.000000 1.000000 0.000000

# oST version 5.0 parameters


[image]

width
512

height
384

[narrow_stereo/right]

camera matrix
428.592791 0.000000 275.842707
0.000000 430.395400 189.628403
0.000000 0.000000 1.000000

distortion
-0.208717 0.139880 -0.002410 0.003121 0.000000

rectification
0.974446 0.030491 -0.222542
-0.030693 0.999526 0.002553
0.222515 0.004342 0.974920

projection
482.058670 0.000000 402.530312 -71.040408
0.000000 482.058670 178.417488 0.000000
0.000000 0.000000 1.000000 0.00000

Then I got some images of the same chessboard that used to calibrate the cameras by different distances like 4m, 8m, 10m, 20m, 30 m and 40 m. I measured the distance from the camera to the chessboard with laser range finder very accurate. My question is how to use those calibration results knowing the distance to the object to see how accurate is the camera and to get the disparity and how accurate can detect smallest object by certain distance? Like can use the cemara matrix or any formula to get disparity from the camera base line? Any help? Thanks

Asked by Astronaut on 2018-08-24 04:07:55 UTC

Comments

Is this not a duplicate of #q301464?

Asked by gvdhoorn on 2018-08-24 04:39:51 UTC

no its not. First part is same but then there is more then that question so i made two question. Should i make only one question ?

Asked by Astronaut on 2018-08-25 10:01:43 UTC

Answers