首页/文章/ 详情

让无人机飞入自动驾驶世界:南科大开源CARLA-Air,一个进程搞定空地协同仿真

4月前浏览1240

空地一体化仿真平台


低空经济正在加速起飞

无人机配送、空中巡检、空地协同救援等场景层出不穷。但一个尴尬的现实是:当研究者需要让无人机和自动驾驶汽车在同一个城市场景中协同工作时,却找不到一个好用的仿真平台

自动驾驶领域的"明星"仿真器CARLA,拥有逼真的城市街景和丰富的交通流,却飞不了无人机;无人机仿真器AirSim,飞行物理精确,却没有真实的地面交通和行人。

以往,研究者只能用"桥接"的方式把两者勉强拼在一起,但跨进程通信带来的延迟和时空不一致,让精密的空地协同实验几乎无从谈起。

为了彻底打通天地之间的仿真壁垒,南方科技大学的研究团队联合深圳市机器人与计算机视觉重点实验室提出了CARLA-Air——一个在单个Unreal Engine进程中同时运行CARLA和AirSim的开源统一仿真平台,让空地协同的具身智能研究真正成为可能

该项目发布当日即登顶 HuggingFace 每日论文关注榜首,并在数周内收获 GitHub 400+ Stars。研究团队已开源全部代码并提供预编译打包文件,下载后无需配置环境,一键即可运行(文末附链接)


 
1

"一山不容二虎"?组合式设计巧解引擎底层冲突

要理解CARLA-Air的核心创新,首先需要了解一个Unreal Engine 4(UE4)的底层限制:每个世界只能有一个活跃的Game Mode。CARLA和AirSim各自深度耦合了自己的Game Mode,如果简单地将两者塞进同一个UE4进程,必然有一方的Game Mode被覆盖,导致其API完全失效。


CARLA-Air的解法堪称精妙。研究团队设计了一个名为CARLAAirGameMode的统一游戏模式,它通过继承获得CARLA的地面子系统(交通管理、天气控制、行人行为等),同时通过组合将AirSim的空中飞行体(Aerial Flight Actor)作为普通的世界实体纳入其中。


这种"继承+组合"的设计哲学,仅修改了上游CARLA代码库约35行,就实现了两大仿真引擎在同一进程中的和谐共存。

图1 | CARLA-Air统一仿真世界一览。在同一个高保真城市场景中,行人、车辆和无人机共享物理一致的仿真环境,右侧展示了平台支持的自定义资产导入和空地协同能力。这种"天地一体"的仿真世界,正是CARLA-Air的核心价值所在。


在运行时,CARLA-Air在单个UE4进程内同时托管CARLA RPC Server和AirSim RPC Server两个独立的通信服务端。研究者可以通过一个Python脚本同时驱动地面客户端和空中客户端,所有空中和地面平台在每个仿真Tick内同步采集数据,共享渲染管线、天气系统和物理时钟。

图2 | "一山不容二虎"的破解之道。左侧(a)展示了朴素方案的困境——两个Game Mode争抢唯一的槽位,必有一方被丢弃;右侧(b)是CARLA-Air的组合式解决方案——CARLAAirGameMode继承CARLA的地面子系统,同时将AirSim的飞行体以组合方式纳入,巧妙地在单个Game Mode槽位中容纳了两套完整的仿真能力。


2

亮点一:零修改迁移,原有代码直接复用

对于已经在CARLA或AirSim上积累了大量代码的研究者来说,迁移成本是选择新平台时最大的顾虑。CARLA-Air在这一点上做到了极致:它完整保留了两个平台的原生Python API和ROS 2接口,研究者无需修改任何一行已有代码


具体而言,CARLA的89项自动化API测试全部通过,AirSim的全部飞行控制和传感器访问API均已验证,平台还发布了63个ROS 2 topics(43个CARLA + 14个AirSim + 6个通用)。这意味着,无论是CARLA社区的manual_control.py手动驾驶脚本,还是AirSim的hello_drone.py基础飞行演示,都可以在CARLA-Air中直接运行。

图3 | CARLA-Air运行时架构。单个UE4进程内同时托管两套RPC服务器,通过统一的CARLAAirGameMode实现共享物理Tick、共享渲染管线和共享天气系统。研究者只需一个Python脚本,就能同时操控地面车辆和空中无人机。


3

亮点二:微秒级通信,告别桥接延迟

桥接式联合仿真的最大痛点在于跨进程通信延迟。由于CARLA和AirSim运行在不同进程甚至不同机器上,每次数据交换都需要经过序列化、网络传输和反序列化,往返延迟通常在1000到5000微秒之间,且无法保证两个仿真器的物理时钟严格同步。


