YOPO-ROS2 运行指南

项目地址https://github.com/dreamer198/YOPO-ROS2.git

环境依赖

依赖 版本要求
ROS 2 Humble
CUDA 12.6+
GCC/G++ 11
PyTorch 2.4.1+cu118
Eigen3, PCL, OpenCV, yaml-cpp 系统安装

一、构建

1. 构建 Controller 工作空间

1
2
3
4
cd ~/code/YOPO-ROS2/Controller
source /opt/ros/humble/setup.bash
colcon build --packages-select cmake_utils --symlink-install
colcon build

2. 构建 Simulator 工作空间

1
2
3
cd ~/code/YOPO-ROS2/Simulator
source /opt/ros/humble/setup.bash
colcon build

3. 安装 YOPO Python 依赖

1
2
cd ~/code/YOPO-ROS2/YOPO
pip install -r requirements.txt

二、运行(5 个终端)

终端 1:四旋翼仿真器

1
2
3
4
cd ~/code/YOPO-ROS2/Controller
source /opt/ros/humble/setup.bash
source install/setup.bash
ros2 launch so3_quadrotor_simulator simulator_attitude_control.launch.py

终端 2:CUDA 传感器仿真器

1
2
3
4
cd ~/code/YOPO-ROS2/Simulator
source /opt/ros/humble/setup.bash
source install/setup.bash
ros2 run sensor_simulator sensor_simulator_cuda

终端 3:YOPO 策略节点

1
2
3
4
cd ~/code/YOPO-ROS2/YOPO
source /opt/ros/humble/setup.bash
source ~/code/YOPO-ROS2/Controller/install/setup.bash
python3 test_yopo_ros.py

终端 4:RViz 可视化

1
rviz2 -d ~/code/YOPO-ROS2/YOPO/yopo2.rviz

终端 5:发送目标点

YOPO 默认目标为 [50, 0, 2],无人机可能很快到达。可通过以下命令发送新目标点使其重新飞行:

1
2
3
source /opt/ros/humble/setup.bash
ros2 topic pub --once /move_base_simple/goal geometry_msgs/msg/PoseStamped \
"{header: {frame_id: 'world'}, pose: {position: {x: 100.0, y: 20.0, z: 2.0}, orientation: {w: 1.0}}}"

目标坐标可自行修改 x, y, z 的值。

三、常见问题

1. CUDA 版本不匹配

Simulator CMakeLists.txt 默认要求 CUDA 12.8。如果你的 CUDA 版本不同(如 12.6),需修改 Simulator/src/CMakeLists.txt 第 46 行:

1
2
3
4
# 将
find_package(CUDA 12.8 EXACT REQUIRED)
# 改为
find_package(CUDA REQUIRED)

2. RViz 报错找不到 uav.dae

源码中硬编码了作者本地路径。需修改 Controller/src/so3_quadrotor_simulator/src/quadrotor_simulator_so3.cpp 第 377 行,改为使用 ament_index_cpp 动态获取包路径:

1
2
3
4
5
// 将硬编码路径
meshROS.mesh_resource = "file:///home/hu/YOPO_backup/YOPO/Controller/src/so3_quadrotor_simulator/config/uav.dae";
// 改为
std::string pkg_path = ament_index_cpp::get_package_share_directory("so3_quadrotor_simulator");
meshROS.mesh_resource = "file://" + pkg_path + "/config/uav.dae";

修改后重新编译:

1
2
cd ~/code/YOPO-ROS2/Controller
colcon build --packages-select so3_quadrotor_simulator

3. pip 依赖冲突

安装 Python 依赖时可能出现 numpy/empy 版本冲突警告(与 ultralytics、bloom 等包),不影响 YOPO 本身运行,可忽略。