深度相机标定

参考

计算机视觉:相机成像原理:世界坐标系、相机坐标系、图像坐标系、像素坐标系之间的转换 -https://blog.csdn.net/chentravelling/article/details/53558096
相机标定原理 https://www.cnblogs.com/Jessica-jie/p/6596450.html

http://wiki.ros.org/openni_launch/Tutorials/IntrinsicCalibration

http://wiki.ros.org/camera_calibration/Tutorials/MonocularCalibration

准备标准黑白棋格盘

下载黑白棋盘 来源: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 

你可能感兴趣的:(ros)