欢迎光临
我们一直在努力

AirSim 和 Project AirSim 有什么区别?一文看懂两者的异同

AirSim 和 Project AirSim 有什么区别?一文看懂两者的异同

作者:FeiLink

在无人机仿真领域,AirSim 和 Project AirSim 是两个经常被提及的开源项目。它们具有技术渊源,功能也存在较多重叠,但在软件架构、接口设计和开发维护方面存在明显区别。

那么,Project AirSim 是 AirSim 的简单升级版吗?两者能否通用?本文将从多个方面进行对比。

一、什么是 AirSim 和 Project AirSim?

1. AirSim

AirSim 是微软研究院开发的开源仿真平台,主要用于无人机、汽车等自主系统的仿真研究。它基于 Unreal Engine 构建,能够模拟载具运动、三维环境和多种传感器数据,并提供 Python、C++ 等 API,方便开发者通过程序控制虚拟载具。

AirSim 支持与 PX4、ArduPilot 等飞控软件集成,可用于自动驾驶、计算机视觉、强化学习和无人机控制等研究。

项目地址:Microsoft AirSim

2. Project AirSim

Project AirSim 是在 AirSim 技术基础上发展而来的自主系统仿真平台。该项目最初由微软开发,微软停止相关项目计划后,由曾参与相关开发的工程师通过 IAMAI Consulting Corp. 继续维护和扩展开源版本。

Project AirSim 在保留无人机仿真、传感器模拟和程序控制等核心能力的同时,进一步调整了软件架构,并扩展了飞行器模型、仿真运行方式和系统集成能力。

项目地址:IAMAI Project AirSim

二、AirSim 和 Project AirSim 的主要区别

对比维度AirSimProject AirSim
开发与维护 微软原版项目,已停止常规更新 目前由 IAMAI 维护开源版本
软件架构 主要作为 Unreal Engine 插件运行 模块化架构,支持独立 Runtime 和 Unreal Engine 集成
图形引擎 主要基于 Unreal Engine,另有实验性 Unity 版本 支持 Unreal Engine 5;独立 Runtime 可不依赖图形引擎
控制接口 经典 AirSim Python、C++ API 采用新的 Client、World、Drone 等对象接口
场景配置 常见 settings.json 使用模块化场景配置,例如 .jsonc
物理模型 支持多旋翼、汽车等仿真 支持多种物理模型及更多类型的飞行器和地面载具
ROS 2 集成 有相关封装及社区方案 提供独立的 ROS 2 C++ Bridge
兼容性 适合运行既有 AirSim 项目 不保证与原版 API 和配置文件直接兼容

参考:AirSim 官方仓库、Project AirSim 官方文档。

三、两者有哪些相同点?

虽然软件架构存在差异,但两个项目的核心目标基本一致。

1. 都支持无人机仿真

两者都可以模拟无人机的运动过程,获取位置、速度、姿态等状态信息,并通过程序发送控制指令。

2. 都支持传感器数据模拟

两者均可用于生成或获取相机图像、深度信息以及其他传感器数据,支持计算机视觉和自主控制算法的测试。

3. 都能够与外部控制系统集成

两者都可以通过程序接口与外部算法交互,并支持与 PX4 等飞控软件结合使用。开发者可以在虚拟环境中测试控制策略,而不必始终依赖真实无人机。

4. 都面向自主系统研究

无论是自动飞行、目标检测、路径规划,还是多载具协同,都可以利用这类仿真平台开展实验。

四、为什么不能直接把 AirSim 代码用于 Project AirSim?

最主要的原因是:Project AirSim 并不以严格兼容原版 AirSim API 为目标。

例如,原版 AirSim 常使用 MultirotorClient 创建客户端,并通过 takeoffAsync() 等方法控制无人机;Project AirSim 则采用不同的客户端、场景和载具对象,以及不同的异步调用方式。

因此,即使两个项目都支持 Python 控制无人机,原版代码也不能保证直接运行在 Project AirSim 中。

此外,场景配置文件、仿真环境启动方式和部分集成接口也存在差异。迁移时通常需要重新配置环境,并根据新 API 修改代码。

具体迁移方法可参考:Project AirSim 迁移指南。

五、应该选择哪个平台?

选择平台时,需要根据学习目标和项目需求进行判断。

  • 选择 AirSim: 如果需要复现已有论文、跟随现成教程学习,或者运行依赖原版 API 的项目,AirSim 仍具有参考价值。
  • 选择 Project AirSim: 如果希望使用持续维护的开源版本,开展新的仿真开发,或者利用模块化架构和独立 Runtime 等能力,可以优先评估 Project AirSim。
  • 进行平台迁移: 如果已有 AirSim 项目,不必直接废弃原有代码。可以先评估新平台的接口、功能和环境要求,再逐步迁移。

需要注意,Project AirSim 的具体功能取决于所使用的版本和发布包。官方仓库的最新开发分支与已发布的预编译版本可能存在差异,使用前应核对对应版本的文档。

六、总结

AirSim 和 Project AirSim 具有明确的技术继承关系,核心目标都是为无人机及其他自主系统提供可编程的仿真环境。

两者最大的区别并不是能否模拟无人机,而是软件架构、API 设计、运行方式和后续维护模式。

AirSim 具有较丰富的历史教程和现有项目资源;Project AirSim 则在架构模块化、独立运行环境和系统集成方面进行了扩展。二者并非完全兼容的不同版本,选择时应综合考虑已有代码、教程资源、运行环境和长期维护需求。

对于初学者而言,理解两者的共同原理有助于建立无人机仿真的整体认识,而明确 API 和配置方式的差异,则能够避免在不同平台之间迁移时产生不必要的重复工作。


参考资料

  • Microsoft AirSim GitHub
  • Project AirSim GitHub
  • Project AirSim 官方文档
  • 作者:FeiLink

    本文部分内容由 AI 辅助生成,并经人工整理与验证,仅供参考学习,欢迎指出错误与不足之处。

    赞(0)
    未经允许不得转载:171主机测评 » AirSim 和 Project AirSim 有什么区别?一文看懂两者的异同
    分享到: 更多 (0)

    评论 抢沙发

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址