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 本身运行,可忽略。