硬件内仿真(SIH)
PX4 v1.9 (多旋翼)PX4 v1.13 (多旋翼、垂直起降、固定翼)WARNING
此仿真器由社区提供支持和维护(详见社区支持的仿真器)。 它可能与当前版本的 PX4 兼容,也可能不兼容(已知在 PX4 v1.14 中可用)。
有关核心开发团队支持的开发环境和工具的信息,请参阅工具链安装。
硬件内仿真(SIH)是四旋翼、固定翼飞行器(飞机)和垂直起降倾转翼飞行器的 硬件在环仿真(HITL) 的替代方案。
新的 PX4 用户可以使用 SIH 来熟悉 PX4 及其不同的模式和功能,当然也可以在仿真中使用 RC 控制器学习操控飞行器飞行,这在软件在环仿真(SITL)中是无法实现的。
综述
在 SIH 中,整个仿真过程都在嵌入式硬件上运行,包括控制器、状态估计器和仿真器。桌面计算机仅用于显示虚拟飞行器。
兼容性
- 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,请按以下步骤操作:
- 使用 USB 电缆将飞行控制器连接到桌面计算机。
- 打开 QGroundControl,等待飞行控制器启动并连接。
- 打开 飞行器设置 > 机架,然后选择所需的机架:
然后自动驾驶仪将重启。重启时会启动 sih
模块,飞行器应该会显示在地面站地图上。
WARNING
飞机需要在手动模式下以全油门起飞。此外,如果飞机坠毁,状态估计器可能会失去定位。
显示/可视化(可选)
可以使用 jMAVSim 作为可视化工具来显示 SIH 仿真的飞行器。
TIP
SIH 不需要可视化工具 —— 你可以在不使用可视化工具的情况下通过 QGroundControl 连接并操控飞行器。
要显示仿真的飞行器,请按以下步骤操作:
关闭 QGroundControl(如果已打开)。
拔下并重新插入飞行控制器(等待几秒钟让其启动)。
在终端中调用 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
标志以显示倾转翼飞行器。如果不添加此标志,默认显示四旋翼。
几秒钟后,可以再次打开 QGroundControl。
此时,系统可以解锁并飞行。可以在 jMAVSim 中以及 QGC 的 飞行 视图中观察到飞行器的移动。
以 SITL 模式运行 SIH(无需飞行控制器)
从 v1.14 开始,SIH 可以以 SITL(软件在环)模式运行。这意味着仿真代码将在笔记本电脑/计算机上执行,而不是在飞行控制器上执行,类似于 Gazebo 或 jMAVSim。在这种情况下,你不需要飞行控制器硬件。
要以 SITL 模式运行 SIH,请按以下步骤操作:
- 安装 PX4 开发工具链。
- 在 PX4-Autopilot 仓库的根目录下,为每种飞行器类型运行相应的 make 命令:
四旋翼:
shmake px4_sitl sihsim_quadx
固定翼(飞机):
shmake px4_sitl sihsim_airplane
XVert 垂直起降倾转翼飞行器:
shmake px4_sitl sihsim_xvert
更改仿真速度
SITL 允许仿真速度快于实时速度。要使飞机仿真速度比实时速度快 10 倍,请运行以下命令:
PX4_SIM_SPEED_FACTOR=10 make px4_sitl sihsim_airplane
要在 SITL 模式下在 jMAVSim 中显示飞行器,请在另一个终端中输入以下命令:
./Tools/simulation/jmavsim/jmavsim_run.sh -p 19410 -u -q -o
- 添加
-a
标志以显示飞机,或-t
标志以显示倾转翼飞行器。如果不添加此标志,默认显示四旋翼。
设置自定义起飞位置
可以使用环境变量设置 SITL 模式下 SIH 的起飞位置。这将覆盖默认的起飞位置。
需要设置的变量为:PX4_HOME_LAT
、PX4_HOME_LON
和 PX4_HOME_ALT
。
例如:
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 许可证免费发布。