# 硬件环路模拟(HITL)
硬件在环(HITL 或 HIL)是一种模拟模式,在这种模式下,正常的 PX4 固件将在真实的飞行控制器硬件上运行。这种方法的好处是可以在真实硬件上测试大部分实际飞行代码。
PX4 支持多旋翼飞行器(使用 jMAVSim 或 Gazebo)和 VTOL(使用 Gazebo)的 HITL。
# 与 HITL 兼容的机身
目前可兼容的机型与模拟器如下:
机身 | 系统自动启动 | 仿真场景Gazebo | jMAVSim |
---|---|---|---|
HIL 飞机 | 1000 | Y | |
HIL 四旋翼飞行器 X | 1001 | Y | Y |
HIL 标准 VTOL 四翼飞机 | 1002 | Y | |
通用四旋翼飞行器 x 直升机 | 4001 | Y | Y |
大疆创新火轮 f450 | 4011 | Y | Y |
# HITL 模拟环境
通过硬件在环 (HITL) 仿真,可在真实硬件上运行普通 PX4 固件。JMAVSim 或 Gazebo(在开发计算机上运行)通过 USB/UART 与飞行控制器硬件相连。模拟器充当网关,在 PX4 和 Gazebo 之间共享 MAVLink 数据。 QGroundControl.
备注
如果飞行控制器支持联网并使用稳定、低延迟的连接(例如有线以太网连接,WiFi 通常不够可靠),模拟器也可以通过 UDP 连接。例如,在通过以太网与计算机连接的 Raspberry Pi 上运行 PX4 时就测试过这种配置(启动配置包括运行 jMAVSim 的命令,可参见 这里 (打开新窗口)).
下图显示了模拟环境:
- 选择 HITL 配置(通过 QGroundControl),并没有启动任何真正的传感器。
- jMAVSim 或 仿真场景Gazebo 通过 USB 与飞行控制器连接。
- 模拟器连接到 QGroundControl 通过 UDP 将其 MAVLink 信息桥接到 PX4。
- 仿真场景Gazebo 和 jMAVSim 还可以连接到机外 API,并将 MAVLink 信息桥接到 PX4。
- (可选)串行连接可用于连接操纵杆/游戏手柄硬件,通过 QGroundControl.
# HITL vs SITL
SITL 在模拟环境下的开发计算机上运行,并使用专门为该环境生成的固件。除了模拟驱动程序提供来自模拟器的虚假环境数据外,系统行为正常。
相比之下,HITL 以 HITL 模式在普通硬件上运行普通 PX4 固件。模拟数据进入系统的时间点与 SITL 不同。指挥官和传感器等核心模块在启动时具有 HITL 模式,可绕过某些正常功能。
总之,HITL 使用标准固件在实际硬件上运行 PX4,而 SITL 实际上执行更多的标准系统代码。
# 设置 HITL
# PX4 配置
将自动驾驶仪直接连接到 QGroundControl 通过 USB。
启用 HITL 模式
开放 设置 > 安全 节。
选择 已启用 从 启用 HITL 名单:
选择机身
开放 设置 > 机身
选择一个 兼容机身 您要测试的内容。然后点击 应用和重启 右上方的 机身设置 page.
如有需要,校准遥控或操纵杆。
设置 UDP
根据 一般情况 选项卡,取消选中所有 自动连接 箱除外 UDP.
(可选) 配置操纵杆和故障安全。设置如下 参数 以便使用操纵杆代替遥控发射器:
- COM_RC_IN_MODE 改为 "操纵杆/无 RC 检查"。这将允许操纵杆输入并禁用 RC 输入检查。
- NAV_RCL_ACT 禁用"。这样可以确保在不使用无线电控制器运行 HITL 时,不会干扰遥控故障安全操作。
TIP
QGroundControl 用户指南 也有关于 操纵杆 (打开新窗口) 和 虚拟操纵杆 (打开新窗口) 设置。
配置完成后 关闭 QGroundControl 并断开飞行控制器硬件与计算机的连接。
# 模拟器专用设置
请按照以下章节中特定模拟器的相应设置步骤进行操作。
# 仿真场景Gazebo
备注
确保 QGroundControl 不运行!
使用 Gazebo 创建 PX4(以便创建 Gazebo 插件)。
CD <;固件克隆>; DONT_RUN=1 生产 px4_sitl_default 仿真场景Gazebo
打开载具模型的 sdf 文件(例如 Tools/sitl_gazebo/models/iris_hitl/iris_hitl.sdf).
更换
串行设备
参数/dev/ttyACM0
如果有必要,请将"......备注
串行设备取决于用于连接载具和计算机的端口(通常为
/dev/ttyACM0
).在 Ubuntu 上检查的简单方法是插入自动驾驶仪,打开终端并键入dmesg | grep "tty";
.正确的设备将是最后显示的设备。设置环境变量
消息来源 工具/setup_gazebo.bash $(pwd) $(pwd)/build/px4_sitl_default
并在 HITL 模式下运行 Gazebo:
gazebo Tools/sitl_gazebo/worlds/hitl_iris.world
开始 QGroundControl.它应该能自动连接 PX4 和 Gazebo。
# jMAVSim(仅限四旋翼飞行器)
备注
确保 QGroundControl 不运行!
将飞行控制器连接到电脑,等待开机。
在 HITL 模式下运行 jMAVSim:
./Tools/jmavsim_run.sh -q -s -d /dev/ttyACM0 -b 921600 -r 250
备注
替换串行端口名称
/dev/ttyACM0
视情况而定。在 macOS 上,该端口为/dev/tty.usbmodem1
.在 Windows 系统(包括 Cygwin)中,应该是 COM1 或其他端口,请在 Windows 设备管理器中检查连接情况。开始 QGroundControl.它应该能自动连接 PX4 和 jMAVSim。
# 在 HITL 中执行自主飞行任务
您应该能够使用 QGroundControl 至 执行任务 (打开新窗口) 并以其他方式控制载具。