222 lines
4.4 KiB
Markdown
222 lines
4.4 KiB
Markdown
# 🎯 RC2025 自动定位瞄准代码
|
||
|
||
> 基于ROS2的机器人自动定位与瞄准系统,支持激光雷达建图和导航功能
|
||
|
||
[](https://docs.ros.org/en/humble/)
|
||
[](https://ubuntu.com/)
|
||
[](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中使用地图保存功能
|
||
- 确保地图名称保持一致
|
||
|
||
#### 建图效果展示
|
||
|
||
<details>
|
||
<summary>点击查看建图效果图</summary>
|
||
|
||

|
||

|
||

|
||
|
||
</details>
|
||
|
||
### 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坐标
|
||
```
|
||
|
||
## 🔧 故障排除
|
||
|
||
### 常见问题
|
||
|
||
<details>
|
||
<summary>激光雷达无法连接</summary>
|
||
|
||
1. 检查网络连接
|
||
2. 确认IP地址配置
|
||
3. 检查防火墙设置
|
||
4. 验证SDK安装
|
||
|
||
</details>
|
||
|
||
<details>
|
||
<summary>建图效果不佳</summary>
|
||
|
||
1. 检查激光雷达安装位置
|
||
2. 调整地面分割参数
|
||
3. 确保移动速度适中
|
||
4. 检查环境光照条件
|
||
|
||
</details>
|
||
|
||
<details>
|
||
<summary>导航精度不够</summary>
|
||
|
||
1. 重新标定雷达参数
|
||
2. 优化地图质量
|
||
3. 调整导航参数
|
||
4. 检查里程计数据
|
||
|
||
</details>
|
||
|
||
## 📝 使用技巧
|
||
|
||
- **建图时**:保持稳定的移动速度,避免急转急停
|
||
- **导航时**:确保地图与实际环境一致
|
||
- **调试时**:使用RViz可视化工具监控状态
|
||
- **维护时**:定期更新地图数据
|