激光雷达-IMU标定工具lidar_imu_calib保姆级教程(VLP-16实测)

激光雷达-IMU联合标定 激光雷达和IMU外参标定,包括平移和旋转 阅读详情

激光雷达与IMU联合标定实战:从原理到VLP-16全流程解析

在自动驾驶、机器人导航和三维重建领域,激光雷达与惯性测量单元(IMU)的融合已成为构建高精度、鲁棒性感知系统的基石。然而,将这两个传感器的数据无缝对齐,其核心挑战在于精确获取它们之间的空间变换关系——也就是我们常说的外参标定。一个微小的角度偏差或几厘米的位移误差,在数据融合时都可能被放大,导致建图漂移、定位失败。对于手头有VLP-16这类经典激光雷达的开发者来说,找到一套可靠、可复现的标定流程,往往是项目落地前的关键一步。

市面上标定工具众多,但各有侧重。有的工具对运动激励要求苛刻,有的则只能求解部分参数。今天,我们将深入探讨一套由浙江大学团队开发的 lidar_imu_calib 工具链。它基于运动学约束,能够同时估计激光雷达与IMU之间的旋转、平移以及时间偏移,尤其适合像VLP-16这样输出有序点云的激光雷达。本文不仅是一份操作手册,更会拆解其背后的原理逻辑,分享我在多次标定实践中积累的细节技巧和避坑指南,目标是让你不仅能“跑通”流程,更能“理解”每一步的意义,从而灵活应对各种实际场景。

1. 环境部署与工具链搭建

在开始标定之前,一个干净、兼容的软件环境是成功的一半。lidar_imu_calib 基于ROS框架,并依赖一些特定的几何计算库。下面我们从头开始搭建。

1.1 系统与ROS环境准备

首先,确保你的系统是Ubuntu,并且已经安装了对应版本的ROS(推荐Melodic或Noetic)。ROS的安装过程这里不再赘述。接下来,我们需要创建一个独立的工作空间,以避免与现有项目的依赖发生冲突。

# 创建并初始化工作空间
mkdir -p ~/lidar_imu_calib_ws/src
cd ~/lidar_imu_calib_ws/src
catkin_init_workspace

提示:使用独立工作空间是个好习惯,便于管理依赖和后续的清理。

1.2 获取源码与安装依赖

工具的源码托管在GitHub上。我们使用 wstool 来管理ROS包的依赖,这是一个比手动 git clone 更高效的方式。

# 克隆主仓库
git clone https://github.com/APRIL-ZJU/lidar_IMU_calib.git

# 进入工具目录,使用wstool安装依赖
cd lidar_IMU_calib
wstool init
wstool merge depend_pack.rosinstall
wstool update

# 编译第三方子模块(关键步骤)
./build_submodules.sh

执行 ./build_submodules.sh 脚本至关重要,它会编译一些必要的第三方库,如用于优化求解的Ceres Solver和点云处理的特定模块。这个过程可能需要一些时间,请耐心等待直至完成,确保没有报错。

1.3 编译主功能包

依赖安装完成后,返回工作空间根目录进行编译。

cd ~/lidar_imu_calib_ws
catkin_make -DCMAKE_BUILD_TYPE=Release

编译成功后,别忘了激活当前工作空间的环境变量:

source devel/setup.bash

为了方便,你可以将这条 source 命令添加到 ~/.bashrc 文件中。至此,工具链的软件部分就准备就绪了。

2. 标定数据采集的艺术与科学

标定数据的质量直接决定了最终结果的精度。很多人标定失败,问题往往出在数据采集环节。这一节,我们深入聊聊如何为 lidar_imu_calib 采集“合格”的数据。

2.1 硬件安装与话题确认

物理固定:将VLP-16激光雷达和IMU刚性连接在一起。理想情况下,应使用支架或定制件固定,确保在运动过程中两者不发生相对位移。简单的捆扎是不可靠的,微小的松动都会引入误差。我习惯在连接处做好标记,方便标定后整体安装回机器人原位置。

话题确认:这是VLP-16用户最容易踩坑的地方。VLP-16的ROS驱动通常会发布多个话题,其中:

  • /velodyne_points: 发布的是无序点云,每个点的XYZ坐标是
Lidar_imu自动标定 Lidar imu间的外参标定 阅读详情

相关推荐

激光雷达和IMU联合标定包 lidar_IMU_calib 基于镭神-C16的扩展

这一部分当初有点困扰我的是:使用pcl::fromROSMsg()函数将PointCloud2格式点云转换为XYZI格式点云后,点云变为无序的了,这位前辈进行了改进改的很好能直接用,在这里注意的是这个前辈是用了一个结构体进行函数的重载,所以一定要在雷达的驱动中去找参数,这个找参数的过程中是相当痛苦的,他有很多参数,有的在雷达驱动中有,有的在雷达驱动中没有只能查阅用户手册,将镭神驱动的相关代码修改,这里主要是修改驱动中的launch文件中的,含有各种雷达种类的标定算法,可以适配FAST-lio算法。

