# fast_lio2 **Repository Path**: bowintech/fast_lio2 ## Basic Information - **Project Name**: fast_lio2 - **Description**: good job this slam is awesome - **Primary Language**: Unknown - **License**: GPL-3.0 - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-01-26 - **Last Updated**: 2026-03-23 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Bowin Fast-LIO2: 集成激光惯性里程计与回环闭合和路径规划 [![License](https://img.shields.io/badge/License-MIT-blue.svg)](LICENSE) [![ROS Version](https://img.shields.io/badge/ROS-Noetic-green.svg)](http://wiki.ros.org/noetic) ## 概述 Bowin Fast-LIO2 是一个先进的自主导航框架,集成了 Fast-LIO2 用于激光惯性里程计、SC-A-LOAM 用于回环闭合和位姿图优化,以及 Ego-Planner 用于轨迹规划和控制。该项目由 Bowin Technology 开发和优化,为机器人应用提供稳健、实时的 SLAM 和规划能力。 该系统利用高性能算法在动态环境中实现精确的定位、建图和路径规划,适用于无人机、自主车辆和移动机器人。 ![系统架构](./result.png) ## 主要特性 - **高性能里程计**:利用 Fast-LIO2 实现精确的激光惯性里程计,低计算开销。 - **回环闭合和优化**:集成 SC-A-LOAM 用于稳健的回环检测和位姿图优化,以最小化漂移。 - **高级路径规划**:采用 Ego-Planner 在复杂环境中生成安全高效的轨迹。 - **多传感器支持**:兼容 Livox 激光雷达传感器(如 Mid360)和集成 IMU。 - **Hesai 激光雷达支持**:✨ **新增**!完整支持 Hesai QT/XT/HS 系列(通过官方 ROS 驱动) - **ROS 集成**:与 ROS1 Noetic 完全集成,便于部署和定制。 - **实时性能**:针对嵌入式和桌面平台优化,实现实时操作。 ## 系统要求 ### 硬件 - **激光雷达**: - Livox Mid360(或兼容的 Livox 传感器) - Hesai QT 系列/XT 系列/HS 系列激光雷达(支持 SDK 2.0) - **IMU**:Mid360 中的集成 IMU、Hesai 雷达内置 IMU 或外部 IMU - **计算平台**:Ubuntu 20.04 与 ROS Noetic,最低 8GB RAM,多核 CPU ### 软件 - **操作系统**:Ubuntu 20.04 LTS - **ROS 版本**:ROS1 Noetic Ninjemys - **依赖项**: - Ceres Solver 2.1.0 - Eigen 3.3.7 - GTSAM(最新稳定版) - Livox SDK2 - Hesai LiDAR SDK 2.0(可选,用于 Hesai 雷达支持) - PCL、OpenCV 和标准 ROS 包 ## 安装 ### 先决条件 确保您的系统已安装必要的构建工具和 ROS: ```bash sudo apt update sudo apt install -y build-essential cmake git python3-catkin-tools ``` ### 依赖项安装 1. **Ceres Solver**: ```bash sudo apt-get install -y liblapack-dev libsuitesparse-dev libcxsparse3 libgflags-dev libgoogle-glog-dev libgtest-dev wget -O ceres-solver.zip https://github.com/ceres-solver/ceres-solver/archive/refs/tags/2.1.0.zip unzip -q ceres-solver.zip -d /tmp cd /tmp/ceres-solver-2.1.0 mkdir build && cd build cmake -DBUILD_SHARED_LIBS=TRUE .. make -j$(nproc) sudo make install ``` 2. **Eigen**: ```bash wget -O eigen3.zip https://gitlab.com/libeigen/eigen/-/archive/3.3.7/eigen-3.3.7.zip unzip -q eigen3.zip -d /tmp cd /tmp/eigen-3.3.7 mkdir build && cd build cmake -DBUILD_SHARED_LIBS=TRUE .. sudo make install sudo ln -s /usr/include/eigen3/Eigen /usr/include/Eigen ``` 3. **GTSAM**: ```bash cd ~ git clone https://github.com/borglab/gtsam.git cd gtsam mkdir build && cd build cmake -DGTSAM_USE_SYSTEM_EIGEN=ON .. make -j$(nproc) sudo make install ``` 4. **Livox SDK2**: ```bash git clone https://github.com/Livox-SDK/Livox-SDK2.git cd Livox-SDK2 mkdir build && cd build cmake .. make -j$(nproc) sudo make install ``` 5. **Hesai LiDAR ROS 驱动 2.0**(推荐,用于 Hesai 激光雷达): ```bash git clone https://github.com/HesaiTechnology/HesaiLidar_ROS_2.0.git cd HesaiLidar_ROS_2.0 mkdir build && cd build cmake .. make -j$(nproc) sudo make install ``` 或将驱动包直接添加到 catkin 工作空间: ```bash cp -r HesaiLidar_ROS_2.0 ~/catkin_ws/src/ cd ~/catkin_ws catkin_make ``` ### 项目设置 ```bash # 克隆仓库 git clone https://github.com/BowinTech/Fast-LIO2.git # 使用实际的 Bowin 仓库 URL 更新 cd Fast-LIO2 # 构建项目 catkin_make ``` ## 使用 ### 硬件设置 #### Livox Mid360 激光雷达 1. 打开 Mid360 激光雷达电源。 2. 将激光雷达的以太网端口连接到您的计算机。 3. 根据 [Livox ROS 驱动程序文档](https://github.com/Livox-SDK/livox_ros_driver2#4-lidar-config) 在 Livox ROS 驱动程序中配置 IP 地址。 4. 确保激光雷达正常运行并流式传输数据。 #### Hesai 激光雷达 1. 打开 Hesai 激光雷达电源。 2. 将激光雷达的以太网端口连接到您的计算机。 3. 确保计算机与雷达在同一网段(默认 IP:192.168.1.201)。 4. 修改 `HesaiLidar_ROS_2.0/config/config.yaml` 中的配置: ```yaml lidar_udp_type: device_ip_address: 192.168.1.201 # 雷达 IP host_ip_address: 192.168.1.100 # 您计算机的 IP udp_port: 2368 # 点云数据端口 ``` 5. 确保网络连接正常且能接收数据。 ### 运行系统 1. **启动 Fast-LIO2 里程计**: ```bash bash ./run_fast_lio.sh ``` 2. **启动 Ego-Planner 进行路径规划**: ```bash bash ./run_ego_planner.sh ``` 注意:预配置的航点可以在 [param.xml](src/ego-planner-swarm-v1/src/planner/plan_manage/launch/param.xml) 中修改。 ### 可视化 使用 RViz 进行实时可视化: ```bash roslaunch rviz.launch # 根据具体的启动文件调整 ``` ## 配置 ### 参数调优 - **里程计参数**:在 `FAST_LIO_SLAM/FAST-LIO/config/` 中为不同激光雷达模型调整。 - **规划器参数**:在 `ego-planner-swarm-v1/src/planner/plan_manage/launch/param.xml` 中修改航点和约束。 - **回环闭合**:为特定环境优化调整 SC-A-LOAM 参数。 ### 支持的激光雷达配置 #### Livox 激光雷达 - **Mid360**:默认配置可用,配置文件 `config/mid360.yaml` - **其他 Livox 传感器**:在 `FAST_LIO_SLAM/FAST-LIO/config/` 中调整配置文件 #### Hesai 激光雷达 Hesai 激光雷达支持通过以下参数配置: ```yaml # Hesai 激光雷达配置示例 common: lid_topic: "/hesai/scan" # Hesai 点云话题 imu_topic: "/hesai/imu" # Hesai IMU 话题 time_sync_en: false time_offset_lidar_to_imu: 0.0 preprocess: lidar_type: 4 # 4 for Hesai LiDAR scan_line: 40 # 根据具体型号调整(HS:128/64/32,QT:32/40) blind: 0.5 # 最小盲区 mapping: acc_cov: 0.1 gyr_cov: 0.1 b_acc_cov: 0.0001 b_gyr_cov: 0.0001 fov_degree: 360 det_range: 200.0 # 根据雷达型号调整检测范围 extrinsic_est_en: true # 建议开启外参在线估计 extrinsic_T: [0, 0, 0] # 根据实际安装位置调整 extrinsic_R: [1, 0, 0, 0, 1, 0, 0, 0, 1] ``` **常见 Hesai 型号扫线数参考**: - HS QT:32 / 40 线 - HS XT:32 / 40 线 - HS 系列:128 / 64 / 32 线 #### 激光雷达选择指南 在 `run_fast_lio.sh` 或相应的启动文件中选择激光雷达类型: ```bash # 使用 Livox Mid360 roslaunch fast_lio mapping_mid360.launch # 使用 Hesai 激光雷达(需创建对应的 launch 文件) roslaunch fast_lio mapping_hesai.launch ``` --- ## 快速参考 ### 支持的激光雷达 使用通用启动脚本 `run_fast_lio_multi.sh`: ```bash # Livox Mid360(默认) bash ./run_fast_lio_multi.sh mid360 # Hesai XT 系列 bash ./run_fast_lio_multi.sh hesai_xt # Hesai HS 系列(128 线) bash ./run_fast_lio_multi.sh hesai_hs # Velodyne bash ./run_fast_lio_multi.sh velodyne # Ouster bash ./run_fast_lio_multi.sh ouster ``` ### 配置文件位置 所有激光雷达配置文件位于 `src/FAST_LIO_SLAM/FAST-LIO/config/` 目录下: | 文件 | 对应雷达 | |------|---------| | `mid360.yaml` | Livox Mid360 | | `hesai_xt.yaml` | Hesai XT 系列 | | `hesai_hs.yaml` | Hesai HS 系列 | | `velodyne.yaml` | Velodyne | | `ouster64.yaml` | Ouster 64 线 | ### 常见问题 #### Q: 如何切换激光雷达? A: 1. 修改 `run_fast_lio.sh` 中的启动参数 2. 或使用 `bash ./run_fast_lio_multi.sh ` #### Q: Hesai 与 Mid360 有什么区别? A: 详见 [激光雷达配置对比和选择指南](docs/LIDAR_CONFIGURATION_GUIDE.md) #### Q: 无法连接 Hesai 雷达? A: 请参考 [Hesai ROS 2.0 驱动集成指南 - 故障排除](docs/HESAI_ROS2_INTEGRATION.md#故障排除) #### Q: 如何完整配置 Hesai 系统? A: 参考 [Bowin Fast-LIO2 + Hesai ROS 2.0 完整集成指南](HESAI_INTEGRATION_COMPLETE.md)(推荐新手使用) ## 故障排除 ### 常见问题 1. **构建失败**: - 确保所有依赖项正确安装。 - 检查 CMake 版本兼容性。 2. **激光雷达连接问题**: - 验证 Livox 驱动程序中的 IP 配置。 - 检查网络连接和防火墙设置。 3. **性能问题**: - 监控 CPU/GPU 使用情况;考虑硬件升级。 - 根据您的特定环境调整算法参数。 4. **ROS 错误**: - 确保 ROS 环境已源化:`source /opt/ros/noetic/setup.bash`。 - 检查主题名称和消息类型。 ### 日志和调试 - 在启动文件中启用详细日志记录。 - 使用 `rostopic echo` 检查数据流。 - 参考各个子模块的 README 以获取详细的故障排除信息。 ## 文档 项目包含详细的文档以支持不同的配置和使用场景: | 文档 | 描述 | |------|------| | [编译和配置指南](docs/BUILD_AND_CONFIGURATION.md) | 编译选项、激光雷达特定配置、Docker 支持 | | [Hesai ROS 2.0 驱动集成](docs/HESAI_ROS2_INTEGRATION.md) | **推荐**:Hesai ROS 官方驱动配置、网络设置、故障排除 | | [激光雷达配置对比](docs/LIDAR_CONFIGURATION_GUIDE.md) | 不同激光雷达的性能对比、选择指南、升级路径 | ## 贡献 我们欢迎贡献!请遵循以下指南: 1. Fork 该仓库。 2. 创建功能分支:`git checkout -b feature/your-feature`。 3. 提交更改:`git commit -m 'Add your feature'`。 4. 推送到分支:`git push origin feature/your-feature`。 5. 提交拉取请求。 请确保代码遵循 ROS 编码标准,并包含适当的测试。 ## 许可证 该项目根据 MIT 许可证授权 - 请参阅 [LICENSE](LICENSE) 文件以获取详细信息。 ## 致谢 该项目基于以下开源作品构建: - [FAST_LIO_SLAM](https://github.com/GDUT-Kyle/FAST_LIO_SLAM.git) - [livox2pointcloud](https://github.com/juliangaal/livox2pointcloud.git) - [ego-planner-swarm](https://github.com/ZJU-FAST-Lab/ego-planner-swarm.git) 由 Bowin Technology 开发和增强。 ## 联系方式 如有问题或需要支持,请在 GitHub 上打开问题或联系 Bowin Technology 支持。 ## 最新更新 ### 🎉 Hesai 激光雷达完整支持(2026 年 1 月) 项目现已支持 Hesai QT/XT/HS 系列激光雷达,基于官方 HesaiLidar_ROS_2.0 驱动程序。 **快速开始**: ```bash bash ./run_fast_lio_multi.sh hesai_xt ``` **详情参考**: - [Hesai 升级总结](HESAI_UPGRADE_SUMMARY.md) - 完整改进清单 - [完整集成指南](HESAI_INTEGRATION_COMPLETE.md) - 逐步配置教程(推荐新手) - [ROS 驱动集成](docs/HESAI_ROS2_INTEGRATION.md) - 深度技术文档 所有原有功能(Mid360、Velodyne、Ouster)保持完全兼容。