飞行控制器¶
什么是飞行控制器?¶
“等一下!”你可能会问,“为什么模拟器需要飞行控制器?”飞行控制器的主要任务是接收 期望状态 作为输入,利用传感器数据估计 实际状态,然后以某种方式驱动执行器,使实际状态尽量接近期望状态。对于四旋翼,期望状态可以指定为滚转、俯仰和偏航。例如,它会使用陀螺仪和加速度计估计实际的滚转、俯仰和偏航。然后,它会生成适当的电机信号,使实际状态变为期望状态。你可以在 我们的论文 中找到更详细的信息。
模拟器如何使用飞行控制器?¶
模拟器使用飞行控制器生成的电机信号来计算每个执行器(即四旋翼的螺旋桨)产生的力和推力。这个信息随后被物理引擎用于计算飞行器的动力学属性。接着,会生成模拟的传感器数据并反馈给飞行控制器。你可以在 我们的论文 中找到更详细的信息。
什么是硬件在环(HITL)和软件在环(SITL)?¶
硬件在环(HITL或HIL)意味着飞行控制器在实际硬件上运行,如 Naze32 或 Pixhawk 芯片。你需要通过 USB 端口将该硬件连接到 PC。模拟器与设备通信以检索执行器信号,并发送模拟的传感器数据。这显然是最接近真实情况的方式。然而,它通常需要更多的设置步骤,并且通常难以调试。一个主要的问题是,模拟器时钟和设备时钟以各自的速度和准确度运行。此外,USB 连接(通常只有 USB 2.0)可能不足以进行实时通信。
在“软件在环”(SITL或SIL)仿真模式下,固件在你的计算机上运行,而不是在单独的板上。这通常没问题,只是你现在不会接触到任何特定于你设备的代码路径。而且,你的代码现在无法使用通常由专用硬件板提供的实时时钟。对于设计良好的具有软件时钟的飞行控制器,这通常不是问题。
支持哪些飞行控制器?¶
AirSim 内置了一个名为 simple_flight 的飞行控制器,默认使用这个控制器。你无需进行任何操作或配置即可使用它。对于高级用户,AirSim 也支持 PX4 和 ArduPilot 作为外部飞行控制器。
在不使用飞行控制器的情况下使用 AirSim¶
是的,现在可以在不使用飞行控制器的情况下使用 AirSim。请参阅 此处的说明 了解如何使用所谓的“计算机视觉”模式。如果你不需要飞行器动力学,我们强烈建议使用此模式。