安装标定的功能包camera_calibration,以noetic为例,终端输入,
xsudo apt install ros-noetic-camera-calibration*
在标定之前启动相机,直到全部标定完毕再关闭相机,启动相机,终端中输入,
x
#astra相机启动
roslaunch orbbec_camera astra.launch
#gemini2相机启动
roslaunch orbbec_camera gemini2.launch
使用以下命令查看话题终端中输入,
xxxxxxxxxx
rostopic list
我们标定RGB彩色图像需要用到的话题是/camera/color/image_raw.
运行标定的程序,终端中输入,
xrosrun camera_calibration cameracalibrator.py image:=/camera/color/image_raw
size:标定棋盘格的内部角点个数,例如9X6,角点一共六行九列。
square:棋盘格的边长,单位是米。
话题名字:/camera/color/image_raw,如果是启动usb_cam的话,这里修改成/image_raw
X:棋盘格在摄像头视野中的左右移动
Y:棋盘格在摄像头视野中的上下移动
Size :棋盘格在摄像头视野中的前后移动
Skew:棋盘格在摄像头视野中的倾斜转动
如上图所示,需要通过上下前后左右左右翻转来采集图像,使得右边的X、Y、Size、Skew变成绿色,如下图所示,然后点击CALIBRATE,开始标定。
标定结束后,点击SAVE,如下图所示,
标定结果保存至【/tmp/calibrationdata.tar.gz】,保存的路径为标定程序启动的终端目录下。标定结束后,可以移动出来【/tmp/calibrationdata.tar.gz】文件看看内容
xxxxxxxxxx
sudo mv /tmp/calibrationdata.tar.gz ~
终端输入,
xxxxxxxxxx
cd ~
tar -xvf calibrationdata.tar.gz
会在终端目录下得到标定的png文件、ost.yaml和ost.txt文件
由于dabai_dcw2驱动启动的时候是加载代码里边标定好的内置的参数,所以不需要加载这个标定后的参数,但是当启动usb摄像头时是需要加载参数的,因此,标定后需要把参数替换原来的内置参数,把标定好的ost.yaml改名为camera_info.yaml,然后替换原来的camera_info.yaml,
xxxxxxxxxx
sudo mkdir /home/yahboom/.ros/camera_info
sudo cp ost.yaml /home/yahboom/.ros/camera_info
#切换至/home/yahboom/.ros/camera_info目录下
cd /home/yahboom/.ros/camera_info
#重命名ost.yaml为camera_info.yaml
sudo mv ost.yaml camera_info.yaml