# 🎯 RC2025 自动定位瞄准代码 > 基于ROS2的机器人自动定位与瞄准系统,支持激光雷达建图和导航功能 [![ROS2](https://img.shields.io/badge/ROS2-Humble-blue.svg)](https://docs.ros.org/en/humble/) [![Ubuntu](https://img.shields.io/badge/Ubuntu-22.04-orange.svg)](https://ubuntu.com/) [![License](https://img.shields.io/badge/License-MIT-green.svg)](LICENSE) ## 📋 目录 - [系统要求](#系统要求) - [环境配置](#环境配置) - [快速开始](#快速开始) - [重要参数配置](#重要参数配置) - [故障排除](#故障排除) - [贡献指南](#贡献指南) ## 🔧 系统要求 | 组件 | 版本/型号 | |------|-----------| | 操作系统 | Ubuntu 22.04 LTS | | ROS版本 | ROS2 Humble | | 激光雷达 | Livox MID360 | | 处理器 | x86_64 (推荐) | | 内存 | 8GB+ (推荐) | ## 🚀 环境配置 ### 1. 安装 Livox SDK2 ```bash # 安装依赖 sudo apt update sudo apt install cmake build-essential # 克隆并编译 Livox SDK2 git clone https://github.com/Livox-SDK/Livox-SDK2.git cd ./Livox-SDK2/ mkdir build && cd build cmake .. && make -j$(nproc) sudo make install ``` ### 2. 安装串口驱动 ```bash pip install pyserial ``` ### 3. 安装ROS2依赖 ```bash # 进入工作区 cd /Users/lvzucheng/Documents/R/RC2025 # 安装依赖包 rosdep install -r --from-paths src --ignore-src --rosdistro $ROS_DISTRO -y ``` ## 🎯 快速开始 ### 1. 编译项目 ```bash . build.sh ``` ### 2. 🗺️ 建图模式 用于创建环境地图和点云数据: ```bash . mapping.sh ``` #### 建图前配置 1. **修改地图保存文件名** ```bash # 编辑 mapping.sh nano mapping.sh # 将 'RC2025' 改为您的项目名 ``` 2. **同步修改点云文件配置** ```bash # 编辑 FAST-LIO 配置文件 nano src/rm_nav_bringup/config/reality/fastlio_mid360_real.yaml # 确保 pcd 文件名与 mapping.sh 中一致 ``` #### 建图操作步骤 1. **启动建图程序** ```bash ./mapping.sh ``` 2. **控制机器人移动** - 使用遥控器或键盘控制机器人 - 确保覆盖所有需要建图的区域 3. **保存点云文件** ```bash ros2 service call /map_save std_srvs/srv/Trigger ``` 4. **保存地图文件** - 在RViz中使用地图保存功能 - 确保地图名称保持一致 #### 建图效果展示
点击查看建图效果图 ![建图效果1](doc/img/07b3c725_11812035.png) ![建图效果2](doc/img/5032aa1d_11812035.png) ![建图效果3](doc/img/bea7dae2_11812035.jpeg)
### 3. 🧭 导航模式 使用已建立的地图进行导航: ```bash chmod +x nav.sh ./nav.sh ``` #### 导航操作说明 1. **启动导航程序** 2. **在RViz中设置初始位置** 3. **设置目标点进行导航** 4. **监控导航状态** ## ⚙️ 重要参数配置 ### 📍 激光雷达安装位置 #### 位置参数配置 ```yaml # 文件:src/rm_nav_bringup/config/reality/measurement_params_real.yaml translation: x: 0.0 # 前后位置 (m) y: 0.0 # 左右位置 (m) z: 0.0 # 上下位置 (m) ``` > ⚠️ **注意**:不要修改 `rpy` 参数 #### 姿态参数配置 ```json // 文件:src/rm_nav_bringup/config/reality/MID360_config.json { "yaw": 0.0, // 偏航角 "pitch": 0.0, // 俯仰角 "roll": 0.0 // 翻滚角 } ``` > ⚠️ **注意**:不要修改 `xyz` 参数 ### 🌍 地面点云分割 ```yaml # 文件:src/rm_nav_bringup/config/reality/segmentation_real.yaml sensor_height: 0.3 # 激光雷达距离地面的高度 (m) max_dist_to_line: 0.05 # 地面点云分割的最低高度 (m) ``` ### 🎯 目标点设定 ```bash # 文件:nav.sh # 篮筐目标点坐标 TARGET_X=1.0 # X坐标 TARGET_Y=0.0 # Y坐标 ``` ## 🔧 故障排除 ### 常见问题
激光雷达无法连接 1. 检查网络连接 2. 确认IP地址配置 3. 检查防火墙设置 4. 验证SDK安装
建图效果不佳 1. 检查激光雷达安装位置 2. 调整地面分割参数 3. 确保移动速度适中 4. 检查环境光照条件
导航精度不够 1. 重新标定雷达参数 2. 优化地图质量 3. 调整导航参数 4. 检查里程计数据
## 📝 使用技巧 - **建图时**:保持稳定的移动速度,避免急转急停 - **导航时**:确保地图与实际环境一致 - **调试时**:使用RViz可视化工具监控状态 - **维护时**:定期更新地图数据