本文主要记录了在 Ubuntu 18.04 上通过 Autoware,ROS 进行相机内参标定以及激光雷达和相机联合标定的流程。
安装 ROS
顺利的话,用 apt install 就可安装成功。
安装 ROS melodic for Ubuntu 18.04, 按照这篇文章安装 ROS 时,sudo apt-get install ros-melodic-desktop-full 命令报错,无法安装成功,最后,通过 这个方法 解决
编译安装 Autoware
按照官网教程进行安装,我装的是 1.12
相机内参标定
- 在执行
calib_utils/cam_pub.py前,需要使用命令roscore启动 ros. Ros 是安装在usr/bin/python下的,python 版本是 2.7. - 执行
python calib_utils/cam_pub.py,若报错No moudle named rospkg, 是因为没有切换到 2.7 环境下。 - 可以使用相机实时标定,也可以使用录制好的视频进行标定。区别是在
cam_pub.py中是读取录制好的视频进行 publish 还是读取摄像头进行 publish。Usb 摄像头可以使用 opencv 读取,海康的工业相机需要使用驱动软件读取。
使用工业相机时,需要将相机直连到电脑上,并将本机 IP 改为192.168.2.100,并设置掩码和网关。 - 用代码将图像数据从某个节点 publish,即调用
python calib_utils/cam_pub.py, 然后用命令
1 | source install/setup.bash |
进行标定。其中,0.027 是标定板每个格子的尺寸,单位为 m,9x9 为角点的数量,不包含最外层。/rtsp/image_raw 是发布的相机的 topic,可在 publish 的代码里设置。发布的 image topic 可在 RVIZ 中查看,也可以用代码查看。
在相机的视野内移动标定板,若程序在画面中检测到 9x9 的角点,会出现彩色标记。不断移动标定板,当右侧绿色条形都变绿后,CALIBRATE 按钮会被激活,点击 CALIBRATE 按钮,再点击 SAVE 按钮,则标注的结果会被保存到 /home/taoxuan 下。
雷达相机联合标定
- 将雷达,相机相对位置固定,使其不再发生变化。
- 录制几段视频和点云数据,分别将关注的点放置在画面的左中右,或者左上至右下6个点
- 使用命令
rosrun rviz rviz启动 RVIZ - 将对应的视频和点云数据 publish 出来。注意,在这里,在
cam_pub.py中要更改driver_or_stream_or_img为image, 且要在lidar_pub.py中 对应更改img_pcd_pair中的值。这个值会在cam_pub.py中被使用到。要注意修改文件夹的路径。 - 在 RVIZ 中 Add 一个
PointCloud2,再执行
1 | source install/setup.bash |
命令, 其中 intrinsics_file:= 设置为前一步生成的相机内参文件, image_src 是相机的 topic。
同时,在 Display -> PointCloud2 -> Topic 中设置为点云 publish 代码里的 topic (即 rospy.Publisher 中的 robosense/points_raw),
同时,在 Display -> Global Options -> Fixed Frame 中设置为 点云 publish 代码里的 header.frame_id 的值 (目前为 robosense)。这样,就可以在 RVIZ 中看到点云的图像了。
似乎 RVIZ 里不支持点云的任意旋转,因此需要在 publish 点云数据之前,对数据进行 transform,使其能够较好地显示及选择点。
Update: 在点云显示框的右边,有一个名为 Views 的标签页,它的 Type 下拉框默认值是 TopDownOrtho,将其改为 ThirdPersonFollower, 即可任意旋转点云。此外,将 PoinCloud2 中 ColorTransformer 改为 AxisColor, 以给每个点添加颜色,便于区分。
- 在相机的显示窗口里左键点击一个点,然后在 RVIZ 中 点击 Publish Point 按钮后,点击点云中的对应点。当获得 9 对点后,会自动得到标定结果。如果一对视频和点云数据无法获得 9 对点,可更改视频和点云文件,重新发布,并继续选择点对。
- 标定结果可视化
标定完成后,可将点云中的点投影到矫正畸变后的图像中,看效果如何。
使用到的脚本
Camera Publish
Camera Subscrib
LiDAR Publish
LiDAR Subscrib
Visualization