qq_52525361的博客 3130

避坑指南:实测Ubuntu 20.04下三大主流激光雷达-IMU标定方案(lidar_align, lidar_IMU_calib, lidar_imu_calib)

本文深度评测了Ubuntu 20.04环境下三大主流激光雷达-IMU标定方案(lidar_align, lidar_IMU_calib, lidar_imu_calib),涵盖安装便捷性、标定精度和场景适应性等核心指标。通过实测数据揭示各方案在无人车应用中的优缺点,并提供激光雷达型号适配建议与工程落地的最佳实践,助力开发者高效完成外参标定。

weixin_30755393的博客 562

保姆级教程:在Ubuntu20.04上为你的RS-Helios 5515激光雷达适配浙大lidar_IMU_calib标定工具

本文提供了一份详细的教程,指导如何在Ubuntu20.04系统上为RS-Helios 5515激光雷达适配浙大lidar_IMU_calib标定工具。从环境准备、源码改造到标定流程和疑难问题排查,全面覆盖了标定过程中的关键步骤和技巧,帮助开发者快速完成非VLP-16雷达的标定工作。

weixin_30245867的博客 608

ubuntu 20.04 运行lidar_imu_calib完成 ls_c16 和 imu的标定

前段时间参与一个项目需要进行激光雷达和imu的外参标定,发现目前网上开源的标定包只有浙江大学开源的方案-lidar_IMU_calib、lidar-align等少数几种,其中lidar-align听说精度不高,所以最后选择浙大的开源方案lidar_IMU_calib,在github上查询后发现它目前只支持VLP-16线激光雷达,但根据作者叙述应该很容易扩展到其他激光雷达,在经过一番挣扎终于成功了,下面是实现的大概流程。我的cov(2)>0.10才能初始化成功,但是最后的结果看起来是有问题的。

qq_57615412的博客 1156

激光雷达-IMU标定实战:lidar_imu_calib工具保姆级教程

本文详细解析了激光雷达与IMU联合标定的全流程,重点介绍了浙江大学lidar_imu_calib工具的使用方法。从标定原理、环境搭建、数据采集到标定流程和结果验证,提供了保姆级教程,帮助开发者在自动驾驶和机器人定位领域实现高精度传感器融合。

weixin_29057065的博客 590

保姆级教程:在Ubuntu 20.04上搞定浙大lidar_IMU_calib,并适配你的激光雷达(以RS-Helios 5515为例)

本文提供了一份详细的Ubuntu 20.04教程,指导用户如何安装和配置浙大lidar_IMU_calib开源包,并适配RoboSense RS-Helios 5515激光雷达。从环境准备、源码编译到雷达参数修改,再到标定技巧和结果解读,全程手把手教学,帮助用户顺利完成激光雷达与IMU的标定工作。

weixin_27215337的博客 300

实战指南:在 Ubuntu 20.04 上利用 lidar_imu_calib 完成激光雷达与 IMU 外参标定

本文详细介绍了在Ubuntu 20.04系统上使用lidar_imu_calib工具完成激光雷达与IMU外参标定的实战指南。从环境配置、硬件连接到数据采集与标定流程,提供了全面的操作步骤和常见问题解决方案,帮助开发者高效实现传感器标定,提升自动驾驶和机器人导航系统的精度。

weixin_26869081的博客 249

如何让浙大lidar_IMU_calib支持你的激光雷达(以RS-Helios为例)

本文详细介绍了如何扩展浙大开源lidar_IMU_calib框架以适配RS-Helios 5515激光雷达,涵盖环境配置、代码修改、数据采集和标定验证等关键步骤。通过二次开发实现无目标标定,为自动驾驶和机器人定位提供精准感知解决方案,特别适合Ubuntu20.04系统用户。

weixin_32956805的博客 516

lidar_imu_calib:自动校准3D激光雷达和IMU外在性

lidar_imu_calib 概述 在基于3D激光雷达的slam开发中,我们经常使用imu为匹配算法(icp,ndt)提供先验,因此需要校准激光雷达和imu之间的变换。对于匹配算法,transfom中的姿态比变换中的位置更重要,并且通常将位置设置为0。因此,此回购专注于在激光雷达和imu之间的转换中校准姿态分量。 先决条件 将ndt_omp安装到系统目录 git clone https://github.com/koide3/ndt_omp.git cd ndt_omp mkdir build cd build cmake .. make sudo make install 步 使用rosbag工具记录imu和激光雷达数据 rosbag record /imu /lidar_points 配置启动文件 lidar_topic: lidar data topic name imu_to

lidar_IMU_calib:基于连续时间批量估计的LiDAR-IMU系统的无目标标定

