实测 ubuntu20.04 机械式激光雷达与相机联合标定

点击上方“3D视觉工坊”,选择“星标”

干货第一时间送达

bef5e038db759ca4167ac286a5f237de.jpeg

作者丨月照银海似蛟龙

来源丨古月居

安装功能包

实测 ubuntu20.04 本地安装

安装步骤如下:

下载功能包

git clone -c http.sslverify=false https://gitlab.acfr.usyd.edu.au/its/cam_lidar_calibration.git

成功提示:

4c6f4032f83e72ed91d5b3aba83af53d.png

安装依赖:

sudo apt update && sudo apt-get install -y ros-noetic-pcl-conversions ros-noetic-pcl-ros ros-noetic-tf2-sensor-msgs

成功提示:

b7c74cbd10c2c2755c219e5f371eddf5.png

安装pandas 和 scipy

pip install pandas scipy

将功能包拷入ros的工作空间,然后编译

catkin_make

不出意外会报错误

5cb94339dd2d14827a50486edf2cb209.png

仍然是 ubuntu20.04 opencv 的 版本问题

错位解决办法:

打开include文件夹下的 optimise.h文件


将第10行

#include <opencv/cv.hpp>

改为

#include <opencv2/opencv.hpp>

再次编译报错:

511dff33e82e383f8d9d303bd5dfdbf7.png

CV_REDUCE_SUM 这个变量没定义,opencv3到opencv4切换带来的错误

在 optimise.h文件中加入下面的包含文件

#include<opencv2/core/core_c.h>

66d13144712b28a3024e921cd0dec297.png

编译通过

功能包测试

作者在功能包中放了测试数据,提供测试

roslaunch cam_lidar_calibration run_optimiser.launch import_samples:=true

该程序根据cam_lidar_calibration/data/vlp/文件夹下的pose.csv标定,在该文件夹生成一个标定camera和lidar外参文件

终端输出

66d551368e847afd8f57e114e4f76f7b.png

每一行则是迭代后的结果

终端输出这个的时候

4551d795e7c50588890354a1d8ab3694.png

表示迭代完了

然后获取评估校准结果


终端输出

337a3c539fa2ea9f90d30ead3b8178f3.png

生成一个雷达投射到图片上的图片

fd980ecd7d0cc4443bb7582ea336da8d.png

利用功能包标定激光雷达和相机

设置参数

主要修改

cam_lidar_calibration/cfg/camera_info.yaml和

params.yaml

cam_lidar_calibration/cfg/camera_info.yaml 文件设置如下:

distortion_model: "non-fisheye"width: 1440height: 1080D: [-0.106460,0.103712,-0.000019,0.003994]K: [1213.343583,0.0,744.150520,0.0,1217.236982,586.154363,0.0,0.0,1]

设置是:

  • 否为鱼眼相机

  • 像素宽和高

  • 内参矩阵

  • 失真系数

相机的内参标定方法可以参考这篇博客:

params.yaml 文件设置如下:

# Topicscamera_topic: "/camera_array/cam0/image_raw"camera_info: "/camera_array/cam0/camera_info"lidar_topic: "/velodyne_points"

分别是:

  • 相机消息名称

  • 相机信息

  • 激光雷达消息名称

feature_extraction:  x_min: -10.0  x_max: 10.0  y_min: -8.0  y_max: 8.0  z_min: -5.0  z_max: 5.0

点云的选取范围,用默认的就是,之后可以在线调

chessboard:  pattern_size:    height: 14    width: 9    square_length: 11  board_dimension:    width: 390    height: 596  translation_error:    x: 0    y: 0

标定棋盘的相关参数
和背板的相关参数
距离都是mm为单位

启动相机和激光雷达

启动相机

roslaunch spinnaker_sdk_camera_driver acquisition.launch

启动激光雷达

roslaunch velodyne_pointcloud VLP16_points.launch

启动功能包

开启程序采集表定数据,运行命令:

roslaunch cam_lidar_calibration run_optimiser.launch import_samples:=false

会出现RVIZ和rqt_reconfigure窗口,在RVIZ中panels->display修改相机的话题和激光雷达点云对应的frame_id。

调整rqt_reconfigure /feature_extraction的xyz最大值最小值以使得标定板的点云和周围环境分开,使其仅显示棋盘。

如果棋盘没有完全隔离,可能会影响棋盘的平面拟合,还会导致棋盘尺寸误差较大。下图是过滤点云前后效果:

