mozihe/z-localization

硬件与物联网

面向移动机器人的 ROS 2 激光惯性定位栈,支持建图、重定位与 UWB 辅助。

75
7
C++
GPL-2.0
创建于 6 天前

Z-Localization 是东北大学 T-DT 实验室随 RoboMaster 哨兵定位工作开源的 ROS 2 激光惯性定位栈,面向移动机器人。它包含 ZLIO 前端、定位后端、统一启动入口,以及地图处理和车体外参标定工具。系统输出位姿、速度、协方差和定位状态,实机运行与 rosbag 回放共用同一个入口 项目总览。

它改变了什么工作流

这套栈覆盖从原始传感器数据到可复用先验地图的完整路径。ZLIO 可单独作为里程计使用;已有 LIO 前端可以接入后端的独立里程计和点云接口。回环、重定位和可选的 UWB 位置辅助由后端处理 项目总览。

README 记录了一条建图流程:在 mapping 模式下回放 bag,停止输入后调用保存地图服务,再自动清理保存的地图包,以减少动态残影。作者表示自动清理能大幅减少手工工作量,但结果仍需用 CloudCompare 清理和调平;对于水平安装的雷达,作者建议精修后按网格重新生成地图包和描述子,因为这样得到的描述子通常比建图时直接保存的更好 从 bag 建图到先验定位。

环境要求

  • 平台: Ubuntu 22.04 与 ROS 2 Humble,C++17,CMake ≥ 3.16,colcon。列出的库包括 Eigen、GTSAM 4.2.x、PCL、yaml-cpp、nanoflann,并行使用 OpenMP、oneTBB 和 Threads 环境与依赖。
  • 传感器路径: 文档中的实机方案使用 Livox Mid-360,经 Livox ROS Driver 2 与 Livox-SDK2 驱动,输出 Livox CustomMsg。driver 启动开关默认关闭;回放 bag 或已单独启动驱动时应保持关闭 先验地图定位步骤。
  • 无先验地图时: 需要实时全局位姿时,使用 mapping 模式并启用 UWB;机器人要先移动数米(默认水平位移至少 3 m),待定位状态进入 NORMAL 后再使用全局位姿 无先验地图的实时定位。

使用前须知

仓库配置中的安装外参、场地路径和 UWB 设置来自作者设备,不是通用标定结果;传感器、外参和时间相关参数需要认真检查 配置示例。从头重播 bag 前,必须重新启动定位程序 从 bag 建图到先验定位。项目采用 GPL-2.0-only 许可证,若计划再分发或集成到闭源项目中需考虑这一条件 许可证。作者自述代码质量较弱,借助 AI 整理并经人工审查,且除非出现重大 bug,大概率不会再更新 项目总览。

本文由 AI 根据项目 README 生成,更新于 2026年10月28日,以项目官方文档为准。