AirSim 代码

AirLib

AirSim代码的大部分 都位于 AirLib. 这是一个独立的库 a self-contained library,你可以使用任何 C++11 编译器进行编译。
AirLib包含以下组件:
物理

  • 物理引擎 Physics engine:这是header-only physics engine? 它旨在快速和可扩展,以实现不同的车辆。
  • 传感器型号Sensor models:这是用于气压计,IMU,GPS和磁力计的 header-only models?
  • 车型Vehicle models:这是车辆配置和型号的 header-only models。
    目前我们已经在X配置中实现了MultiRotor的模型和PX4 QuadRotor的配置。
  • 控制库:AirLib的这一部分为我们的API 提供 抽象基类abstract base class,并为特定的车辆平台(如MavLink)提供 具体实现concrete implementation。 它还具有RPC客户端client 和服务器server的类。

Unreal/Plugins/AirSim

这是项目中唯一依赖于虚幻引擎的部分。 我们已将它隔离,因此我们也可以为其他平台实现模拟器(例如,Unity)。
虚幻代码利用其基于UObject的类(包括蓝图)。The Unreal code takes advantage of its UObject based classes including Blueprints.

  • SimMode_类 SimMode_ classes:我们希望支持各种模拟器模式,例如没有无人机的纯计算机视觉模式。
    SimMode类有助于实现许多不同的模式。

VehiclePawnBase:这是所有车辆 典当 pawn ?可视化的 基类。
VehicleBase:此类提供抽象接口 abstract interface 以实现 渲染组件rendering component(即虚幻棋子),物理组件(即MultiRotor)和控制器(即MavLinkHelper)的组合。

MavLinkCom

这是由我们自己的团队成员Chris Lovett开发的库,它提供了与MavLink设备通信的C ++类。 该库是独立的,可以在任何项目中使用。 有关详细信息,请参阅MavLinkCom。

Sample Programs 示例程序

我们已经创建了一些示例程序来演示如何使用API。 请参阅HelloDrone和DroneShell。
DroneShell演示了如何使用UDP连接到模拟器。 模拟器正在运行服务器(类似于DroneServer)。

Unreal Framework

原图链接
下图说明了虚幻游戏引擎如何加载和调用AirSim:
AirSim 代码_第1张图片

你可能感兴趣的:(▶,自动驾驶)