激光雷达(lidar)和相机(camera)联合标定调研(基于Autoware的详细步骤)

本文详细介绍了使用Autoware进行激光雷达(lidar)与相机(cam)联合标定的过程与注意事项,对比了几种标定方案,最终选择了Autoware作为标定工具,并记录了具体的安装、数据采集与标定步骤。

简单记录一下使用Autoware对lidar和cam联合标定的步骤和一些注意事项。

首先,开源的lidar和cam标定方案不多,花了一天查资料大概有以下几个:

but_velodyne

https://github.com/robofit/but_velodyne

https://github.com/robofit/but_velodyne_lib

https://blog.youkuaiyun.com/learning_tortosie/article/details/82385394

这是一个最简单、最单纯的lidar和cam联合标定的方案,但是需要openCV2.4.9,我的当前版本为3.2,懒得重新装而且看博客感觉别人也没有成功,所以放弃了。

lidar_camera_calibration

https://github.com/ankitdhall/lidar_camera_calibration

https://blog.youkuaiyun.com/a2281965135/article/details/79785784

仔细看了一下,这个是基于深度相机/双目的标定方案。

https://github.com/beltransen/velo2cam_calibration

这个也是。

Autoware

https://github.com/CPFL/Autoware/wiki

https://blog.youkuaiyun.com/learning_tortosie/article/details/82347694

https://blog.youkuaiyun.com/AdamShan/article/details/81670732

这是日本开源的一个自动驾驶平台,其中也包含了lidar和cam的联合标定,适合于velodyne,看博客感觉效果还不错,需要的数据和材料也不麻烦,但是标定过程需要不断的手动把cam中的标定板在lidar点云中的位置圈出来,有点麻烦(也有点蠢...)。

apollo

https://github.com/ApolloAuto/apollo/blob/master/docs/quickstart/apollo_2_0_sensor_calibration_guide.md

https://blog.youkuaiyun.com/learning_tortosie/article/details/82351553

http://apollo.auto/index_cn.html

这是百度的阿波罗自动驾驶平台,其中包含了lidar和cam的标定方案,仔细看完感觉要求过高,不但需要普通的数据,还需要IMU、里程计等传感器数据,不太适合单纯的lidar和cam标定。而且需要较为精确的lidar和cam相对的初始安装角和广角相机,可以尝试先用Autoware标定一遍之后再用这个标定使得结果更精确。

 

综上所述,最后采用Autoware的标定方案。在开始简述一下其基本原理:

首先和普通cam标定一样,通过标定板的变化算出cam的位姿矩阵;然后再手动用小圈把点云中对应的标定板框出来,看下文介绍可以理解,小圈最少包含了两条点云线,两条线即可构成一个面,就是标定板所在的平面。我们就能通过lidar相对于这个面的角度推算出lidar的姿态,通过这个面点云的距离算出其位置,再和cam相对比,就能得到cam_lidar的外参矩阵了。

 

在安装中,建议选用第二个,一般来说ROS和OpenCV都是有的,再安装个Qt就可以了,很简单的。官网推荐的第一种方案需要固定的硬件配置,很麻烦。

具体标定方法可以看这个视频(需要翻墙)

https://www.youtube.com/watch?v=pfBmfgHf6zg

没条件的可以认真的看这个操作说明

https://github.com/CPFL/Autoware/wiki/Calibration

说一下可能存在的疑惑:

其中提到了rosbag的制作,之前在用Kalibr标定IMU和cam时有明确要求制作的rosbag的格式,包括照片的格式、命名要求,IMU数据格式、频率等,就很好奇Autoware标定的rosbag要求是怎么样的,但是官网没有说明。尝试发现,使用ros格式数据就可以了,比如点云为ros的PointCloud2,直接发布话题,然后用rosbag record /image /point_cloud 记录下rosbag就可以了。

在之后的输出用rosbag play /image:=image_raw /point_cloud:=points_raw,就可以将自己的topic名转换成Autoware标定程序需要的image_raw和points_raw。在rosbag play时可以按空格暂停。

标定界面

