硬件环路模拟(HITL)
硬件在环(HITL 或 HIL)是一种模拟模式,在这种模式下,正常的 PX4 固件将在真实的飞行控制器硬件上运行。这种方法的好处是可以在真实硬件上测试大部分实际飞行代码。
PX4 支持多旋翼飞行器(使用 jMAVSim 或 Gazebo Classic)和 VTOL(使用 Gazebo Classic)的 HITL。
与 HITL 兼容的机身
目前可兼容的机型与模拟器如下:
机身 | 系统自动启动 | 经典仿真场景Gazebo | jMAVSim |
---|---|---|---|
HIL 四旋翼飞行器 X | 1001 | Y | Y |
HIL 标准 VTOL 四翼飞机 | 1002 | Y | |
通用四旋翼飞行器 x 直升机 | 4001 | Y | Y |
HITL 模拟环境
通过硬件在环 (HITL) 仿真,可在真实硬件上运行普通 PX4 固件。JMAVSim 或 Gazebo Classic(在开发计算机上运行)通过 USB/UART 与飞行控制器硬件相连。模拟器充当网关,在 PX4 和 Gazebo Classic 之间共享 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 时,不会干扰遥控故障安全操作。
配置完成后 关闭 QGroundControl 并断开飞行控制器硬件与计算机的连接。
模拟器专用设置
请按照以下章节中特定模拟器的相应设置步骤进行操作。
经典仿真场景Gazebo
信息
确保 QGroundControl 不运行!
用以下设备建造 PX4 经典仿真场景Gazebo (以构建 Gazebo Classic 插件)。
吁CD <;固件克隆e>; DONT_RUN=1 生产 px4_sitl_default 古董
打开载具模型的 sdf 文件(例如 Tools/simulation/gazebo-classic/sitl_gazebo-classic/models/iris_hitl/iris_hitl.sdf).
更换
串行设备
参数/dev/ttyACM0
如果有必要,请将"......信息
串行设备取决于用于连接载具和计算机的端口(通常为
/dev/ttyACM0
).在 Ubuntu 上检查的简单方法是插入自动驾驶仪,打开终端并键入dmesg | grep "tty";
.正确的设备将是最后显示的设备。设置环境变量
吁消息来源 Tools/simulation/gazebo-classic/setup_gazebo.bash $(pwd) $(pwd) /build/px4_sitl_default
并在 HITL 模式下运行 Gazebo Classic:
吁仿真场景Gazebo Tools/simulation/gazebo-classic/sitl_gazebo-classic/worlds/hitl_iris.world
开始 QGroundControl.它应该能自动连接 PX4 和 Gazebo Classic。
jMAVSim(仅限四旋翼飞行器)
信息
确保 QGroundControl 不运行!
将飞行控制器连接到电脑,等待开机。
在 HITL 模式下运行 jMAVSim:
吁./Tools/simulation/jmavsim/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 至 执行任务 并以其他方式控制载具。