
lidar_localization_ros2:面向 ROS 2 机器人的三维 LiDAR 地图定位工具
30秒速读:给移动机器人做导航,第一步往往不是建图,而是“机器人在地图里的哪”。lidar_localization_ros2 就是干这个的:拿实时三维点云去匹配已有的点云地图,输出机器人在地图坐标系中的位姿,还能作为 Nav2 的定位来源。注意它的前提很明确:地图必须事先有,它只负责定位,不负责建图。
项目信息
| 项目类型 | ROS 2 地图定位节点(非 SLAM 系统) |
| 适用平台 | 多平台(ROS 2 运行环境) |
| 支持的 ROS 2 发行版 | Jazzy(主要)、Humble |
| 匹配方法 | NDT 匹配实时点云与 PCD 或 PLY 地图 |
| 辅助输入 | 里程计、IMU(可选),Nav2 模式需二维占据栅格地图 |
它是怎么定位的
核心链路可以概括成三步:实时点云与已有地图做 NDT 匹配,得到位姿;里程计在两次扫描之间预测运动,让位姿输出保持连续;当点云匹配暂时变弱或失效时,系统仍可用里程计维持位姿估计,并给出状态提示,而不是直接丢位置。据仓库说明,它还支持在整张地图里自动搜索起始位姿,找不到安全匹配时,可通过 RViz 的 2D Pose Estimate 人工给初始位置。
- NDT 匹配:把实时三维点云与 PCD 或 PLY 地图对齐,输出地图坐标系位姿。
- 里程计融合:结合 RKO-LIO 里程计和 IMU 预测扫描间运动。
- 失配恢复:匹配暂时失效时用里程计维持跟踪,并提示状态变化。
- 自动初始化:首次运行可在整张地图中自动搜索起始位姿。
- Nav2 集成:可独立运行,也可作为 Nav2 的定位来源。
- 验证入口:提供 MID-360、Unitree Go2、公开数据集、Docker 与无界面运行等路径。
技术构成:定位节点与周边如何配合
这个项目属于 ROS 2 生态,要跑起来需要一整条数据链配合:LiDAR 驱动出点云、TF 提供坐标变换、里程计给运动预测、Nav2 模式下还要二维占据栅格地图和 odom 到 base_link 的变换来源。实现上它依赖 ndt_omp_ros2,并可选用 small_gicp 提供 SMALL_GICP 或 SMALL_VGICP 后端;地图则可配合 lidar_slam_ros2 生成或使用。任何一环缺失,定位效果都会打折,选型时要按整条链评估,而不是只看定位节点本身。
| 环节 | 来自哪里 | 缺了会怎样 |
|---|---|---|
| 点云地图 | 事先准备的 PCD 或 PLY 文件 | 没有地图就无法定位 |
| 实时点云 | LiDAR 驱动 | 无输入则无匹配 |
| 里程计与 IMU | RKO-LIO 等,可选 | 匹配失效时难以维持跟踪 |
| TF 与坐标系 | 机器人自身配置 | 位姿无法落到地图坐标系 |
| Nav2 所需二维地图 | Nav2 模式下另行准备 | Nav2 联动无法正常工作 |
上手步骤
- 先确认前提:手头已有三维点云地图,机器人能稳定输出 LiDAR 点云,TF 配置无误。
- 按仓库说明准备 ROS 2 环境,优先用 Jazzy,Humble 也在支持范围内,发行版选定后不要中途混用。
- 编译 ndt_omp_ros2 与本项目,据仓库说明,在八核机器上构建可能需要约三十分钟,预留好时间。
- 先用公开数据集或 Docker 路径离线验证一次,确认自动初始化、跟踪与失配恢复都正常,再上真机。
- 真机验证时用 RViz 观察跟踪质量,重点测初始化、遮挡、驶出地图范围和匹配失效四种情况。
选型对照:定位、建图与二维方案怎么分
| 需求 | 这个项目合不合适 | 理由 |
|---|---|---|
| 已有三维地图,要在 ROS 2 里定位 | 合适,优先评估 | 正是它的设计目标 |
| 要同时在线建图 | 不合适 | 它明确不是 SLAM 系统 |
| 只有二维传感器或二维地图 | 不合适 | 它面向三维点云匹配 |
| 已有地图但缺可靠里程计 | 可用,但要先验证 | 匹配失效时的维持能力会受限 |
上手前确认事项
- 地图先行:没有可靠的三维点云地图就不要启动评估,先解决地图来源。
- 传感器链路:LiDAR 型号、驱动话题、坐标系与里程计来源要逐项确认,仓库摘要没有列出全部话题名与参数范围,细节以源码和配置为准。
- 构建时间:编译依赖项耗时较长,small_gicp 的安装方式还取决于 ROS 2 发行版,环境准备要留足余量。
- Nav2 额外条件:走 Nav2 模式时,二维占据栅格地图和 odom 到 base_link 的变换来源必须提前备好。
- 现场验证不可省:仓库的公开评估不能代表你的场地,初始化、遮挡、地图外行驶与匹配失效行为都要用自己的地图和路线实测。
- 升级回归:升级 ndt_omp_ros2、small_gicp 或 ROS 2 后,要重新验证点云匹配、自动初始化、失配恢复和 Nav2 联动。
适合谁,不适合谁
适合使用 ROS 2、已有三维点云地图、需要为移动机器人提供地图坐标系定位的开发者和机器人集成团队。熟悉 ROS 2、TF、LiDAR 驱动、里程计和 Nav2 的用户,上手会顺利得多;用 Livox MID-360 的机器人还可以走仓库给出的快速验证路径。
不适合还没有地图、想顺带把建图也做了的团队,也不适合主要依赖二维传感器的场景。这两类需求应该去找 SLAM 或二维定位方案,而不是把一个纯定位工具硬套上去。
GitHub 国内访问较慢,如打不开可多刷新几次

关注「软件教程管家」
回复软件名即取即下:网盘下载链接 + 提取码,一步直达,不用再跳转。
本站资源仅供个人学习交流,请勿用于商业用途。软件与资料版权归原作者所有;如有侵权,请通过公众号「软件教程管家」联系我们,我们将在 24 小时内下架处理。查看免责声明 ›







