相机单独标定的实现过程[autoware标定]、tmp文件的查看方式

时间:2022-03-28 01:09:26

安装了autoware1.13和calibration标定包,发现实现相机单独标定的过程较为坎坷,参考了一些博主的方法,发现下面的过程更加适合自己,做个笔记。

1安装标定箱(与calibration标定包的安装并不冲突)

  标定工具箱安装教程参考:(复制下面命令百度下载即可)

https://github.com/XidianLemon/calibration_camera_lidar

 把工程克隆到自己本地工程的src目录下编译即可。我本人的本地工程文件夹为catkin_ws

【注】我的ubuntu是18.04版本的,对应的ROS版本为melodic,直接编译会有一些小问题。

(1)此时直接运行标定程序,会报找不到可执行文件 calibration_camera_lidar的问题。因为我的系统是ubuntu18.04对应支持的ROS是melodic,因此需要对calibration_camera_lidar功能包下的CMakeLists.txt进行修改,添加ROS的melodic版本的支持,如下图所示,修改CMakeLists.txt中所有 (indigo|jade|kinetic) 为 (indigo|jade|kinetic|melodic)

        此时直接运行标定程序,会报找不到可执行文件 calibration_camera_lidar的问题。因为我的系统是ubuntu18.04对应支持的ROS是melodic,因此需要对calibration_camera_lidar功能包下的CMakeLists.txt进行修改,添加ROS的melodic版本的支持,如下图所示,修改CMakeLists.txt中所有 (indigo|jade|kinetic ) 为 (indigo|jade|kinetic|melodic)

相机单独标定的实现过程[autoware标定]、tmp文件的查看方式
2编译

上述过程提到的编译,我直接在catkin_ws文件夹下开启终端输入下列命令

catkin_make

编译一次性通过

3相机标定

相机标定(单目--ROS方法)【下面应该是官方的命令】

rosrun camera_calibration cameracalibrator.py --size 8x6 --square 0.108 image:=/usb_cam/image_raw camera:=/usb_cam

这个命令是参考博主的,这里py后的命令里的数据应该是可以修改的,修改成自己所做标定板格子面积的数据。

这是我自己的命令【12×9个格子,只有11×8个角点,边长为44mm】

rosrun camera_calibration cameracalibrator.py --size 11x8 --square 0.044 image:=/usb_cam/image_raw camera:=/usb_cam

相机单独标定的实现过程[autoware标定]、tmp文件的查看方式

打开另一个新的终端,创建相机参数文件

下面,我们来创建一个包含相机校准参数的相机参数文件(camera.yaml)。如下例所示,解压缩calibrationdata.tar.gz文件以查看图像文件(*.png)和记录了校准中使用的校准参数的ost.txt文件。

 cd /tmp
 tar -xvzf calibrationdata.tar.gz

相机单独标定的实现过程[autoware标定]、tmp文件的查看方式

 接下来,将ost.txt文件改名为ost.ini,并使用camera_calibration_parsers功能包
的convert节点创建相机参数文件(camera.yaml)。创建完成后,将其保存在~/.ros/camera_info/目录中,则ROS中使用的相机相关功能包会引用此信息。
 

mv ost.txt ost.ini
rosrun camera_calibration_parsers convert ost.ini camera.yaml 
mkdir ~/.ros/camera_info
mv camera.yaml ~/.ros/camera_info/

接下来,将ost.txt文件改名为ost.ini,并使用camera_calibration_parsers功能包
的convert节点创建相机参数文件(camera.yaml)。创建完成后,将其保存在~/.ros/camera_info/目录中,则ROS中使用的相机相关功能包会引用此信息。
 

mv ost.txt ost.ini
rosrun camera_calibration_parsers convert ost.ini camera.yaml 
mkdir ~/.ros/camera_info
mv camera.yaml ~/.ros/camera_info/

细节部分参考ROS摄像头标定_w²大大的博客-CSDN博客

这里存在一个问题,save保存之后我没有找到我的文件在哪里,其实他应该是存储在临时文件夹tmp中,这里我在主目录下新建了一个文件夹名为qaw

 cp -r /tmp/* /home/ros/qaw

然后我用上面的命令将临时文件夹中的所有文件都复制到了这个qaw文件夹中,新文件夹的路径为

/home/ros/qaw(如果不知道文件夹的全称,可以用进入该文件夹终端pwd命令查看)

相机参数解释

相机单独标定的实现过程[autoware标定]、tmp文件的查看方式

参考文献

autoware 激光-相机联合标定_autoware联合标定_nuo112的博客-CSDN博客

 ROS摄像头标定_w²大大的博客-CSDN博客