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

Revision history [back]

I've done a lot of camera calibration, though not much with cameracalibration.py, so these are more educated guesses rather than definite solutions:

You should save the calibration to disk, uncompress the tar.gz file then have the camera driver load ost.yaml from disk (and move it out of /tmp) when it starts rather that using the set_camera_info service.

As long as you can still generate and save the calibration it shouldn't matter if the x coverage gets a low score- just make it as high as you can. (If camera calibrator showed reprojection error that is what you would be concerned with- the ros industrial camera calibration may be better at that http://rosindustrial.org/news/2016/1/29/new-intrinsic-calibration-procedure, I haven't used it though)

But if you want to use the roi calibration numbers you would need to modify them in the yaml file- add the roi x and y offset to the cx cy camera and projection matrix parameters, and fix the resolution to be the full sensor size. Once that is done it would be interesting to compare the adjusted roi calibration to the low x coverage full image calibration- do they vary a lot? (copy and paste the numbers into your question)

Fisheye calibration with the standard plumb_bob model probably isn't going to give you great results. You could jump through extra hoops to use opencv 3.0 fisheye calibration, but then image_proc and other standard tools won't be able to use the calibration. (Maybe newer versions compiled from source can?)

I've done a lot of camera calibration, though not much with cameracalibration.py, so these are more educated guesses rather than definite solutions:

You should save the calibration to disk, uncompress the tar.gz file then have the camera driver load ost.yaml from disk (and move it out of /tmp) when it starts rather that using the set_camera_info service.

As long as you can still generate and save the calibration it shouldn't matter if the x coverage gets a low score- just make it as high as you can. (If camera calibrator showed reprojection error that is what you would be concerned with- the ros industrial camera calibration may be better at that http://rosindustrial.org/news/2016/1/29/new-intrinsic-calibration-procedure, I haven't used it though)

But if you want to use the roi calibration numbers you would need to modify them in the yaml file- add the roi x and y offset to the cx cy camera and projection matrix parameters, and fix the resolution to be the full sensor size. Once that is done it would be interesting to compare the adjusted roi calibration to the low x coverage full image calibration- do they vary a lot? (copy and paste the numbers into your question)

Fisheye calibration with the standard plumb_bob model probably isn't going to give you great results. You could jump through extra hoops to use opencv 3.0 fisheye calibration, but then image_proc and other standard tools likely including ar_pose won't be able to use the calibration. (Maybe newer versions compiled from source can?)

can? Otherwise maybe you could find or write a node to fishey rectify the image, and then pass that to ar_pose)

I've done a lot of camera calibration, though not much with cameracalibration.py, so these are more educated guesses rather than definite solutions:

You should save the calibration to disk, uncompress the tar.gz file then have the camera driver load ost.yaml from disk (and move it out of /tmp) when it starts rather that using the set_camera_info service. Does your camera driver have a camera_info_url parameter?

As long as you can still generate and save the calibration it shouldn't matter if the x coverage gets a low score- just make it as high as you can. (If camera calibrator showed reprojection error that is what you would be concerned with- the ros industrial camera calibration may be better at that http://rosindustrial.org/news/2016/1/29/new-intrinsic-calibration-procedure, I haven't used it though)

But if you want to use the roi calibration numbers you would need to modify them in the yaml file- add the roi x and y offset to the cx cy camera and projection matrix parameters, and fix the resolution to be the full sensor size. Once that is done it would be interesting to compare the adjusted roi calibration to the low x coverage full image calibration- do they vary a lot? (copy and paste the numbers into your question)

Fisheye calibration with the standard plumb_bob model probably isn't going to give you great results. You could jump through extra hoops to use opencv 3.0 fisheye calibration, but then image_proc and other standard tools likely including ar_pose won't be able to use the calibration. (Maybe newer versions compiled from source can? Otherwise maybe you could find or write a node to fishey rectify the image, and then pass that to ar_pose)