Aerial Autonomy Stack
在仿真与真实无人机上开发、测试并部署多机感知自主系统。
- Star 数
- ★ 642
- 最近更新
- 1 天前
- License
- MIT
- 主语言
- C++
- FA 评分
- 68/100 · 存在缺口
30 秒速览
- 运行形态
- 可在哪里用
- 平台专用
- 费用
- 免费,无需付费服务
- 上手难度
- 高 · 需要较重的基础设施
- 开始前需要
- 典型场景
- 无人机算法团队需要在同一套 ROS2 接口下比较 PX4 与 ArduPilot,并验证四旋翼、VTOL 或倾转旋翼机的任务逻辑。
- 不适合
- 没有 NVIDIA GPU 或 CUDA 环境的团队
- 需要原生 Windows 运行环境的用户
- 只想用笔记本快速试用的个人开发者
这个 Agent 能做什么,适合哪些场景?
Aerial Autonomy Stack(AAS)是一套经过实际飞行验证的开放式无人机自主开发框架,覆盖多机开发、快于实时的仿真和 Jetson 实机部署。它把 PX4 或 ArduPilot、ROS2 Jazzy、Gazebo Sim、YOLO、KISS-ICP LiDAR 里程计以及地面站组件组织进 Docker 容器。系统支持四旋翼、复合翼 VTOL 和倾转旋翼机,并可通过 ROS2 action、行为树任务或地面编队控制器执行飞行。仿真能够运行多个实例、调节实时倍率、生成相机与三维 LiDAR 数据,并通过 Gymnasium 环境逐步推进。部署边界主要是搭载 NVIDIA Jetson Orin 的机载计算机、Pixhawk 飞控和运行地面容器的电脑;它不是面向 ChatGPT、Codex 或模型 API 的对话式智能体。
端到端流程从 sim_run.sh 启动:simulation 容器运行 Gazebo 世界以及一个或多个 PX4/ArduPilot SITL 实例,将相机、LiDAR 和 MAVLink/UDP 数据送往 aircraft 容器。机载侧的 yolo_py 通过 GStreamer 获取视频并发布 YOLO 检测框,kiss_icp 处理 LiDAR 里程计;mission、offboard_control、autopilot_interface 和 drone_traffic_client 将任务或控制参考转换为 PX4 Offboard 或 ArduPilot Guided 操作。ground 容器中的 drone_traffic_controller 发布编队命令,ground_system 发布轨迹,Zenoh 在地面与各无人机的 ROS2 域之间桥接状态、轨迹和控制主题。用户可调用 Takeoff、Land、Orbit、Offboard action,以及 reposition、speed 和云台控制接口;日志可交给 flight_review、MAVExplorer 或 PlotJuggler 分析。aas-gym 还把仿真封装成可逐步推进和向量化运行的 Gymnasium 环境,而 deploy_run.sh 可在 Jetson Orin 上启动真实飞机的 aircraft 容器。
- 无人机算法团队需要在同一套 ROS2 接口下比较 PX4 与 ArduPilot,并验证四旋翼、VTOL 或倾转旋翼机的任务逻辑。
- 感知研发人员需要在多种三维 Gazebo 场景中联合测试 YOLO 相机检测和 KISS-ICP LiDAR 里程计。
- 多机研究人员需要运行同步编队、单机行为树任务或多个并行仿真实例。
- 强化学习研究人员需要通过
aas-gym手动步进、加速或向量化执行无人机仿真。 - 机载系统工程师需要先用多 Jetson HITL 检查计算负载与机间网络,再部署到 Jetson Orin、Pixhawk 和真实飞机。
- 飞行测试人员需要统一采集 ROS bag、PX4
.ulg或 ArduPilot.bin日志并使用配套分析工具排查问题。
如何安装或部署这个 Agent?
已记录的主机环境是 Ubuntu 24.04、NVIDIA 驱动、Docker 和 NVIDIA Container Toolkit;示例开发机使用 RTX 3060。安装与首次构建:
sudo apt update && sudo apt install -y git xterm xfonts-base wget unzip
git clone https://github.com/JacopoPan/aerial-autonomy-stack.git
cd aerial-autonomy-stack/tools_and_docs/
./tests/check_requirements.sh
./sim_build.sh首次构建在网络良好时约需 45 分钟。仓库也提供每周从 main 重建的 GHCR 镜像,可分别拉取 aircraft-image、ground-image 和 simulation-image。未记录任何 API 密钥或付费凭据要求。
如何使用这个 Agent?
启动一个 PX4/ArduPilot 可选、含一架四旋翼和一架 VTOL 的仿真:
cd aerial-autonomy-stack/tools_and_docs/
NUM_QUADS=1 NUM_VTOLS=1 WORLD=swiss_town RTF=3 PLOT=true ./sim_run.sh在 Ground 终端启动同步编队:
ros2 run drone_traffic_controller dtc_controller --ros-args -p use_sim_time:=true在飞机终端执行行为树任务:
ros2 run mission mission --conops yalla.yaml --ros-args -r __ns:=/Drone$DRONE_ID -p use_sim_time:=true也可向 /Drone${DRONE_ID}/takeoff_action、land_action、orbit_action 或 offboard_action 发送 ROS2 goal。Gymnasium 示例在安装 aas-gym 后运行:
python3 gym_run.py --mode step实机部署时,在 Jetson 上执行 ./deploy_build.sh,随后可运行:
DRONE_ID=1 CAMERA=true LIDAR=false AIR_SUBNET=10.223 HEADLESS=true ./deploy_run.sh飞机类型、飞控、传感器和 ROS bag 录制通过环境变量配置。
这个 Agent 有哪些优点和局限?
- 同一框架原生覆盖 PX4 与 ArduPilot,并为二者提供统一的 ROS2 高层 action 接口。
- 同时覆盖 SITL、快于实时仿真、多实例仿真、Gymnasium 和多 Jetson HITL,而非只提供单机 Gazebo 模型。
- 相机、YOLO、三维 LiDAR、KISS-ICP、风效应和动态波浪等感知与环境组件已经纳入容器化流程。
- 同一 aircraft 镜像面向 amd64 仿真和 arm64/Jetson 部署,有助于缩小仿真与实机软件差异。
- 提供编队控制、行为树任务和直接 ROS2 action 三种自主飞行入口。
- 核心构建依赖 NVIDIA 驱动、CUDA、cuDNN 和 NVIDIA Container Toolkit,实机路径进一步依赖 JetPack、DeepStream 与 Jetson Orin。
- 首次仿真镜像构建约需 45 分钟,Jetson arm64 构建约需 50 分钟,首次实机运行还要约 3 分钟生成 TensorRT 缓存。
- 官方记录的开发环境集中在 Ubuntu 24.04;Windows 11 只能通过 WSL 使用,没有原生 Windows 路径。
- VTOL 和倾转旋翼机的模拟空速传感器不感知 Gazebo 风,因此风效应测试被明确建议只用于四旋翼。
- ArduPilot 当前列出的版本为 4.6.3,升级到 4.7.1 仍标记为待办,采用新版 ArduPilot 可能需要迁移工作。
- 所示实机验证硬件集中在 Holybro Jetson Baseboard、Pixhawk 6X、Orin NX 16GB、X650、IMX219 和 Livox Mid-360S;其他硬件组合的验证证据未给出。
这个 Agent 与同类方案有什么区别?
框架将 PX4 Offboard 与 ArduPilot Guided 作为两条可选飞控路径:PX4 可使用 CTBR/VehicleRatesSetpoint 等低层参考,ArduPilot 示例使用速度或加速度设定值。两者共享 ROS2 高层 action,但具体控制器名称、参数行为和限制并不完全相同;例如文档指出 ArduPilot VTOL 的速度变更命令无效。通信层也存在 XRCE-DDS 与 MAVROS 两种飞控接口路径。
与相关度最高的同类 agent 并排比较关键指标。
| Agent | 源码审查 | 形态 / 费用 | Star | 最近更新 | 主语言 | 完整支持的平台 |
|---|---|---|---|---|---|---|
| Aerial Autonomy Stack 当前 | 68 · 存在缺口 | 命令行工具免费 | ★ 642 | 1 天前 | C++ | — |
| Jev 无人机 | 60 · 存在缺口 | 命令行工具免费 + 模型费 | ★ 289 | 1 个月前 | Python | — |
| RAI 具身智能机器人框架 | 55 · 缺口较多 | 开发框架免费 + 模型费 | ★ 610 | 14 天前 | Python | — |
| Stream Vision Agents | 43 · 缺口较多 | 代码库 / SDK免费 + 模型费 | ★ 8.2k | 今天 | Python | OpenAI API · Claude API |
FollowAgents 如何评估这个 Agent?
查看各维度的扣分理由
架构图清楚标示容器、ROS2 主题、UDP/TCP、MAVLink、传感器与双子网的数据流,因此数据流透明度充分。CI 权限在部分作业中按 contents/packages 收窄,但运行栈仍需要 Docker、网络、GPU、飞控和 sudo 安装操作,未展示系统性的最小权限模型。部分飞行动作可取消,并建议 QGroundControl 监督,但起飞、降落、参数修改和清理命令会直接生效,缺少一致的高风险操作确认门槛。README 明示 Land/Orbit 会覆盖 ArduPilot 参数、开发挂载和容器清理等外部效果,但恢复原参数、飞行状态或主机配置的回滚方案很薄弱。未提供密钥、日志隐私、摄像头数据或敏感遥测处理政策。依赖有 CI 安装检查,但使用 latest 镜像、可变外部依赖和按标签引用的 Actions,未见锁定、校验、SBOM 或漏洞扫描。项目、论文作者及第三方世界/组件多有归属说明,但 LICENSE 的“The Drone Mafia”、仓库账户和论文作者之间的维护主体关系并不完全明确。
README、环境检查脚本、CI 安装测试和两种飞控集成测试大体相互一致,也为 Ubuntu、NVIDIA 驱动、Docker 和容器工具包提供明确诊断。扣分在于许多能力仅由 README 陈述,CI 展示的集成范围仅覆盖单四旋翼、无摄像头/雷达的两条路径;大量外部镜像、硬件和网络依赖仍可能漂移。错误信息对环境变量和主机要求较具体,性能脚本也有重试与严重失败提示,但没有证据表明整个多容器飞行链路采用统一、可操作的错误分类与恢复指导。
材料明确覆盖开发、仿真、Jetson 实机部署、HITL、Gymnasium、PX4/ArduPilot、多机型和多传感器场景,并列出大量精确环境变量、枚举值及命令入口。Ubuntu 24.04、WSL、amd64/arm64、Jetson Orin 和具体硬件要求描述充分。能力边界有若干具体说明,例如风效应不适用于相关 VTOL 传感器、SetSpeed 的限制以及 ArduPilot 检查延迟;但对真实飞行安全包线、失联行为、支持规模上限和实验性模块成熟度仍缺少统一边界说明。
README 的安装、仿真、部署、HITL、RL、架构和目录结构组织清晰,示例广泛且可直接使用;安装步骤还给出预计耗时、平台要求和预检脚本。名称与参数整体一致,但没有正式的稳定 API/配置兼容性承诺。已记录若干限制,却缺少集中式已知问题或 FAQ。MIT 许可证文本完整。没有提供版本发布策略或 changelog,因此版本记录记为缺失;维护责任仅能从账户、版权名和论文作者间接推断,未给出明确支持渠道、负责人或更新政策。
输出面向实际操作,提供从构建、启动、飞行动作、日志分析到 Gymnasium 使用的完整命令,且集成 PX4、ArduPilot、ROS2、感知、仿真和 Jetson 部署形成明显的组合价值。硬件规格、首次构建时间及一次明确环境下的性能数据有助于评估成本收益。扣分在于性能结果每种场景仅一次重复,未给出硬件采购之外的总体维护成本、资源上限、实机风险成本或与替代方案的系统比较。
README 将许多能力指向具体脚本、源文件、配置、工作流和架构节点,CI 与环境检查脚本对安装及部分集成主张形成内部交叉印证,性能记录也注明提交、日期和硬件环境。扣分在于“flight-proven”“simplest/fastest”等主张缺少所给材料内的可核查依据,论文引用尚不能在本次材料中独立核验,性能数据是源码注释中的自述且仅单次运行;事实、营销性判断和推测没有始终明确分层。
- 源码中未见:敏感信息处理使用专用、低权限、可随时吊销的 API 密钥,不要复用生产凭据,也不要让密钥出现在日志里。
- 这是仅基于所给文件的静态审查;未执行构建、仿真、HITL 或真实飞行,也未独立验证论文、CI 结果或性能数据。
- 实机命令能够起飞、降落并覆盖 ArduPilot 参数;在隔离仿真中验证任务、故障保护、失联行为和参数恢复流程后,才应连接真实飞行器。
- 不要直接依赖 latest 容器或可变依赖进行安全关键部署;应固定镜像摘要和依赖版本,并补充 SBOM、漏洞扫描及来源校验。
- 摄像头、LiDAR、遥测、飞行日志和网络桥接可能包含敏感或受监管数据,但所给材料没有数据保留、访问控制或隐私说明。
最近版本
来自该项目 GitHub Releases 的最新发布记录,说明为上游原文摘录,未经本站改写或测试。
-
v3.0.0 Betaflight Release
发布说明摘录
New Features: - Multi-drone Betaflight SITL simulation and ROS2 interfaces for autopilot actions and MSP override control #192 - Non-contiguous drone IDs and stereo CSI camera in deployment #181 Fixes: - Handle external mode change during an Offboard action #188 Updates - ONNX Runtime 1.31 #193在 GitHub 查看 ↗ -
v2.0.0 JetPack 7 Release
发布说明摘录
New Features: - MCAP rosbag recording https://github.com/JacopoPan/aerial-autonomy-stack/pull/171 Fixes: - Time-aligned multi-drone logs plotting https://github.com/JacopoPan/aerial-autonomy-stack/pull/173 Updates - Upgrade to ROS Jazzy, Ubuntu 24, JetPack 7.2.1, DeepStream 9.1 with support for NVIDIA Driver 595/610, CUDA 13 https://github.com/JacopoPan/aerial-autonomy-stack/pull/84在 GitHub 查看 ↗ -
v1.6.0 Advanced SITL Release
发布说明摘录
New Features: - New cave world based on DARPA SubT's [simple_cave_02](https://github.com/osrf/subt/tree/master/subt_ign/worlds) for LiDAR odometry and SLAM #168 - SiK f90546a95e28b964e9d821723e2d69a754e50d84 and Microhard 592ce00e746d18215d301e6b4db8a51ddc077162 telemetry configuration with AT commands Fixes: - Revised which links/plugins/SITL sensors interact with Gazebo's WindEffects for all vehicle models, tuning of force_approximation_scaling_factor for the multicopter models #167 …在 GitHub 查看 ↗
常见问题
运行需要云服务、模型 API 或密钥吗?
可以不使用 NVIDIA GPU 吗?
它能直接控制真实无人机吗?
能否只用于仿真或强化学习?
sim_run.sh 支持 SITL、多实例和实时倍率控制,aas-gym 提供 step、speedup 与 vectorenv-speedup 示例,不要求先部署真实飞机。