本文将从零向初学者介绍【如何在ubuntu 18.04上进行笔记本相机的标定操作】,希望你喜欢。运行高版本的ubuntu用户只要你看懂流程,再复现问题也不大。
1.创建ros空间
# 创建 ROS 工作空间 catkin_ws_camera_carlibration
mkdir -p ~/catkin_ws_camera_carlibration/src
cd ~/catkin_ws_camera_carlibration/src
# 初始化文件夹,告诉ROS这是工作空间
catkin_init_workspace
cd ..
# 编译工作空间 catkin_make
catkin_make
# 编辑环境变量,注意 source 与 ~ 之间有空格
echo "source ~/catkin_ws_camera_carlibration/devel/setup.bash">>~/.bashrc
# 编辑完脚本文件,source一下才能生效
source ~/.bashrc
# 不需要安装功能包,因此到此结束工作
完成上面这个步骤,大概率你是不会遇到bug的,但是小心小心如果你不是直接复制我的code运行,请一定要输入【命令正确的拼写】,因为单词都比较长,打错一两个字符可就运行不起来了。
2.安装【usb-cam】
# 其实我也不清楚到底要不要来这个文件下 下载
cd ~/catkin_ws_camera_carlibration/src
sudo apt-get install ros-melodic-usb-cam
大概率你这样下载是不会有问题的,到此环境的预配置就已经结束了。很多同志会git clone github上面usb-cam的源码进行安装,鉴于【usb-cam】作者已经更新为 ros2 也即是 ros-noetic版本运行,因此你无法通过 1.在 catkin_ws_camera_carlibration/
运行 catkin_make进行编译,会失败,爆找不到xx文件;2.在 catkin_ws_camera_carlibration/src/
下创建build,利用cmake进行编译。笔者很菜也尝试过这两种方案,都不清楚如何解决ros1和ros2依赖不同的问题,因此转而直接安装ros1melodic封装完成的ros-melodic-usb-cam库运行笔者真的太菜了,还喜欢玩
3.准备标定板
标定板按说越大越好标定,你实际使用就明白了。
不过学习阶段我们可以打印A4纸上面进行操作,转到下面这个网站直接下载pdf打印就可以,默认是AruCo格式的标定纸,记得打印棋盘格标定纸。标定过程不要只拿一张纸,记得拿板夹夹住纸张。
https://calib.io/pages/camera-calibration-pattern-generator
4.运行单目相机标定实验
# 预先检查一下这些东西是否安装成功,这个问题我没遇到
sudo apt-get install ros-melodic-image-view
# 开一个终端 1
roscore
# 再开一个终端 2 :suorce一下环境变量
source ~/.bashrc
source ~/catkin_ws_camera_carlibration/devel/setup.bash
# 运行下面命令,这个会启动笔记本摄像机。如果没有启动,需要debug
roslaunch usb_cam usb_cam-test.launch
# 再开一个终端 3
# --size 10x6:这个指的是角点数,不是棋盘格子数目 --square 0.009这个指的是格子大小长度,单位是m,0.009就是棋盘格子长9mm
rosrun camera_calibration cameracalibrator.py --size 10x6 --square 0.009 image:=/usb_cam/image_raw camera:=/usb_cam
接下来屏幕会出现一个灰色的相机画面,你拿着标定值感觉程序没反应。别慌,把标定纸贴到摄像头脸上,固定不动,然后会有下面这种彩线闪过。然后你对着摄像头左右倾斜移动你的标定板,乱移动就完事了,只要你移动的久,迟早可以完成标定,标定完成后,UI界面下的calibrate按钮颜色不是灰色的了,你点击一下屏幕就会出现标定完成的结果