飞行控制器#

什么是飞行控制器?#

“等等!”你可能会问,“为什么模拟器需要飞行控制器?”。飞行控制器的主要工作是接收期望状态作为输入,利用传感器数据估计实际状态,然后驱动执行器,使实际状态尽可能接近期望状态。以四旋翼飞行器为例,期望状态可以指定为横滚、俯仰和偏航。然后它利用陀螺仪和加速度计估计实际的横滚、俯仰和偏航。接着它生成适当的电机信号,使实际状态变为期望状态。你可以在我们的论文中找到更深入的解释。

模拟器如何使用飞行控制器?#

模拟器接收飞行控制器生成的电机信号,以计算每个执行器(即四旋翼飞行器螺旋桨)产生的力和推力。然后,物理引擎利用这些信息计算飞行器的动力学特性。这反过来又生成模拟传感器数据并将其反馈给飞行控制器。你可以在我们的论文中找到更深入的解释。

什么是硬件在环和软件在环?#

硬件在环 (HITL 或 HIL) 意味着飞行控制器在实际硬件(如 Naze32 或 Pixhawk 芯片)上运行。然后你通过 USB 端口将此硬件连接到 PC。模拟器与设备通信以获取执行器信号并发送模拟传感器数据。这显然是你能最接近真实情况的方式。然而,它通常需要更多的设置步骤,并且通常难以调试。一个大问题是模拟器时钟和设备时钟以它们自己的速度和精度运行。此外,USB 连接(通常只有 USB 2.0)可能不足以进行实时通信。

在“软件在环”仿真 (SITL 或 SIL) 模式下,固件在你的计算机上运行,而不是在单独的板子上。这通常是没问题的,只是你现在不会接触到特定于你的设备的任何代码路径。此外,你的任何代码现在都不会使用通常由专用硬件板提供的实时时钟。对于设计良好的、带有软件时钟的飞行控制器,这些通常不是令人担忧的问题。

支持哪些飞行控制器?#

AirSim 内置了名为 simple_flight 的飞行控制器,并且默认使用它。你不需要做任何事情来使用或配置它。AirSim 还支持 PX4ArduPilot 作为外部飞行控制器,供高级用户使用。

不使用飞行控制器运行 AirSim#

是的,现在可以在没有飞行控制器的情况下使用 AirSim。请参阅此处的说明,了解如何使用所谓的“计算机视觉”模式。如果你不需要车辆动力学,我们强烈建议使用此模式。