http://wiki.ros.org/camera_calibration/Tutorials/MonocularCalibration 打印棋盘(可以A4纸打印,粘贴在硬纸板上) 测量棋盘单元(黑色或白色正方形)边长(A4纸的在0.025 m 左右)
步骤
安装 sudo apt install ros-kinetic-camera-calibration
启动openni驱动(kinetic)
对于kinetic则安装和启动: roslaunch openni_launch openni.launch
启动openni的驱动(Xtion2)
对于Xtion2则: roslaunch openni2_launch openni2.launch
openni2的驱动安装: sudo apt-get install libopenni2-dev libopenni2-0 sudo apt-get install ros-kinetic-openni2-camera sudo apt-get install ros-kinetic-openni2-launch 或者下载ASUS-Linux-x64-OpenNI2.2,但是不建议,容易安装失败 NiViewer2 #则会显示 RGB图 和 深度图
进行校准,RGB相机
rosrun camera_calibration cameracalibrator.py --size 8x6 --square 0.025 image:=/camera/rgb/image_raw camera:=/camera/rgb size是黑白格的横纵点数,square是黑白格边长,image是图像节点名称,camera是相机名称 标定界面出现后,按照x(左右)、y(上下)、size(前后)、skew(倾斜)等方式移动棋盘,知道x,y,size,skew的进度条都变成绿色位置,此时可以按下CALIBRATE按钮,等一段时间就可以完成标定。 点save成功后,可以在保存的目录下查看具体的矫正图片和参数 然后 commit(commit之后,启动摄像头之后会自动加载)。
IR(深度)相机
rosrun camera_calibration cameracalibrator.py --size 8x6 --square 0.025 image:=/camera/ir/image_raw camera:=/camera/ir rosrun camera_calibration cameracalibrator.py --size 8x6 --square 0.025 image:=/camera/depth/image_raw camera:=/camera/depth 斑点图案使得不可能在IR图像中准确地检测棋盘角。最简单的解决方法是用一两个便签纸覆盖投影机(最左边的单独的开口),大多散布斑点。一个理想的解决方案是完全阻挡投影机,并提供一个单独的红外光源。良好的照明源包括阳光,卤素灯或白炽灯。 Kinect相机驱动程序不能同时传输IR和RGB图像。它将根据用户数量决定两者中的哪一个流,因此在进行IR校准之前杀掉订阅RGB图像的节点(rosnode list | grep rgb | xargs rosnode kill)点save成功后,可以在保存的目录下查看具体的矫正图片和参数 然后 commit
发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/231700.html原文链接:https://javaforall.net
