直接激光雷达里程计
direct_lidar_odometry
项目简介
[IEEE RA-L & ICRA'22] A lightweight and computationally-efficient frontend LiDAR odometry solution with consistent and a
Direct LiDAR Odometry(DLO)是一个轻量级、计算高效的前端激光雷达里程计解决方案,专注于在感知挑战性环境中实现一致且精确的定位。该项目源自NASA JPL团队CoSTAR为DARPA地下挑战赛所做的研发工作,并作为自主飞行器编队的主要状态估计组件,在实际任务中得到了充分验证。DLO的核心创新在于其直接处理稠密点云的能力,通过一系列算法优化显著提升了位姿估计的速度、精度和鲁棒性。技术栈方面,项目基于C++14开发,依赖ROS(Melodic/Noetic)、Point Cloud Library(≥1.10.0)、Eigen(≥3.3.7)和OpenMP(≥4.5),并集成了FastGICP和NanoFLANN等高效开源库。DLO支持输入sensor_msgs::PointCloud2类型的点云数据,并可选配IMU传感器(sensor_msgs::Imu)进行初始重力对齐和点云配准辅助。项目解决了传统激光雷达里程计在复杂环境下计算负担重、定位不稳定等问题,特别适用于无人机和足式机器人等计算资源受限的平台。其典型应用场景包括地下空间探索、隧道巡检、室内外无缝定位等需要快速、可靠自定位的任务。DLO提供了完整的ROS节点实现,用户可通过launch文件灵活配置点云和IMU话题,并支持将生成的地图保存为PCD格式、将轨迹保存为KITTI格式,便于后续分析和应用。该项目已在Ubuntu 18.04和20.04系统上经过广泛测试,并提供了约4.2GB的测试数据包供用户快速上手验证。
标签
项目特点
技术规格
| 输入 | `sensor_msgs::PointCloud2` 点云数据,可选 `sensor_msgs::Imu` IMU 数据 |
|---|---|
| 操作系统 | Ubuntu 18.04 (ROS Melodic) 或 Ubuntu 20.04 (ROS Noetic) |
| 编程语言 | C++ 14 |
| 构建工具 | CMake >= 3.16.3, catkin_tools 或 catkin_make |
| 依赖库 | OpenMP >= 4.5, Point Cloud Library >= 1.10.0, Eigen >= 3.3.7 |
| 输出 | 里程计数据、点云地图(可保存为 .pcd 格式)、轨迹(KITTI 格式) |
项目资源
搜索资源
物料清单 (BOM)
| 物料名称 | 数量 | 参考价格 | 备注 |
|---|---|---|---|
| 激光雷达 (LiDAR) | 1 | — | 提供 `sensor_msgs::PointCloud2` 数据 |
| IMU (可选) | 1 | — | 提供 `sensor_msgs::Imu` 数据,用于重力对齐 |
| 搭载 Ubuntu 的计算机 | 1 | — | 运行 ROS 和 DLO 算法 |