需要手动在右下方的图中,不断的把标定板对应的点云图给框出来,为了达到比较好的标定效果,需要的数据量越多越好,图中大概选了100张图,然后project检查效果的时候把不好的十来张删了,最后用了90张图。(一个个框出来还是很累的...总共花了一个多小时roz。

这里说一下数据采集和标定的时候的注意事项:

建议标定至少两次,首先第一次得看最后的标定效果,如图:

这是一次标定结果不是很好的情况,看2处就很明显image和pointcloud就没有对齐。

先说一下1.标定板要注意的,首先最好用官网给的尺寸,质地要比较硬,拿起来才不会弯曲;然后其原理是默认点云全是打在标定板上的,所以拿标定板的人最好能藏在标定板背后而且如果使用标定纸贴在一个硬纸板上的,那硬纸板的大小得和标定纸一样大,才能保证点云是打在标定板而不是后面加固的硬纸板上。

2.最好选一个前面空旷但周围有一点背景,能识别标定效果的地方。前面空旷是为了保证没有和标定板相近的点云对标定效果的干扰。还要注意lidar的线的距离,尽量能标定到最上面的和最下面的,本文使用的是VLP16,相比32线的站在5m,16线的开始稍微往前站一点。

3.标定前要测出相机视野的两端的位置,才能最大限度的提高标定结果。

 

4.标定的时候要注意这个小圈的垂直方向,这是最重要的。务必保证小圈的垂直轴垂直于标定板平面。

 

最后标定的结果文件:最重要的就是外参矩阵

补上最后的结果:

参考文献:https://gitlab.com/autowarefoundation/autoware.ai/autoware/-/wikis/Calibration

附:标定板文件生成方式

使用的是Kalibr生成PDF的标定板的,kalibr_create_target_pdf --type checkerboard --nx 6 --ny 8 --csx 0.108 --csy 0.108

也可以直接从我的资源处下载,我设置的是0积分的,不知道为什么优快云有时候会设置成需要积分才能下载

参考文献:https://github.com/ethz-asl/kalibr/wiki/calibration-targets

<think>好的,我现在需要帮助用户在Ubuntu系统中使用Autoware框架实现激光雷达相机联合标定。首先,我得回顾一下用户提供的引用内容,看看有哪些信息可以利用。 用户提到Autoware1.10之后取消了内建标定工具箱,所以他们需要安装独立的标定包。引用12提到了两个GitHub仓库,一个是JunzWu的,另一个是XidianLemon的,都是calibration_camera_lidar相关的。可能需要指导用户克隆这些仓库并进行编译。另外,引用3提到在Ubuntu18.04上安装配置的步骤,这可能涉及依赖项的安装编译过程。用户的问题是如何在Ubuntu上通过Autoware实现联合标定,所以需要分步骤说明。首先应该是环境准备,包括安装ROS、Autoware依赖等。然后是安装标定包,可能从提到的GitHub链接中选择一个,比如引用2的XidianLemon仓库。接着是编译步骤,比如创建builddevel目录,运行catkin_make,这需要确保用户具备基本的ROS开发环境。然后,数据准备部分,用户需要录制或获取标定数据包,播放时需要调整话题名称,如引用4提到的将点云话题改为/points_raw。标定流程可能需要启动标定工具,按照引用5的步骤调整标定板的位置,进行X、Y、倾斜等标定。最后验证标定结果,可能需要转换点云到图像坐标系并检查对齐情况。需要注意用户可能遇到的问题,比如依赖项缺失、编译错误、话题名称不匹配等,需要给出常见问题解决方法。例如,如果编译失败,检查是否安装了所有ROS依赖包,或者是否设置了正确的环境变量。另外,用户可能需要生成相关问题,比如如何优化标定流程,如何处理标定中的误差,或者标定后的数据如何应用在Autoware的其他模块中。这些问题可以作为最后的推荐问题部分。总结步骤:环境准备→安装标定包→数据准备→标定流程→验证结果→常见问题处理。需要确保每一步都清晰,并且命令准确,比如gitclone的链接、catkin_make的使用等。同时,引用对应的参考引用,如环境配置参考引用3,安装步骤参考引用12,数据播放参考引用4,标定操作参考引用5。</think>### 逐步指南:Ubuntu系统通过Autoware实现LiDARCamera联合标定 #### 一、环境准备 1. **系统要求** - Ubuntu 18.04(推荐) - ROS Melodic(已安装并配置)[^3] - Autoware 1.14或兼容环境(可选,标定包可独立运行)[^2] 2. **安装依赖** ```bash sudo apt-get install ros-melodic-pcl-ros ros-melodic-cv-bridge ros-melodic-tf2-geometry-msgs ``` --- #### 二、安装标定工具包 1. **克隆标定仓库** 选择以下任一仓库(推荐第二个,适配性更广): ```bash # 选项1:JunzWu的标定包(需Autoware环境) git clone https://github.com/JunzWu/Autoware_Calibration_Camera_Lidar.git cd Autoware_Calibration_Camera_Lidar # 选项2:XidianLemon的独立标定包(无需Autoware) git clone https://github.com/XidianLemon/calibration_camera_lidar.git cd calibration_camera_lidar ``` 2. **编译代码** ```bash mkdir build && mkdir devel catkin_make -DCMAKE_BUILD_TYPE=Release source devel/setup.bash ``` --- #### 三、数据准备 1. **录制数据包** - 使用棋盘格标定板(尺寸已知,如$8 \times 6$) - 同时录制LiDAR点云(话题`/velodyne_points`)相机图像(话题`/image_raw`) 2. **播放数据包** ```bash rosbag play your_data.bag /velodyne_points:=/points_raw # 重映射点云话题[^4] ``` --- #### 四、标定流程 1. **启动标定节点** ```bash roslaunch calibration_camera_lidar calibration_tool.launch ``` 2. **标定步骤** - **X/Y轴标定**:移动标定板至视野最左、最右、最上、最下[^5] - **倾斜标定**:倾斜标定板(角度变化) - **尺寸标定**:使标定板充满相机视野 3. **保存参数** - 完成标定后,生成`calibration.yaml`文件,包含旋转矩阵$R$平移向量$T$。 --- #### 五、验证标定结果 1. **可视化检查** ```bash rosrun calibration_camera_lidar project_pointcloud_to_image # 投影点云到图像 ``` - 检查点云与图像边缘是否对齐(如车辆轮廓、标定板角点)。 --- #### 六、常见问题 1. **编译失败** - 确认ROS环境变量已加载(`source /opt/ros/melodic/setup.bash`) - 安装缺失依赖:`rosdep install --from-paths src --ignore-src -r -y` 2. **标定误差大** - 确保标定板在LiDAR相机中均清晰可见 - 重复标定3次取平均值。 ---
评论 61
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

文锦渡

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值