CARLA-Air通过单进程架构彻底消除了这一瓶颈。实测数据显示,轻量级状态查询(如获取位姿)的API往返延迟仅为280到490微秒,Actor生成约1850微秒,图像捕获约3200微秒——所有操作均在同一进程的共享内存中完成,无需任何跨进程通信。更关键的是,由于共享同一个物理Tick,空中和地面传感器的数据在时间上实现了绝对同步,最大对齐偏差不超过1个Tick。

图4 | ROS平台运行测试。 在RViz中同步可视化无人机与车辆的多模态传感器数据,无人机与车辆传感器均呈现出高度一致的视觉效果,充分验证了空地传感器之间出色的感知一致性。

4

亮点三:18种传感器模态,空地同步一键采集

在具身智能和多模态感知研究中,构建大规模的配对数据集是训练模型的关键瓶颈。CARLA-Air支持多达18种传感器模态的同步采集,包括RGB相机、深度图、语义分割、实例分割、表面法线、LiDAR点云、LiDAR鸟瞰图、雷达、IMU、GNSS、气压计等。

图5 | 无人机追踪卡车任务中的机载传感器数据采集可视化。 上方为三路RGB相机合成的全景图像,下方依次为深度图、语义分割图及机载LiDAR点云。所有传感器数据均可同步采集与落盘,内外参保持稳定,时间戳严格对齐。


在一次典型的数据采集实验中,平台以17.1 FPS的帧率同时运行12路传感器流(6路车辆视角 + 6路无人机视角),持续采集1000个Tick的数据,每个Tick的写入延迟仅为61±9毫秒,且全程零RPC错误。

图6 | 单Tick内同步采集的12路多模态传感器流。上排为地面车辆视角,下排为无人机鸟瞰视角,从左到右依次为RGB、语义分割、深度图、LiDAR鸟瞰、表面法线和实例分割。由于共享同一个渲染管线和天气条件,所有数据在时空上实现了"零误差"对齐。


5

实验与表现

CARLA-Air的性能评估在NVIDIA RTX A4000(16GB显存)、AMD Ryzen 7 5800X和32GB内存的硬件配置上进行。

在帧率方面,地面单独运行时为28.4 FPS,空中单独运行时为44.7 FPS,空地联合运行时为19.8±1.1 FPS。集成带来的帧率开销约为30.3%(8.6 FPS),其中2.1 FPS归因于地面共存,6.5 FPS归因于空中物理引擎的计算。值得注意的是,当车辆数量翻倍进入交通监控模式时,帧率几乎不变(20.1 FPS),说明平台对Actor数量具有良好的扩展性。

图7 | CARLA-Air稳定性测试量化结果。 经过三小时无人机、车辆、行人及传感器的持续创建与销毁压力测试,CARLA-Air全程保持稳定运行,无任何卡顿或报错,最低帧率维持在19.7 FPS。这一长时复杂任务下的稳定性表现,使CARLA-Air能够胜任数据采集、在线强化学习等长周期任务场景。


在稳定性方面,平台经历了长达3小时的耐久测试,期间完成了357个Actor生成/销毁周期,帧率始终稳定在19.7±1.3 FPS,显存无显著累积(线性拟合R²仅0.11),全程零API错误、零仿真崩溃。

图8 | 空地协同精准降落全过程。(a)时序图展示了无人机从接近到触地的五个关键时刻;(b)3D轨迹显示无人机轨迹(蓝色)逐步收敛到车辆轨迹(橙色);(c)高度曲线记录了从12米到地面的平滑下降过程;(d)水平误差从约6米迅速收敛至0.5米以内。整个过程以19.3 FPS运行,耗时约20秒,零RPC错误。


在具身导航方面,CARLA-Air还展示了支持视觉语言动作(VLA)数据生成的能力。无人机可以在城市上空自主跟踪行人,每一帧都伴随着链式推理(Think/Action)的注释,为训练具身导航大模型提供了丰富的标注数据。

图9 | 无人机自主跟踪行人的视觉语言导航演示,无人机与行人飞别用蓝色框与红色框标记,无人机接受的指令为“跟随在行人后方,保持行人位于相机画面中心”。该过程展示了CarlaAir平台在生成VLA训练数据,验证空地协同VLA算法以及进行在线强化学习方面的潜力。


6

总结与延伸

CARLA-Air的出现,代表了仿真基础设施从"单域专精"向"跨域融合"演进的重要趋势。它以极其优雅的工程设计——仅修改约35行上游代码——就打通了地面驾驶与空中飞行之间的仿真壁垒,为空地协同、跨视角感知、具身导航和强化学习等前沿方向提供了统一的实验底座。

随着低空经济的蓬勃发展和具身大模型的快速演进,空地协同智能正在从学术概念走向工程落地。CARLA-Air作为一个完备的开源项目,是否会成为这一领域的"标准基础设施"?

