# 3d-navi
**Repository Path**: humc2019/3d-navi
## Basic Information
- **Project Name**: 3d-navi
- **Description**: No description available
- **Primary Language**: Unknown
- **License**: AFL-3.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 18
- **Created**: 2025-12-22
- **Last Updated**: 2025-12-22
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# 3D 导航仿真项目
## 项目介绍
本项目主要用于在 Gazebo 仿真环境中验证 [PCT-planner](https://github.com/byangw/PCT_planner.git) 和 [ego-planner](https://github.com/ZJU-FAST-Lab/ego-planner.git) 两种路径规划算法。项目中使用了 Unitree A1 机器人模型以及强化学习控制器 [chy2948331536/unitree_guide](https://gitee.com/chy2948331536/unitree_guide),其中控制器和 PCT-planner 需要 CUDA 支持。
---
## 下载与依赖
### 依赖项安装
1. **libtorch**:下载 C++ 版本的 [libtorch](https://pytorch.org/)。
2. **PCT-planner**:将其放置在 `src` 文件夹外单独编译。
3. **ego-planner**:请参考其官方文档进行配置:[ego-planner](https://github.com/ZJU-FAST-Lab/ego-planner.git)
4. **Fast-lio**:如需使用,可运行 `.auto.sh` 脚本自动发布 `livox/lidar` 和 `livox/imu` 话题,但需手动设置 `tf` 坐标关系。
---
## 安装步骤
### 1. 配置 libtorch 和 CUDA 路径
修改 `src/unitree_guide/unitree_guide/unitree_guide/CMakeLists.txt` 中的 `libtorch` 路径和 `CMAKE_CUDA_COMPILER` 路径。
### 2. 安装 ego-planner
请参考 [ego-planner](https://github.com/ZJU-FAST-Lab/ego-planner.git) 官方文档安装相关依赖。
### 3. 编译项目
进入 ROS 工作空间并执行以下命令:
```bash
catkin_make
```
### 4. 安装 PCT-planner
请参考 [PCT-planner](https://github.com/byangw/PCT_planner.git) 官方文档安装依赖,然后使用以下命令进行编译:
```bash
cd planner/
./build_thirdparty.sh
./build.sh
```
---
## 使用说明
### 1. 启动 RL 控制器
由于 RL 控制器需要手柄,因此需先启动虚拟控制器:
```bash
sudo -s
source ./devel/setup.bash
rosrun unitree_guide virtual_joy.py
```
然后启动 Gazebo 仿真环境并运行控制器:
```bash
. auto.sh # 等待 Unitree A1 机器人展开
./devel/lib/unitree_guide/junior_ctrl
```
在控制器中:
- 按键 **2**:站立
- 按键 **6**:切换为 RL 模式(此时接收 `cmd_vel` 消息)
- 再次按键 **2**:会闪退,需重新启动控制器
### 2. 启动 ego-planner
```bash
source ./devel/setup.bash
roslaunch ego_planner run_in_sim.launch # 局部导航模块
roslaunch ego_planner ego_rviz.launch # RVIZ 可视化
```
修改 `run_in_sim.launch` 文件中的 `flight_type` 参数可切换导航模式:
```xml
```
### 3. 启动 PCT-planner
进入 `PCT-planner` 文件夹并运行以下命令:
```bash
cd tomography/scripts/
python3 tomography.py --scene Building
cd planner/scripts/
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:home/YOUR-NAME/3d-navi/PCT_planner/planner/lib/3rdparty/gtsam-4.1.1/install/lib
python3 plan.py --scene Building
```
> ⚠️ **注意**:如果地图配置更改,需重新生成地图,路径规划器才会重新规划路径。
---
## 注意事项
1. 项目代码较为仓促,可能存在不规范或混乱的情况,敬请谅解。
2. 如发现问题或有任何建议,请及时提交 issue,便于改进。
3. 本项目基于 [PCT-planner](https://github.com/byangw/PCT_planner.git)、[ego-planner](https://github.com/ZJU-FAST-Lab/ego-planner.git) 和 [unitree_guide](https://gitee.com/chy2948331536/unitree_guide.git) 构建,仅限学习使用,禁止用于商业用途。
---
## 联系方式
- **Bilibili**:[https://space.bilibili.com/29152879](https://space.bilibili.com/29152879)
- **邮箱**:1906570332@qq.com
如果您觉得本项目对您有帮助,欢迎在 Gitee 上给我点个 **star**!谢谢支持!