e09d4af2af04b73b1bc985b5b39adbed.png在过滤周围环境点云后,在rviz中点击Capture sample采集样本,会出线绿色框代表根据点云拟合出来的标定板平面


fdd4fc4b3c20d58bc403251f40bda7c8.png终端会打印出来添加的样本信息

aba48185f156672a59fe77771f1486a6.png

最好采集10个样本以上,再点击rviz中的optimise进行标定,在优化过程中将会在cam_lidar_calibration/data生成当前时间日期的文件夹,存放采集的图像、点云pcd、位姿,标定后camer和lidar外参文件。

终端输出开始校准:

d570369313114a9e23b5496773bc2677.png

校准结束后输出:

4d083976c6d7eaee457a2a3f2e27fcd4.png

评估参数和重投影误差:

roslaunch cam_lidar_calibration assess_results.launch csv:="$(rospack find cam_lidar_calibration)/data/2022-09-06_14-48-42/calibration_2022-09-06_15-13-07.csv" visualise:=true

注意这里默认加载第16个图像,如果没有那么大的标定样本,要修改launch文件中的加载序列

出现重投影效果图像


终端出现标定参数和重投影误差

本文仅做学术分享,如有侵权,请联系删文。

干货下载与学习

后台回复:巴塞罗自治大学课件,即可下载国外大学沉淀数年3D Vison精品课件

后台回复:计算机视觉书籍,即可下载3D视觉领域经典书籍pdf

后台回复:3D视觉课程,即可学习3D视觉领域精品课程

3D视觉工坊精品课程官网:3dcver.com

1.面向自动驾驶领域的多传感器数据融合技术

2.面向自动驾驶领域的3D点云目标检测全栈学习路线!(单模态+多模态/数据+代码)
3.彻底搞透视觉三维重建:原理剖析、代码讲解、及优化改进
4.国内首个面向工业级实战的点云处理课程
5.激光-视觉-IMU-GPS融合SLAM算法梳理和代码讲解
6.彻底搞懂视觉-惯性SLAM:基于VINS-Fusion正式开课啦
7.彻底搞懂基于LOAM框架的3D激光SLAM: 源码剖析到算法优化
8.彻底剖析室内、室外激光SLAM关键算法原理、代码和实战(cartographer+LOAM +LIO-SAM)

9.从零搭建一套结构光3D重建系统[理论+源码+实践]

10.单目深度估计方法:算法梳理与代码实现

11.自动驾驶中的深度学习模型部署实战

12.相机模型与标定(单目+双目+鱼眼)

13.重磅!四旋翼飞行器:算法与实战

14.ROS2从入门到精通:理论与实战

15.国内首个3D缺陷检测教程:理论、源码与实战

16.基于Open3D的点云处理入门与实战教程

17.透彻理解视觉ORB-SLAM3:理论基础+代码解析+算法改进

重磅!3DCVer-学术论文写作投稿 交流群已成立

扫码添加小助手微信,可申请加入3D视觉工坊-学术论文写作与投稿 微信交流群,旨在交流顶会、顶刊、SCI、EI等写作与投稿事宜。

同时也可申请加入我们的细分方向交流群,目前主要有3D视觉CV&深度学习SLAM三维重建点云后处理自动驾驶、多传感器融合、CV入门、三维测量、VR/AR、3D人脸识别、医疗影像、缺陷检测、行人重识别、目标跟踪、视觉产品落地、视觉竞赛、车牌识别、硬件选型、学术交流、求职交流、ORB-SLAM系列源码交流、深度估计等微信群。

一定要备注:研究方向+学校/公司+昵称,例如:”3D视觉 + 上海交大 + 静静“。请按照格式备注,可快速被通过且邀请进群。原创投稿也请联系。

b15420dba615980e1892871059a8442d.jpeg

▲长按加微信群或投稿,加微信:dddvision

4eeb1ca876cb6455b793dff7d968b17d.jpeg

▲长按关注公众号

3D视觉从入门到精通知识星球:针对3D视觉领域的视频课程(三维重建系列三维点云系列结构光系列手眼标定相机标定激光/视觉SLAM自动驾驶等)、知识点汇总、入门进阶学习路线、最新paper分享、疑问解答五个方面进行深耕,更有各类大厂的算法工程人员进行技术指导。与此同时,星球将联合知名企业发布3D视觉相关算法开发岗位以及项目对接信息,打造成集技术与就业为一体的铁杆粉丝聚集区,近6000星球成员为创造更好的AI世界共同进步,知识星球入口:

学习3D视觉核心技术,扫描查看介绍,3天内无条件退款

aa7208a4c7fb10bd7814816b9c51f70a.jpeg

 圈里有高质量教程资料、答疑解惑、助你高效解决问题

觉得有用,麻烦给个赞和在看~  

<think>好的,用户想在Ubuntu20.04上安装Autoware并进行雷达相机联合标定。我需要先整理安装步骤,然后详细说明标定流程。首先,安装Autoware的话,可能需要依赖ROSNoetic,因为用户提到Ubuntu20.04,而ROSNoetic正是对应这个版本的。然后Autoware的安装可能有源码编译和Docker两种方式,用户可能需要选择其中一种,这里应该都介绍一下,但推荐源码编译?或者看哪个更稳定。另外,用户可能需要安装一些依赖包,比如git、cmake这些。 接下来是联合标定的部分。根据引用内容,用户需要使用autoware_camera_lidar_calibrator这个ROS包。可能需要先安装这个包,或者从Autoware项目中分离出来的版本。需要指导用户如何获取这个工具,比如从GitHub克隆仓库,然后编译。然后标定步骤的话,引用2和3提到关键帧的截取,静止状态,grab的使用方法,标定步骤中的点选点云和图像中的标定板,以及验证project后的红点分布情况。需要把这些步骤详细分解,确保用户能够一步步操作。还要注意可能的问题,比如数据同步的问题,标定板的选择,抓取图像时的注意事项,比如不要连续按grab,否则程序会崩溃。标定后的验证和保存结果的方法也需要说明,比如保存时不需要保存雷达相机数据,选否。需要检查是否有遗漏的步骤,比如环境配置,ROS工作空间的建立,依赖项的安装,比如可能需要的某些ROS包或者库。另外,标定前的数据准备,比如录制好的雷达相机数据包,可能需要用户先准备好,或者如何实时获取数据。最后,生成相关问题,可能涉及性能优化、标定失败处理、标定结果验证方法等。需要确保问题主题相关,帮助用户深入理解。</think>### 安装Autoware及联合标定教程 #### 一、安装Autoware 1.14(Ubuntu 20.04) 1. **安装ROS Noetic** ```bash sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list' sudo apt install curl curl -s https://raw.githubusercontent.com/ros/rosdistro/master/ros.asc | sudo apt-key add - sudo apt update sudo apt install ros-noetic-desktop-full echo "source /opt/ros/noetic/setup.bash" >> ~/.bashrc source ~/.bashrc ``` 2. **安装依赖库** ```bash sudo apt install git cmake python3-catkin-tools python3-vcstool ``` 3. **编译Autoware** ```bash mkdir -p autoware/src && cd autoware git clone https://github.com/autowarefoundation/autoware.git src rosdep install -y --from-paths src --ignore-src --rosdistro noetic colcon build --cmake-args -DCMAKE_BUILD_TYPE=Release ``` #### 二、雷达-相机联合标定步骤 1. **安装标定工具包** ```bash cd ~/autoware/src git clone https://github.com/FENGZHANG123/autoware_camera_lidar_calibrator colcon build --packages-select autoware_camera_lidar_calibrator ``` 2. **数据准备** - 录制包含相机图像和雷达点云的ROS数据包(使用`rosbag record`) - 标定板要求:棋盘格或AprilTag,尺寸已知且静止[^2] 3. **启动标定工具** ```bash source install/setup.bash roslaunch autoware_camera_lidar_calibrator calibration.launch ``` 4. **关键帧抓取** - 播放数据包时按**空格键暂停**,点击界面右上角`grab`抓取同步帧 - 避免连续点击,防止程序崩溃[^2] 5. **手动标注** - 在右下角点云窗口中选取标定板角点(需图像角点对应) - 至少标注**10组有效数据**后点击`Calibrate`[^3] 6. **验证保存** - 点击`Project`验证:红点应集中在标定板上 - 保存时选择**不保存原始数据**,仅保存标定矩阵[^3] #### 三、常见问题解决 - **数据不同步**:优先选择标定板静止的帧 - **标定误差大**:重新检查点云标注精度 - **程序崩溃**:降低数据播放速率,避免频繁操作GUI ---
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值