autoware等目标检测

【Autoware】激光雷达-摄像头联合标定1- Calibra

2021-03-23  本文已影响0人  ClarkWang1214

一.前言

一般自动驾驶车辆上都会配备多种用途的传感器,只使用一种传感器是存在局限性的,为了提高感知定位等系统功能的鲁棒性稳定性,常采用多传感器融合的方式,一般融合包括时间同步以及空间同步。而激光雷达与摄像头之间的联合标定则是属于空间维度上的融合同步了。此外由于点云的稀疏性,在进行点云标注的时候,仅仅依靠点云数据是很难检测出目标对象的类别的,此时如果有时间同步的图像,利用深度学习进行处理,就可以较高效的检测出来了,为了精确标注,还需要把点云反投影到图像上面,判断两者是否重合,此时就需要用到激光雷达与摄像头的联合标定了。

激光雷达与摄像头的联合标定的结果也就是计算出激光雷达相较于摄像头的旋转、平移关系。


图片参考《Calibration of RGB Camera with Velodyne LiDAR.》

基本原理:

二.准备工作

使用之前先将激光雷达的网线接到主机上;并且修改IPv4地址为:192.168.1.102 255.255.255.0 192.168.1.1;然后ping的通激光雷达的IP地址192.168.1.200即可.
1.source Workspace/catkin_ws_lslidar/devel/setup.bash
2.修改/home/clark/Workspace/catkin_ws_lslidar/src/lslidar_C16/lslidar_c16_decoder/launch/lslidar_c16.launch文件内容,适配autoware
3.roslaunch lslidar_c16_decoder lslidar_c16.launch

(查看摄像头设备信息命令:v4l2-ctl --list-devices、lsusb)
1.安装: sudo apt-get install ros-melodic-usb-cam
2.根据摄像头的情况修改配置文件: sudo vim /opt/ros/melodic/share/usb_cam/launch/usb_cam-test.launch
3.启动摄像头:roslaunch usb_cam usb_cam-test.launch

1.在新的终端中打开rviz,修改Global Options中的Fixed FrameVelodyne

2.在右侧Views视窗区域将Type类型修改为ThirdPersonFollower(rviz)这样就能用鼠标自由拖动激光点云数据了。

3.点击左下角Add按钮后,By topic选项卡里面就是当前ros环境中所有的话题各自能用的可视化控件,选择其中/usr_cam/image_raw话题下的Image控件后,就能同时看到摄像头数据以及激光点云数据。

4.内参标定准备

5.摄像头内参标定

需要先用上述棋盘格标定板单独标定摄像头的内参,得到yaml内参文件供后续激光雷达摄像头联合标定使用

source /home/autoware/Autoware/install/setup.bash
#使用autoware自带的相机内参标定工具cameracalibrator.py 
rosrun  autoware_camera_lidar_calibrator cameracalibrator.py --square 0.065 --size 11x8 image:=/usb_cam/image_raw camera:=/usb_cam

6.录制ROSBAG包
联合标定准备标定板和录制ROS BAG,标定板用的是内参标定的棋盘格(129个格子,也就是内侧角点数目为118,每个格子边长65cm),需要在小车上录制激光雷达和摄像头的ROS Bag数据包,然后将保存后的Bag再拷贝到自己台式机上播放用于标定的话题输入:摄像头(/usb_cam/image_raw),激光雷达(/points_raw)

三、单独编译标定工具箱calibration_camera_lidar

Autoware1.10中的Sensing模块是自带有Calibration Tool Kit的,但1.10之后就已经取消了这个联合标定工具包了,因此需要单独安装。

autoware1.10自带有标定工具箱
1. 下载并编译安装nlopt
mkdir build  &  cd build
cmake ..  &  make  &  sudo make install

2. 下载并编译安装calibration_camera_lidar

mkdir -p catkin_ws_calibration_lidar_camera/src
cd ..  &&  catkin_make
#第72行、944、114行修改前
if ("${ROS_VERSION}" MATCHES "(indigo|jade|kinetic)")
#第72行、944、114行修改后
if ("${ROS_VERSION}" MATCHES "(indigo|jade|kinetic|melodic)")

再退到src同级目录,重新进行编译

cd /etc/ld.so.conf.d/
sudo vim libnlopt.conf #用vim打开,在其中输入/usr/local/lib,:wq保存退出
sudo ldconfig使配置生效

3. 利用calibration_camera_lidar标定工具箱进行激光雷达摄像头的联合标定

[图片上传中...(image.png-af3ec0-1616032061878-0)]

用ros自带的标定后保存的内参文件是yaml格式,这个标定工具箱需要yml格式,只需要将后缀改一下即可
第一个Load Option选择Yes
第二个Load Option选择No 播放状态 按空格后,进入暂停状态

4.用“o”,“p”控制点云的大小,o变小,p变粗。


按o变细
按p变粗

5.用“-”,“+”控制放大,缩小。


用“-”放大
用“+”缩小
  1. 用“b”来改变激光点云区域的背景(background)颜色,使得点云显示更加明显,方便标定时选择三维点。


    按“b”跳出颜色板选择背景颜色
修改背景色为蓝色突出点云的白色 标定板的中心位置选择一个圆形的区域,尽量保证向外侧的平面法向量垂直于标定板平面 grab一次后,回到那个暂停的终端,继续跑,跑的差不多了再空格暂停,继续grab

注:若一次grab始终不能鼠标左键单击选择垂直于点云标定板的区域,则点击右侧上方的“Remove”按钮,删除该次Grab,重新跑ROSBAG,在合适的地方空格暂停,继续Grab抓取关键帧与激光点云帧。


第一个Save Option选择No
第二个Save Option也选择No 第一组点对中棋盘格的姿态信息

标定结果测试

获取到外参标定yaml文件后,需要对联合标定的结果进行测试,可以在Autoware中使用Calibration Publisher,来发布和对齐LiDAR与Camera之间的转换

source /home/autoware/Autoware/install/setup.bash
roslaunch runtime_manager runtime_manager.launch

参考:

  1. M. Velas, M. Spanel, Z. Materna, A. Herout. Calibration of RGB Camera with Velodyne LiDAR. In WSCG 2014 Communication papers proceedings.
    2.autoware1.14安装相机和激光雷达联合标定工具
    3.Autoware完整安装及联合标定工具箱安装
    4.https://adamshan.blog.csdn.net/article/details/81670732
    5.https://www.cnblogs.com/dlonng/p/13091956.html
    6.https://blog.csdn.net/learning_tortosie/article/details/82347694
    7.http://wiki.ros.org/but_calibration_camera_velodyne
上一篇下一篇

猜你喜欢

热点阅读