开源项目 pole-localization
使用教程
1. 项目介绍
pole-localization
是一个用于在城市环境中进行长期 LiDAR 定位的在线范围图像基杆提取器。该项目由 Hao Dong 和 Xieyuanli Chen 开发,并在 ECMR2021 和 RAS 期刊上发表了相关论文。该项目的主要功能是将 LiDAR 点云投影到范围图像中,并从中提取杆状物体,然后基于这些提取的杆状物体构建全局杆状地图,并提出基于杆状物体的观测模型用于 MCL(蒙特卡罗定位)以在地图中定位机器人。
2. 项目快速启动
2.1 环境准备
确保你的系统环境满足以下要求:
- Ubuntu 20.04
- Python 3.8
2.2 安装依赖
首先,克隆项目到本地:
git clone https://github.com/PRBonn/pole-localization.git
cd pole-localization
然后,安装所需的 Python 依赖:
pip install numpy matplotlib open3d-python progressbar2 pyquaternion transforms3d scipy scikit-image networkx numba arrow pykitti
2.3 数据准备
2.3.1 NCLT 数据集
下载 NCLT 数据集并将其解压到 /nclt/data
文件夹中,然后运行以下命令:
python src/ncltpoles.py
2.3.2 KITTI 数据集
下载 KITTI 原始数据 2011_09_26_drive_0009,并将其解压到 /kitti/raw_data
文件夹中,然后运行以下命令:
./kitti_downloader.sh
python src/kittipoles.py
2.3.3 MulRan 数据集
下载 KAIST 01 和 KAIST 02 数据集,并将其解压到 /mulran/data
文件夹中,然后运行以下命令:
python src/mulranpoles.py
2.4 运行项目
根据你使用的数据集,运行相应的脚本即可启动项目。
3. 应用案例和最佳实践
3.1 城市环境中的长期 LiDAR 定位
该项目的主要应用场景是在城市环境中进行长期的 LiDAR 定位。通过提取环境中的杆状物体,项目能够构建一个稳定的全局地图,并在此基础上进行精确的定位。
3.2 最佳实践
- 数据预处理:确保输入的 LiDAR 数据质量高,避免噪声和异常值。
- 参数调优:根据具体的环境和数据集,调整项目的参数以获得最佳的定位效果。
- 地图更新:定期更新全局杆状地图,以适应环境的变化。
4. 典型生态项目
4.1 polex
polex
是一个与 pole-localization
类似的杆状物体提取项目,可以作为该项目的补充工具,提供更多的杆状物体提取算法。
4.2 SalsaNext
SalsaNext
是一个用于 LiDAR 点云分割的项目,可以与 pole-localization
结合使用,提供更全面的点云处理能力。
通过这些生态项目的结合,可以进一步提升 LiDAR 定位的精度和稳定性。