REF

•论文标题:CARLA-Air: Fly Drones Inside a CARLA World — A Unified Infrastructure for Air-Ground Embodied Intelligence

•论文链接:https://arxiv.org/abs/2603.28032 

•项目主页:https://github.com/louiszengCN/CarlaAir 


以上,原文完。


来源:车路漫漫
ACT化学通用汽车UGpython通信自动驾驶机器人控制渲染无人机
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2026-04-21
最近编辑:4月前
李慢慢
硕士 自动驾驶仿真工程师一枚
获赞 14粉丝 93文章 320课程 0
点赞
收藏
作者推荐

机器人仿真软件 Isaac Sim :简介、下载、安装和运行

大家好,我是招楚珩。今天来跟大家介绍下Isacc Sim这个机器人仿真软件。文章目录:1、Isacc Sim 简介2、 Isacc Sim 软件安装要求3、Isacc Sim 的安装4、Isacc Sim 的运行在机器人开发过程中,一个始终绕不开的核心问题是:算法如何在真实环境中稳定运行?如果直接在真实机器人上进行测试,不仅硬件成本高、调试风险大,而且一旦出现问题,定位与迭代的效率都极其低下。因此,仿真平台逐渐成为现代机器人研发流程中的关键基础设施。1、Isaac Sim 简介在众多仿真工具中,Isaac Sim 作为 NVIDIA 推出的高保真机器人仿真平台,在具身智能与机器人仿真领域占据着重要位置。它基于 Omniverse 构建,融合了真实物理引擎与高质量渲染能力,使开发者能够在接近真实世界的虚拟环境中完成机器人建模、算法验证以及合成数据生成等工作。更关键的是,Isaac Sim 支持将导航、感知、控制等算法直接部署到仿真环境中进行验证,并可与 ROS 2 无缝集成,从而打通“算法开发 → 仿真验证 → 实机部署”的完整链路。这种能力,使其不仅是一个仿真工具,更是机器人系统工程中的重要一环。与此同时,围绕 Isaac Sim 的生态也在不断发展,例如用于强化学习与具身智能研究的 Isaac Lab,以及轻量级物理仿真工如 MuJoCo 等,共同构成了当前机器人仿真技术的多层次体系。2、Isaac Sim 软件安装要求本文将基于 Isaac Sim 5.0.0,详细记录其在本地环境中的安装与部署流程,帮助开发者快速上手并构建自己的仿真环境。版本信息(以下是笔者的部署环境,仅供参考)。操作系统:ubuntu22.04GPU型号:5090d v2 (24GB 显存)显卡驱动:580.126.09ROS版本: ROS 2 humbleIsaac Sim版本:5.0.0 workstationIsaac Sim官网链接:https://docs.isaacsim.omniverse.nvidia.com/5.0.0/index.html注意事项:1、在部署 isaac sim 之前需要在本地先安装好 ROS2 及 Nvidia 显卡驱动。2、isaac sim 对显卡的版本有特殊要求,对 python 版本有特殊要求,建议在选择版本的时候根据自己硬件实际情况以及所需环境情况来进行选择:a. RTX40 系及以下显卡,推荐使用 Isaac Sim 4.5.0 及以下版本;b. RTX50 系显卡,推荐使用 Isaac Sim5.0.0 及以上版本(显卡驱动 570.x.x 以上);c. isaac sim > 5.x.x 版本 强依赖于 python 3.11d. isaac sim < 5.x.x 版本 依赖于 python3.103、如果只用 Isaac Sim,只要满足以下系统要求即可。如果还需要Isaac Sim与 ROS2 等其他环境联合仿真则需要注意 python 的版本:a. 在 ubuntu22.04 的默认 python 环境是 3.10 (ros2 humble 同需);b. 在 ubuntu24.04 的默认 python 环境是 3.12 (ros2 jazzy 同需);c. 如需与 ros2 联合仿真,需要编译对应 python 环境的 ros2,以下仓库可提供:https://github.com/isaac-sim/IsaacSim-ros_workspaces4、若搭配 isaac lab 一起使用,需严格注意 isaac sim 与 isaac lab 的版本匹配,以下给出推荐匹配的版本; 5、isaac sim 提供了 windows 版本,如果需求仅是入门/可视化/基本演示,则选择 windows 版本,否则一律选择 ubuntu 版本。ubuntu 版本深度融入机器人生态,支持工程化开发/自动化流程/原生 ROS2,更方便开发者使用;Isaac Sim 对硬件要求极高,依据本文 Isaac Sim 版本,推荐显卡 RTX5080 (16GB 显存)及以上,推荐 CPU(9 代 Intel i7 及以上),推荐内存 64GB,推荐硬盘 SSD 500GB 及以上。具体参考下图: 3、Isaac Sim 的安装3.1、运行兼容性检查对于本地电脑是否能够正常运行 Isaac sim ,英伟达官方提供了快速检查的工具。1、下载Download Isaac Sim Compatibility Checker2、解压到本地然后运行如下脚本: For Windows, double click omni.isaac.sim.compatibility_check.bat.For Linux, from the command line, run ./omni.isaac.sim.compatibility_check.sh.For more information see, Isaac Sim Compatibility Checker. 运行结果无红色报警即为可用: 3.2、安装 Issac Sim以 isaac sim 5.0.0 为例,以下步骤为安装步骤,后文提供完整的命令行操作示例。1、下载 Download Isaac Sim 选择合适的平台(这里用 linux),可同时下载数字资产(可选); 2、创建文件夹~/isaacsim,并将压缩包解压到该文件夹;3、运行脚本 进行环境配置: On Linux, run ./post_install.sh.On Windows, double click post_install.bat. 4、使用如下脚本启动 Isaac Sim App Selector: On Linux, run ./isaac-sim.selector.sh.On Windows, double click isaac-sim.selector.bat. 5、在弹出的面板中选择 Isaac Sim Full: 6、Click START to run the Isaac Sim main app 然后耐心等待直到出现以下画面成功启动,初次启动,需要加载着色器,启动速度可能稍慢: 全流程命令行: mkdir ~/isaacsimcd ~/Downloadsunzip "isaac-sim-standalone-5.0.0-linux-x86_64.zip" -d ~/isaacsimcd ~/isaacsim./post_install.sh./isaac-sim.selector.sh note:如果需要清理缓存可以在命令行中增加参数 --reset-user或者运行 clear_caches.sh3.3、环境配置1、设置 Isaac Sim 根目录: export ISAACSIM_PATH="${HOME}/isaacsim" 2、设置 Isaac Sim Python 可执行文件: export ISAACSIM_PYTHON_EXE="${ISAACSIM_PATH}/python.sh" 3、配置资产在仿真过程中,物理资产是重要的资源,Isaac Sim 提供了在线和离线的资产,在线资产可以在 Isaac sim 使用过程中安需加载(需魔法上网),离线资源在官网同样提供了下载链接,下载后可离线加载。下载好的三个文件如图所示,使用如下指令将三个分包的压缩文件合为一个,再解压到 issacsim_assets 目录下: cd /path/to/assets_partscat isaac-sim-assets-complete-5.0.0.zip.* > isaac-sim-assets-complete-5.0.0.zip 找到Isaac Sim的下载目录,如/home/<username>/isaacsim,找到/home/<username>/isaacsim/apps/isaacsim.exp.base.kit,用记事本打开,并在最后加入以下内容(注意要把所有替换为自己的用户名): persistent.isaac.asset_root.default = "/home/<username>/isaacsim_assets/Assets/Isaac/5.0"exts."isaacsim.asset.browser".folders = [ "/home/<username>/isaacsim_assets/Assets/Isaac/5.0/Isaac/Robots", "/home/<username>/isaacsim_assets/Assets/Isaac/5.0/Isaac/People", "/home/<username>/isaacsim_assets/Assets/Isaac/5.0/Isaac/IsaacLab", "/home/<username>/isaacsim_assets/Assets/Isaac/5.0/Isaac/Props", "/home/<username>/isaacsim_assets/Assets/Isaac/5.0/Isaac/Environments", "/home/<username>/isaacsim_assets/Assets/Isaac/5.0/Isaac/Materials", "/home/<username>/isaacsim_assets/Assets/Isaac/5.0/Isaac/Samples", "/home/<username>/isaacsim_assets/Assets/Isaac/5.0/Isaac/Sensors",] 启动 Isaac sim 并检查资产加载情况: 确定资产的地址与本地设置相符即可。备注:资产的也可以通过参数传递进去,通过以下参数: ./isaac-sim.sh --/persistent/isaac/asset_root/default="/home/feeliam/isaac_repos/isaacsim_assets/Assets/Isaac/5.0" 4、Isaac Sim 的运行Isaac Sim 内置了多种机器人示例,可以通过以下方式访问:点击 Window > Examples > Robotics Examples 打开示例面板。 在 POLICY 部分选择 Humanoid 或 Quadruped。 点击 LOAD 加载人型机器人或四足机器人。 下面是Isaac Sim运行几个demo效果(机械臂+机器狗+机器人)的视频:至此完成 Isaac Sim 5.0.0 部署的全部流程。开启你的具身智能之旅吧。以上,本文完。 来源:车路漫漫

未登录
还没有评论
课程
培训
服务
行家
VIP会员 学习计划 福利任务
下载APP
联系我们
帮助与反馈