模拟

../_images/simulation-landingpage.jpg

模拟可以安全地测试实验代码和设置。撞毁虚拟载具要比撞毁真实载具便宜得多!

概述

模拟是通过使用飞行器的飞行动力学模型(FDM)来实现的,以模拟飞行器运动所涉及的物理现象。它接收来自运行 ArduPilot 固件的 SITL(环路软件)程序的输入(即固件的伺服/电机输出),并将这些输入产生的载具状态、位置、速度等输出回固件模拟。就像现实世界中的传感器一样。

飞行员可通过操纵杆、专用模拟控制器盒(如 Interlink)或地面控制站程序(如 MAVProxy 或 Mission Planner)发出的 MAVLink 命令进行控制。

如下图所示:

../_images/SITL.png

ArduPilot 提供了一个本地固件模拟器和 FDM 程序(均由 sim_vehicle.py 启动),通常简称为 SITLArduPilot 的固件模拟器和 FDM 也可由 Mission Planner 用于 SITL 模拟。ArduPilot 的固件模拟器和 FDM 也可用于 Mission Planner 的 SITL 模拟。

此外,ArduPilot 固件模拟器元件还可与其他通常用作独立飞行/载具模拟器的 FDM/Graphics 程序连接,以获得更逼真的物理模型和/或高清载具图形,如 RealFlight 或 X-Plane。

提示

对于代码开发人员,我们建议从 ArduPilot 的本地 循环软件(SITL) 因为它的设置最简单,不需要飞行控制器,而且支持所有飞行器类型。对于非开发人员来说,使用 Mission Planners 集成模拟器不需要设置代码构建环境,只需使用现有代码即可探索飞行器的模拟行为。

最常用的模拟器有

  • SITL(循环软件) 是开发人员最常用的模拟器。它是一个简单的模拟器,内置在 ArduPilot 的所有 SITL 版本中。它用于 自动检测器 和下面的其他模拟器实际上是在 SITL 的基础上构建的

  • Mission Planner地面站 可在 Windows 中使用Mission Planner地面站作为 GCS 进行模拟。

  • gazebo 是 DARPA 官方虚拟机器人模拟器

  • XPlane-10 具有丰富 3D 界面的商用飞行模拟器

  • XPlane-10翱翔 在 XPlane-10 上翱翔

  • RealFlight 商业飞行模拟器,具有丰富的 3D 界面和设计定制飞行器的能力

  • 莫尔斯 研究中常用的机器人仿真环境

  • 重播 没有图形界面,但允许从数据闪存日志重新运行主程序

  • JSBSim 是一款复杂的开源飞机和多旋翼模拟器,无图形界面。它可用于多种机身。

  • 空中模拟 是一款开源、跨平台的无人机&载具模拟器,基于虚幻引擎构建,可进行物理和视觉上的逼真模拟

  • 翱翔的无声之翼

  • MATLAB 和 Simulink 是用于开发算法和绘制数据的数值计算环境。 MathWorks.

  • JSON 接口 JSON 接口是一种通用接口协议,旨在方便物理后台开发人员实施。有 Python 和 MATLAB 示例。

  • Webots 是一个跨平台的机器人模拟器,可快速设置和运行。它目前有多旋翼飞行器和漫游车的示例。

较少使用的模拟器包括

  • 最后一封信 是一款较为简单的模拟器(仅限固定翼),对 CPU 的要求低于大多数其他模拟器。

  • CRRCSim 是一种不太常用的固定翼和旋翼飞行器模拟器。

  • SCRIMMAGE 是一款开源载具模拟器,重点关注协作机器人技术

模拟器列表(以便在菜单中显示):