一、复现前提
1. 硬件:一台组装完成、可通过遥控器正常连接控制的无人机
2. 环境参数:
- 固件版本:px4-1.17
- 飞控型号:pixhawk 6c mini
- 地面站版本:QGC 5.0.8
- 电脑系统:Ubuntu22.04
二、固件HITL模块检测(Check if HITL is in Firmware)
HITL仿真必需的核心模块为pwm_out_sim,该模块不会默认集成在所有PX4固件中,需提前检测是否存在,缺失则无法使用HITL仿真功能。
检测操作步骤:
1. 打开 QGroundControl(QGC地面站)
2. 依次打开:分析工具(Analyze Tools)> Mavlink 控制台
3. 在控制台输入检测指令:
pwm_out_sim status
如图:
4. 结果判断:
- 若返回:
nsh: pwm_out_sim: command not found,说明固件未安装该模块,需要重新编译固件并添加pwm_out_sim模块 - 若正常返回模块状态,说明固件支持HITL仿真,可继续后续配置
三、jMAVSim仿真环境部署
需提前在电脑本地克隆完成PX4-Autopilot源码仓库,再执行以下部署操作
1. 安装依赖
终端依次执行以下命令更新系统、安装编译依赖:
sudo apt update
sudo apt install ant
2. 下载jMAVSim源码
进入PX4源码目录,拉取jMAVSim子模块源码:
cd ~/PX4-Autopilot
git submodule update --init --recursive Tools/simulation/jmavsim/jMAVSim
四、QGC地面站核心配置
1. 设备连接与机型选择
1. 使用USB数据线,将Pixhawk 6c mini飞控与电脑连接
2. 在QGC地面站中选择适配的HITL机型,点击应用并重启,等待飞控重启生效
3. 开启硬件在环仿真模式
2. 关闭自动连接,防止端口抢占
关闭QGC自动连接Pixhawk功能,避免地面站抢占飞控USB端口,导致jMAVSim仿真工具无法连接飞控,仿真启动失败。
3. 手动配置飞控连接参数
手动添加Pixhawk飞控连接,严格匹配连接类型、串口端口、波特率参数,参数错误会导致地面站连接失败、仿真异常。
⚠️ 注意:仅配置手动连接参数,切勿开启自动连接,否则会挤占仿真端口!
五、PX4固件关键参数配置
在QGC参数编辑器中,修改以下两个核心参数,保障HITL仿真正常运行:
- COM_RC_IN_MODE= 3(RC or MAVlink keep first,优先遥控器/MAVLink控制)
- NAV_RCL_ACT= 0(Disabled,关闭仿真模式下的丢控失效保护)
修改完成后保存参数,固件配置全部完成。
六、HITL仿真测试流程
严格按照以下顺序操作,避免端口冲突、连接失败问题
1. 确认飞控已通过USB连接电脑,完全关闭QGC地面站
2. 终端启动jMAVSim HITL仿真程序:
cd ~/PX4-Autopilot
./Tools/simulation/jmavsim/jmavsim_run.sh -q -s -d /dev/ttyACM0 -b 921600 -r 250
3. 仿真程序启动成功后,再打开QGC地面站
4. 仿真连通性验证:查看QGC界面Mavlink数据状态,出现对应连通标识即代表仿真与飞控通信成功
5. 仿真就绪,可通过遥控器控制仿真无人机完成飞行测试
#测试效果
【PX4 HITL 硬件在环仿真完整配置|Pixhawk 6C mini + jMAVSim + QGC 实机联调】https://www.bilibili.com/video/BV1Umpq6LEv2?vd_source=51d8bfa1e3ce3c0eef6991227e316ee8