LI-Calib 概述 LI-Calib是用于校准6DoF刚性变换和3D LiDAR与IMU之间的时间偏移的工具包。它基于连续时间的批次优化。基于IMU的成本和LiDAR点到surfel距离共同最小化,这使得校准问题在一般情况下受到了很好的约束。 先决条件 (经过动力学和旋律测试) sudo apt-get install ros-melodic-pcl-ros ros-melodic-velodyne-msgs (经过1.14.0版测试) (连续时间工具包) 穿山甲(用于可视化和用户界面) 请注意, Kontiki和Pangolin包含在第三方文件夹中。 安装 克隆项目的源代码并进行构建。 # init ROS workspace mkdir -p ~ /catkin_li_calib/src cd ~ /catkin_li_calib/src catkin_init_work

SAP FICO实操:如何修改已发生业务数据的成本中心公司代码(附RKACOR06程序运行指南)

本文详细解析了SAP FICO系统中使用RKACOR06程序修改已发生业务数据的成本中心和公司代码的实操方法。通过实战案例分享,提供从前期准备到后期验证的全流程指南,帮助企业应对组织架构重组或财务核算体系调整时的数据迁移挑战,特别适用于跨公司代码的成本中心划转场景。

weixin_27303545的博客 184

find命令

命令是 Linux/Unix 系统中用于搜索文件和目录的强大工具,支持多种搜索条件组合,并能对搜索结果执行各种操作。以下是其详细说明、常用参数及示例: 搜索路径:指定起始目录(如 、 或 表示当前目录)。 查找条件:基于文件名、类型、大小、时间等属性过滤。 处理动作:对匹配结果执行操作(如打印、删除、执行命令等)。 常用参数及示例 1. 按名称查找 :区分大小写匹配文件名。 :不区分大小写匹配文件名。 2. 按文件类型查找 :指定文件类型。 文件类型: :普通文件 :目录 :符号链接

qiao2458的博客 1124

core_analyzer分析c++程序内存占用

环境:centos; 进程:单进程多线程c++程序; 问题:1. 分析系统内存占用; 2. 分析ptmalloc内存空洞(bins上的空闲chunk的大小); 包括:1. 占用了很大内存的c++进程; 2. gcore(在进程不core dump的情况下生成core文件); 3. core_analyzer(分析gcor...

weixin_41644391的博客 4808

深入理解Cornerstone3D.js渲染Stack影像数据

这个是调用的core\src下的init.ts的init方法,作用是:初始化cornerstone-core,检测客户端是否支持WebGL,默认情况下是支持中等GPU层级.另外一个重要的是实例化WebWorkManager.WebWorkManager类似于Java的线程池,是用来对Web Worker进行管理的管理器。使用DICOMwebClient获取影像文件的元数据,然后将它们缓存到imageLoader的metaDataManager中,在上面我们可以输出元数据看一下是什么。

wangwei19820517的博客 1488

记一次wireshark抓取QQ好友IP和火绒抓取微信IP

事情是这样的,,上个周,手机离奇的被盗,但没有关机,为了找回手机,粗学了一手QQ抓ip的手段。 这里我就直接做个演示,解析关键的点。 三种思路i. wireshark 抓取手机在线IPii 火绒抓取 微信在线接听IPiii 火绒抓取 微信在线不接听IP i. wireshark 抓取手机在线IP wireshark抓好友QQ的ip要求和对方打语音的时候要手机在线。 这里说一下,打语音和视频是直接能和对方建立连接,如果发文件,是直接发给腾讯的,抓不到包。 1.打开wireshark,通过电脑Tim给对方打语音

qq_29437513的博客 1万+

2025年软件测试职业院校技能大赛—ERP管理平台-基础信息管理商品管理测试用例

竞赛对接软件测试相关标准,以“ERP管理平台” 为被测系统,围绕软件测试领域的主流技术及工具,考查选手面 对实际问题的综合分析能力,对测试文档、测试用例的设计能力, 对单元测试、自动化测试、性能测试、接口测试等测试工具及方 法的掌握程度,检验选手团队协作能力、组织规划能力、方法运用能力等。

我是网络安全兼技能大赛工程师,专注网络安全技术学习与技能大赛实战!持续分享最新的技术文章,帮你少走弯路,一起在技术赛道上进步~ 313

Python 实战:手语翻译系统——从视频到文本的智能转换

今天,我们用 Python 构建了一个。

Echo_Wish 340

JVM高频面试基本问题与知识点整理

JVM高频面试基本问题与知识点整理

曾经“等你生日那天”都遥远得像未来,如今却可欢愉的挥手说“下个十年见” 87万+

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

上一篇: Cesium光照优化指南:如何让3DTiles模型在暗黑场景中清晰可见?
下一篇: antd vue表格组件实战:如何自定义展开按钮样式与位置(附完整代码)
奶包子
博客等级 码龄3年 585粉丝 1743原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值