这个文档说明如何在 DJI EP 工作空间中设置和运行基于 Prometheus 和 PX4 的无人机仿真环境。
Dji_EP_ws/
├── src/ # ROS 包源码
│ └── sim_pkg/ # 仿真包
├── devel/ # 编译输出
├── build/ # 编译文件
├── setup_env.bash # 环境设置脚本 ⭐
├── start_simulation.bash # 仿真启动脚本 ⭐
├── test_environment.bash # 环境测试脚本 ⭐
├── workspace_config.env # 配置文件模板
└── README_SIMULATION.md # 本文档
首先测试你的环境是否正确配置:
cd ~/git/me/Dji_EP_ws ./test_environment.bash
如果环境测试通过,启动完整仿真:
./start_simulation.bash
脚本使用以下默认路径:
- DJI EP 工作空间:
~/git/me/Dji_EP_ws - Prometheus 路径:
~/pixhawk4/ - PX4 路径:
~/pixhawk4/ - Prometheus MAVROS:
~/prometheus_mavros/
如果你的安装路径不同,可以:
-
复制配置模板:
cp workspace_config.env.example workspace_config.env
-
编辑
workspace_config.env文件,修改路径:# 示例自定义配置 USER_WORKSPACE="${HOME}/my_custom_workspace" PROMETHEUS_PATH="${HOME}/my_prometheus" PX4_PATH="${HOME}/my_px4"
在运行脚本前设置环境变量:
export USER_WORKSPACE="${HOME}/my_workspace" export PROMETHEUS_PATH="${HOME}/my_prometheus" ./start_simulation.bash
仿真系统包含以下组件,分别在不同的终端标签页中启动:
- 启动 ROS Master 节点
- 提供 ROS 通信基础设施
- 启动 Gazebo 物理仿真环境
- 加载无人机模型和场景
- 启动 PX4 SITL (Software In The Loop)
- 启动 MAVROS 通信节点
- 启动 Prometheus 无人机控制系统
- 提供高级飞行控制接口
- 启动自动起飞降落演示程序
- 展示基本飞行任务
原因: PX4 包路径未正确设置
解决方案:
# 测试 PX4 包是否可找到 source ./setup_env.bash rospack find px4
如果仍然报错,检查:
- Prometheus 和 PX4 是否正确安装
workspace_config.env中的路径是否正确
原因: Prometheus 包未正确安装或路径错误
解决方案:
- 确认 Prometheus 已安装在
${PROMETHEUS_PATH}/Prometheus/ - 确认该目录下有
devel/setup.bash文件 - 重新运行环境测试
原因: Gazebo 模型路径或插件路径错误
解决方案:
# 检查 Gazebo 环境变量 echo $GAZEBO_MODEL_PATH echo $GAZEBO_PLUGIN_PATH
如果 DJI EP 工作空间未正确编译:
cd ~/git/me/Dji_EP_ws catkin_make # 或者使用 catkin tools catkin build
./test_environment.bash
这个脚本会检查:
- ROS 环境是否正确
- 所有必需的包是否可找到
- Gazebo 环境变量是否设置
- 工作空间结构是否完整
source ./setup_env.bash # 然后手动测试各个组件 roslaunch sim_pkg all_simulate_gazebo.launch
- 在
src/目录下创建新的 ROS 包 - 重新编译工作空间:
catkin_make - 修改
start_simulation.bash添加新的启动命令
仿真参数可以在以下位置修改:
- 无人机模型:
src/sim_pkg/launch/sitl_px4_indoor.launch - Gazebo 世界:
src/sim_pkg/worlds/ - 控制参数:
src/sim_pkg/config/
| 变量名 | 说明 | 默认值 |
|---|---|---|
USER_WORKSPACE |
用户工作空间根目录 | ${HOME}/git/me |
DJI_EP_WS |
DJI EP 工作空间目录 | ${USER_WORKSPACE}/Dji_EP_ws |
PROMETHEUS_PATH |
Prometheus 安装路径 | ${HOME}/pixhawk4 |
PX4_PATH |
PX4 安装路径 | ${HOME}/pixhawk4 |
PROMETHEUS_MAVROS_PATH |
Prometheus MAVROS 路径 | ${HOME}/prometheus_mavros |
如果遇到问题:
- 首先运行环境测试:
./test_environment.bash - 检查各个终端标签页的错误信息
- 确认所有依赖都已正确安装
- 检查路径配置是否正确
最后更新: 2024年