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_LAT、PX4_HOME_LON 和 PX4_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 许可证免费发布。