Skip to content

硬件内仿真(SIH)

PX4 v1.9 (多旋翼)PX4 v1.13 (多旋翼、垂直起降、固定翼)

WARNING

此仿真器由社区提供支持和维护(详见社区支持的仿真器)。 它可能与当前版本的 PX4 兼容,也可能不兼容(已知在 PX4 v1.14 中可用)。

有关核心开发团队支持的开发环境和工具的信息,请参阅工具链安装

硬件内仿真(SIH)是四旋翼、固定翼飞行器(飞机)和垂直起降倾转翼飞行器的 硬件在环仿真(HITL) 的替代方案。

新的 PX4 用户可以使用 SIH 来熟悉 PX4 及其不同的模式和功能,当然也可以在仿真中使用 RC 控制器学习操控飞行器飞行,这在软件在环仿真(SITL)中是无法实现的。

综述

在 SIH 中,整个仿真过程都在嵌入式硬件上运行,包括控制器、状态估计器和仿真器。桌面计算机仅用于显示虚拟飞行器。

仿真器 MAVLink API

兼容性

  • SIH 与除基于 FMUv2 的所有 PX4 支持的板载硬件兼容。
  • 从 PX4 v1.9 开始支持四旋翼的 SIH。
  • 从 PX4 v1.13 开始支持固定翼(飞机)和垂直起降倾转翼飞行器的 SIH。
  • 从 PX4 v1.14 开始支持以 SITL 模式运行 SIH(无需硬件)。

优点

与 HITL 相比,SIH 具有以下优点:

  • 通过避免与计算机的双向连接,确保了同步计时。因此,用户不需要性能强大的桌面计算机。
  • 整个仿真过程都在 PX4 环境中进行。熟悉 PX4 的开发人员可以更轻松地将自己的数学模型集成到仿真器中。例如,他们可以修改空气动力学模型、传感器的噪声水平,甚至添加要仿真的传感器。
  • 可以通过 SIH 参数 轻松修改代表飞行器的物理参数(如质量、惯性和最大推力)。

要求

要运行 SIH,你需要以下设备:

从 PX4 v1.14 开始,你可以以 “SITL 模式” 运行 SIH,在这种情况下,不需要飞行控制器。

启动 SIH

要设置/启动 SIH,请按以下步骤操作:

  1. 使用 USB 电缆将飞行控制器连接到桌面计算机。
  2. 打开 QGroundControl,等待飞行控制器启动并连接。
  3. 打开 飞行器设置 > 机架,然后选择所需的机架:

然后自动驾驶仪将重启。重启时会启动 sih 模块,飞行器应该会显示在地面站地图上。

WARNING

飞机需要在手动模式下以全油门起飞。此外,如果飞机坠毁,状态估计器可能会失去定位。

显示/可视化(可选)

可以使用 jMAVSim 作为可视化工具来显示 SIH 仿真的飞行器。

TIP

SIH 不需要可视化工具 —— 你可以在不使用可视化工具的情况下通过 QGroundControl 连接并操控飞行器。

要显示仿真的飞行器,请按以下步骤操作:

  1. 关闭 QGroundControl(如果已打开)。

  2. 拔下并重新插入飞行控制器(等待几秒钟让其启动)。

  3. 在终端中调用 jmavsim_run.sh 脚本启动 jMAVSim:

    sh
    ./Tools/simulation/jmavsim/jmavsim_run.sh -q -d /dev/ttyACM0 -b 2000000 -o

    其中,各标志的含义如下:

    • -q:允许与 QGroundControl 通信(可选)。
    • -d:在 Linux 上启动串行设备 /dev/ttyACM0。在 macOS 上,该设备为 /dev/tty.usbmodem1
    • -b:将串行波特率设置为 2000000
    • -o:以 仅显示 模式启动 jMAVSim(即关闭物理引擎,jMAVSim 仅实时显示 SIH 提供的轨迹)。
    • 添加 -a 标志以显示飞机,或 -t 标志以显示倾转翼飞行器。如果不添加此标志,默认显示四旋翼。
  4. 几秒钟后,可以再次打开 QGroundControl

此时,系统可以解锁并飞行。可以在 jMAVSim 中以及 QGC 的 飞行 视图中观察到飞行器的移动。

以 SITL 模式运行 SIH(无需飞行控制器)

从 v1.14 开始,SIH 可以以 SITL(软件在环)模式运行。这意味着仿真代码将在笔记本电脑/计算机上执行,而不是在飞行控制器上执行,类似于 Gazebo 或 jMAVSim。在这种情况下,你不需要飞行控制器硬件。

要以 SITL 模式运行 SIH,请按以下步骤操作:

  1. 安装 PX4 开发工具链
  2. 在 PX4-Autopilot 仓库的根目录下,为每种飞行器类型运行相应的 make 命令:
    • 四旋翼:

      sh
      make px4_sitl sihsim_quadx
    • 固定翼(飞机):

      sh
      make px4_sitl sihsim_airplane
    • XVert 垂直起降倾转翼飞行器:

      sh
      make px4_sitl sihsim_xvert

更改仿真速度

SITL 允许仿真速度快于实时速度。要使飞机仿真速度比实时速度快 10 倍,请运行以下命令:

sh
PX4_SIM_SPEED_FACTOR=10 make px4_sitl sihsim_airplane

要在 SITL 模式下在 jMAVSim 中显示飞行器,请在另一个终端中输入以下命令:

sh
./Tools/simulation/jmavsim/jmavsim_run.sh -p 19410 -u -q -o
  • 添加 -a 标志以显示飞机,或 -t 标志以显示倾转翼飞行器。如果不添加此标志,默认显示四旋翼。

设置自定义起飞位置

可以使用环境变量设置 SITL 模式下 SIH 的起飞位置。这将覆盖默认的起飞位置。

需要设置的变量为:PX4_HOME_LATPX4_HOME_LONPX4_HOME_ALT

例如:

sh
export PX4_HOME_LAT=28.452386
export PX4_HOME_LON=-13.867138
export PX4_HOME_ALT=28.5
make px4_sitl sihsim_quadx

动力学模型

各种飞行器的动力学模型如下:

  • 四旋翼:PDF 报告
  • 固定翼:受博士论文 “Dynamics modeling of agile fixed-wing unmanned aerial vehicles.”(Khan, Waqas,导师 Nahon, Meyer,麦吉尔大学,博士论文,2016 年)的启发。
  • 倾转翼飞行器:受硕士论文 “Modeling and control of a flying wing tailsitter unmanned aerial vehicle.”(Chiappinelli, Romain,导师 Nahon, Meyer,麦吉尔大学,硕士论文,2018 年)的启发。

视频

致谢

SIH 最初由 Coriolis g Corporation 开发。飞机模型和倾转翼飞行器模型由 Altitude R&D inc. 添加。两家公司均为加拿大公司:

  • Coriolis g 开发了一种基于被动耦合系统的新型垂直起降(VTOL)飞行器。
  • Altitude R&D 专注于动力学、控制和实时仿真(目前迁至苏黎世)。

该仿真器根据 BSD 许可证免费发布。