从零搭建Gazebo无人机追踪小车仿真新手避坑全流程第一次打开Gazebo仿真界面时那个悬浮在空中的无人机模型让我既兴奋又忐忑。作为ROS和PX4的初学者我原本以为只要按照教程输入几行命令就能看到无人机自动追踪小车的酷炫场景结果却在环境配置阶段就卡了整整三天。这篇文章将带你完整走一遍我踩过的所有坑以及最终验证可行的解决方案。1. 环境准备避开依赖地狱新手最容易崩溃的阶段往往在第一步。当我在Ubuntu 20.04上尝试安装Prometheus时遇到了十几个依赖项缺失的错误。关键是要按特定顺序安装这些组件# 必须先安装的底层依赖 sudo apt-get install libeigen3-dev libboost-all-dev geographiclib-tools常见报错1Could NOT find GeographicLib解决方法手动编译安装GeographicLib 1.50版本并设置环境变量export GEOGRAPHICLIB_DATA/usr/share/GeographicLib必备工具清单ROS Noetic必须完整安装ros-noetic-desktop-fullGazebo 11建议从ROS源安装PX4 v1.13.2与Prometheus兼容性最佳提示使用rosdep install时若卡住可尝试切换国内镜像源。我曾因网络问题浪费两小时在这个步骤。2. 工程配置那些文档没写的细节克隆Prometheus仓库后直接运行catkin_make十有八九会失败。需要特别注意工作空间命名必须为prometheus_ws否则启动脚本会报路径错误模型文件权限Gazebo插件需要执行权限chmod x ~/prometheus_ws/src/Prometheus/Simulator/gazebo_simulator/plugins/*PX4通信配置修改mavros_launch/px4.launch中的串口设备名典型错误排查表错误现象可能原因解决方案Gazebo黑屏显卡驱动问题安装NVIDIA闭源驱动PX4无法连接波特率不匹配检查/etc/udev/rules.d配置目标识别失败模型路径错误确认yolov5s.engine文件存在3. 仿真启动关键步骤分解正确的启动顺序就像多米诺骨牌错一步全盘皆输。这是我验证过的流程先启动PX4 SITLcd ~/PX4_Firmware make px4_sitl_default gazebo新终端启动MAVROSroslaunch prometheus_gazebo sitl_control.launch最后运行追踪脚本roslaunch prometheus_gazebo car_tracking.launch避坑要点每个命令都要在新终端运行或使用tmux观察终端输出特别是[WARN]和[ERROR]信息首次启动Gazebo可能需要下载模型建议提前配置离线缓存4. 调试技巧从报错到成功的实战记录当Gazebo终于显示出无人机和小车时我的追踪算法却毫无反应。通过以下方法定位问题检查话题通信rostopic list | grep detection可视化检测结果rqt_image_view /prometheus/target_detection手动测试PID参数rosservice call /prometheus/control/pid_params { x: {p: 0.5, i: 0.01, d: 0.1}, y: {p: 0.5, i: 0.01, d: 0.1}, z: {p: 0.8, i: 0.0, d: 0.2} }性能优化参数我的最终配置control_freq: 50 # Hz max_speed: 3.0 # m/s safety_distance: 1.5 # m5. 进阶实战自定义仿真环境当基础功能跑通后可以尝试修改Gazebo世界文件!-- 在prometheus_gazebo/worlds/中添加自定义障碍物 -- model nameobstacle_box pose2 0 0.5 0 0 0/pose link namelink collision namecollision geometry box size1 1 1/size /box /geometry /collision /link /model扩展建议更换YOLOv5模型为更轻量的版本尝试不同追踪算法如KCF vs SORT添加多机协同仿真场景记得备份工作目录我曾因误删~/.gazebo文件夹不得不重装整个环境。现在我把所有关键配置都保存在Git私有仓库随时可以回退到可用版本。
新手避坑指南:用Prometheus+PX4+ROS在Gazebo里复现无人机追踪小车(附完整脚本)
从零搭建Gazebo无人机追踪小车仿真新手避坑全流程第一次打开Gazebo仿真界面时那个悬浮在空中的无人机模型让我既兴奋又忐忑。作为ROS和PX4的初学者我原本以为只要按照教程输入几行命令就能看到无人机自动追踪小车的酷炫场景结果却在环境配置阶段就卡了整整三天。这篇文章将带你完整走一遍我踩过的所有坑以及最终验证可行的解决方案。1. 环境准备避开依赖地狱新手最容易崩溃的阶段往往在第一步。当我在Ubuntu 20.04上尝试安装Prometheus时遇到了十几个依赖项缺失的错误。关键是要按特定顺序安装这些组件# 必须先安装的底层依赖 sudo apt-get install libeigen3-dev libboost-all-dev geographiclib-tools常见报错1Could NOT find GeographicLib解决方法手动编译安装GeographicLib 1.50版本并设置环境变量export GEOGRAPHICLIB_DATA/usr/share/GeographicLib必备工具清单ROS Noetic必须完整安装ros-noetic-desktop-fullGazebo 11建议从ROS源安装PX4 v1.13.2与Prometheus兼容性最佳提示使用rosdep install时若卡住可尝试切换国内镜像源。我曾因网络问题浪费两小时在这个步骤。2. 工程配置那些文档没写的细节克隆Prometheus仓库后直接运行catkin_make十有八九会失败。需要特别注意工作空间命名必须为prometheus_ws否则启动脚本会报路径错误模型文件权限Gazebo插件需要执行权限chmod x ~/prometheus_ws/src/Prometheus/Simulator/gazebo_simulator/plugins/*PX4通信配置修改mavros_launch/px4.launch中的串口设备名典型错误排查表错误现象可能原因解决方案Gazebo黑屏显卡驱动问题安装NVIDIA闭源驱动PX4无法连接波特率不匹配检查/etc/udev/rules.d配置目标识别失败模型路径错误确认yolov5s.engine文件存在3. 仿真启动关键步骤分解正确的启动顺序就像多米诺骨牌错一步全盘皆输。这是我验证过的流程先启动PX4 SITLcd ~/PX4_Firmware make px4_sitl_default gazebo新终端启动MAVROSroslaunch prometheus_gazebo sitl_control.launch最后运行追踪脚本roslaunch prometheus_gazebo car_tracking.launch避坑要点每个命令都要在新终端运行或使用tmux观察终端输出特别是[WARN]和[ERROR]信息首次启动Gazebo可能需要下载模型建议提前配置离线缓存4. 调试技巧从报错到成功的实战记录当Gazebo终于显示出无人机和小车时我的追踪算法却毫无反应。通过以下方法定位问题检查话题通信rostopic list | grep detection可视化检测结果rqt_image_view /prometheus/target_detection手动测试PID参数rosservice call /prometheus/control/pid_params { x: {p: 0.5, i: 0.01, d: 0.1}, y: {p: 0.5, i: 0.01, d: 0.1}, z: {p: 0.8, i: 0.0, d: 0.2} }性能优化参数我的最终配置control_freq: 50 # Hz max_speed: 3.0 # m/s safety_distance: 1.5 # m5. 进阶实战自定义仿真环境当基础功能跑通后可以尝试修改Gazebo世界文件!-- 在prometheus_gazebo/worlds/中添加自定义障碍物 -- model nameobstacle_box pose2 0 0.5 0 0 0/pose link namelink collision namecollision geometry box size1 1 1/size /box /geometry /collision /link /model扩展建议更换YOLOv5模型为更轻量的版本尝试不同追踪算法如KCF vs SORT添加多机协同仿真场景记得备份工作目录我曾因误删~/.gazebo文件夹不得不重装整个环境。现在我把所有关键配置都保存在Git私有仓库随时可以回退到可用版本。