飞行控制器#

什么是飞行控制器?#

“等等!”你可能会问,“为什么模拟器需要飞行控制器?”飞行控制器的主要作用是接收期望状态作为输入,利用传感器数据估算实际状态,然后驱动执行器,使实际状态尽可能接近期望状态。对于四旋翼飞行器,期望状态可以指定为滚转、俯仰和偏航。然后,它使用陀螺仪和加速度计估算实际的滚转、俯仰和偏航。之后,它会生成相应的电机信号,使实际状态变为期望状态。更多深入内容,请参阅 论文

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

模拟器利用飞行控制器产生的电机信号来计算每个执行器(例如四旋翼飞行器的螺旋桨)产生的力和推力。然后,物理引擎会利用这些数据来计算飞行器的动力学特性。这反过来又会生成模拟传感器数据并将其反馈给飞行控制器。您可以阅读 论文,了解更多详细信息。

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

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

在“软件在环”仿真(SITL 或 SIL)模式下,固件在您的计算机上运行,而不是在单独的电路板上运行。这通常没有问题,只是您现在无需接触任何特定于设备的代码路径。此外,您的代码现在不再使用通常由专用硬件板提供的实时时钟运行。对于设计精良且带有软件时钟的飞行控制器来说,这些问题通常不值得担心。

支持哪些飞行控制器?#

AirSim 内置了名为 simple_flight 的飞行控制器,并默认使用。您无需进行任何操作即可使用或配置它。AirSim 还支持 PX4ArduPilot 作为高级用户的外部飞行控制器。

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

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