ego-planner-swarm

GitHub
2k 342 较难 1 次阅读 今天GPL-3.0Agent其他
AI 解读 由 AI 自动生成,仅供参考

ego-planner-swarm 是一款专为多旋翼无人机集群设计的高效轨迹规划开源系统。它源自著名的 EGO-Planner,旨在解决多个机器人在未知且障碍物密集的复杂环境中,如何仅依靠机载资源实现完全自主、去中心化的协同导航难题。

传统集群方案往往依赖中央服务器或高精度外部定位,而 ego-planner-swarm 通过分布式异步架构,让每架无人机都能独立感知环境并规划路径,同时避免彼此碰撞。这意味着即使在没有 GPS 或通信受限的室内、森林等场景中,无人机群也能保持队形灵活穿梭。其核心技术亮点在于将单智能体规划能力成功扩展至多智能体协作,兼顾了计算效率与安全性。

该工具主要面向机器人领域的研究人员、算法开发者以及高校实验室团队,特别适合从事无人机集群控制、自主导航研究的用户进行二次开发或仿真验证。项目提供了完善的 ROS 支持(涵盖 ROS1 及 ROS2 分支)和快速上手指南,用户可在几分钟内完成编译并在仿真环境中体验集群飞行效果。如果你正在探索去中心化集群系统的落地应用,ego-planner-swarm 提供了一个坚实且经过实飞验证的技术基座。

使用场景

某应急救援团队需要在浓烟弥漫的倒塌建筑内部,部署多架无人机协同搜索幸存者并构建实时地图。

没有 ego-planner-swarm 时

  • 依赖集中式控制:必须建立稳定的中央服务器来分配每架无人机的路径,一旦通信链路因墙体遮挡中断,整个编队立即瘫痪或发生碰撞。
  • 避障反应迟钝:传统算法难以处理动态未知障碍,无人机在狭窄走廊中容易因计算延迟而卡死或撞击突发掉落的碎石。
  • 协同效率低下:多机之间缺乏自主协商机制,容易出现多架无人机同时涌向同一区域,导致搜索覆盖不均且浪费电量。
  • 部署门槛极高:工程师需要手动编写复杂的逻辑代码来处理多机互斥和死锁问题,调试周期长达数周。

使用 ego-planner-swarm 后

  • 实现完全去中心化:每架无人机仅凭机载资源即可独立规划轨迹,即使部分节点失联,其余无人机仍能自主完成任务并保持安全距离。
  • 毫秒级动态避障:利用其高效的单/多智能体规划能力,无人机能在高速飞行中实时感知并绕过突然出现的障碍物,流畅穿越复杂废墟。
  • 自适应群体协作:系统异步协调多机路径,自动将搜索区域分散,确保在无预设指令下也能高效、无重复地覆盖所有死角。
  • 快速落地验证:借助现成的 ROS 仿真环境和简洁的编译流程,团队可在 3 分钟内启动测试,将开发重点从底层算法转向任务策略。

ego-planner-swarm 通过去中心化与异步规划技术,让无人机群在极端未知环境中实现了真正的全自主、高可靠协同作业。

运行环境要求

操作系统
  • Linux (Ubuntu 16.04
  • 18.04
  • 20.04)
GPU
  • 非必需
  • 默认使用 CPU 版本
  • 若需启用 GPU 加速深度图渲染,需要 NVIDIA GPU 并安装 CUDA Toolkit,需在 CMakeLists.txt 中手动配置对应的 compute capability (arch/code)
内存

未说明(文中提及 i7-9700KF CPU 下模拟 15 架无人机为上限,暗示对多核性能有要求)

依赖
notes1. 该项目基于 ROS1 (catkin),ROS2 版本需切换至 ros2_version 分支。 2. 默认仿真使用简化模型以保证多机扩展性,若需高保真动力学仿真需修改 launch 文件配置。 3. 建议将 CPU 频率设置为'performance'模式以获得更稳定的规划计算性能。 4. 若启用 CUDA,需根据显卡型号修改 CMakeLists.txt 中的 arch 和 code 标志。
python未说明
ROS (Desktop Full)
catkin
libarmadillo-dev
CMake
CUDA Toolkit (可选)
ego-planner-swarm hero image

快速开始

更新:ROS2支持

对于ROS2版本,请参考分支 ros2_version

3分钟快速入门

在已安装ROS的Ubuntu 16.04、18.04和20.04上,编译测试均已通过。 您只需依次执行以下命令即可:

sudo apt-get install libarmadillo-dev
git clone https://github.com/ZJU-FAST-Lab/ego-planner-swarm.git
cd ego-planner-swarm
catkin_make -j1
source devel/setup.bash
roslaunch ego_planner simple_run.launch

<!如果您的GitHub访问速度较慢,建议尝试使用码云仓库 https://gitee.com/iszhouxin/ego-planner-swarm。该仓库会自动同步。/>

如果您觉得这项工作有用或有趣,请为我们点个赞 :star:,谢谢!:grinning:

致谢

  • 本工作是在EGO-Planner的基础上扩展到群体导航的。

EGO-Swarm

EGO-Swarm:一种完全自主且去中心化的复杂环境四旋翼无人机集群系统

EGO-Swarm 是一种去中心化、异步的系统化解决方案,仅利用机载资源即可实现在未知障碍密集场景中的多机器人自主导航。

视频链接YouTube哔哩哔哩(适用于中国大陆)

1. 相关论文

EGO-Swarm:一种完全自主且去中心化的复杂环境四旋翼无人机集群系统,Xin Zhou、Jiangchao Zhu、Hongyu Zhou、Chao Xu 和 Fei Gao(发表于ICRA2021)。论文链接Science报道。

2. 标准编译

要求:Ubuntu 16.04、18.04 或 20.04,且已安装ros-desktop-full。

步骤1。安装Armadillo,这是uav_simulator所必需的。

sudo apt-get install libarmadillo-dev

步骤2。从GitHub或码云克隆代码。这两个仓库会自动同步。

从GitHub,

git clone https://github.com/ZJU-FAST-Lab/ego-planner-swarm.git

步骤3。编译,

cd ego-planner
catkin_make -DCMAKE_BUILD_TYPE=Release -j1

步骤4。运行。

在_ego-planner-swarm/_文件夹下的一个终端中,打开rviz进行可视化和交互操作:

source devel/setup.bash
roslaunch ego_planner rviz.launch

在另一个位于_ego-planner-swarm/_的终端中,通过以下命令在仿真环境中运行规划器:

source devel/setup.bash
roslaunch ego_planner swarm.launch

然后您可以按照下面的动图来控制无人机。

3. 使用IDE

我们推荐使用VSCode。您已克隆的代码中包含了项目文件,即_.vscode_文件夹。该文件夹默认是隐藏的。 请按照以下步骤配置IDE以实现自动代码补全和跳转功能,整个过程大约需要3分钟。

步骤1。在VSCode中安装C++和CMake插件。

步骤2。使用以下命令重新编译代码:

catkin_make -DCMAKE_BUILD_TYPE=Release -DCMAKE_EXPORT_COMPILE_COMMANDS=Yes

这将导出一个编译命令文件,帮助VSCode理解代码架构。

步骤3。启动VSCode并选择打开_ego-planner_文件夹:

code ~/<......>/ego-planner-swarm/

在VSCode中按Ctrl+Shift+B来编译代码。此命令已在_.vscode/tasks.json_中定义。您可以在**"args"后添加自定义参数,默认为"-DCMAKE_BUILD_TYPE=Release"**。

步骤4。关闭并重新启动VSCode,您会发现它已经理解了代码架构,并能进行自动补全和跳转。

4. 是否使用GPU

本仓库中的local_sensing包提供了GPU和CPU两种版本。默认情况下,为了更好的兼容性,使用的是CPU版本。若要启用CUDA以生成类似真实深度相机的深度图像,只需将local_sensing包中的_CMakeList.txt_文件中的

set(ENABLE_CUDA false)

改为

set(ENABLE_CUDA true)

同时,请记得修改_CMakeList.txt_中

    set(CUDA_NVCC_FLAGS 
      -gencode arch=compute_61,code=sm_61;
    ) 

这一行的'arch'和'code'标志。如果您因使用的NVIDIA显卡不同而遇到编译错误,或无法看到预期的深度图像,可以通过链接1链接2检查正确的设置。

别忘了重新编译代码!

local_sensing是模拟传感器模块。当ENABLE_CUDAtrue时,它会模仿立体相机测量的深度,并通过GPU渲染深度图像;而当ENABLE_CUDAfalse时,则会发布不带光线追踪的点云数据。我们的本地建图模块会自动选择以深度图像或点云作为输入。

关于CUDA的安装,请访问NVIDIA CUDA工具包

5. 是否考虑动力学的无人机仿真

典型的仿真会使用动力学模型来计算无人机在给定指令下的运动轨迹。 然而,求解微分方程需要不断迭代,这会消耗大量计算资源。 在运行无人机集群时,这种计算负担可能导致明显的延迟。 在我使用的i7 9700KF CPU上,15架无人机已经是上限。 因此,出于兼容性和可扩展性的考虑,我默认使用“fake_drone”包,直接将指令转换为无人机的里程计信息。

如果您希望使用更真实的四旋翼模型,可以取消注释simulator.xml中的节点quadrotor_simulator_so3so3_control/SO3ControlNodelet,以启用考虑动力学的四旋翼仿真。 请注意,在上述两个节点之后,务必注释掉poscmd_2_odom包。

6. 充分发挥CPU性能

我们的规划器计算时间过短,操作系统来不及提升CPU频率,这会导致计算时间变长且不稳定。

因此,我们建议您手动将CPU频率设置为最高。首先,通过以下命令安装工具:

sudo apt install cpufrequtils

然后,您可以使用以下命令将CPU频率设置为最大允许值:

sudo cpufreq-set -g performance

更多信息请参阅http://www.thinkwiki.org/wiki/How_to_use_cpufrequtils

请注意,在高负载情况下,由于温度过高,CPU频率仍可能降低。

许可证

本项目源代码采用GPLv3许可证发布。

维护

我们仍在致力于扩展所提出的系统并提高代码的可靠性。

如遇任何技术问题,请联系Xin Zhou(iszhouxin@zju.edu.cn)或Fei GAO(fgaoaa@zju.edu.cn)。

如需商业合作,请联系Fei GAO(fgaoaa@zju.edu.cn)。

常见问题

相似工具推荐

openclaw

OpenClaw 是一款专为个人打造的本地化 AI 助手,旨在让你在自己的设备上拥有完全可控的智能伙伴。它打破了传统 AI 助手局限于特定网页或应用的束缚,能够直接接入你日常使用的各类通讯渠道,包括微信、WhatsApp、Telegram、Discord、iMessage 等数十种平台。无论你在哪个聊天软件中发送消息,OpenClaw 都能即时响应,甚至支持在 macOS、iOS 和 Android 设备上进行语音交互,并提供实时的画布渲染功能供你操控。 这款工具主要解决了用户对数据隐私、响应速度以及“始终在线”体验的需求。通过将 AI 部署在本地,用户无需依赖云端服务即可享受快速、私密的智能辅助,真正实现了“你的数据,你做主”。其独特的技术亮点在于强大的网关架构,将控制平面与核心助手分离,确保跨平台通信的流畅性与扩展性。 OpenClaw 非常适合希望构建个性化工作流的技术爱好者、开发者,以及注重隐私保护且不愿被单一生态绑定的普通用户。只要具备基础的终端操作能力(支持 macOS、Linux 及 Windows WSL2),即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你

349.3k|★★★☆☆|1周前
Agent开发框架图像

stable-diffusion-webui

stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面,旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点,将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。 无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师,还是想要深入探索模型潜力的开发者与研究人员,都能从中获益。其核心亮点在于极高的功能丰富度:不仅支持文生图、图生图、局部重绘(Inpainting)和外绘(Outpainting)等基础模式,还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外,它内置了 GFPGAN 和 CodeFormer 等人脸修复工具,支持多种神经网络放大算法,并允许用户通过插件系统无限扩展能力。即使是显存有限的设备,stable-diffusion-webui 也提供了相应的优化选项,让高质量的 AI 艺术创作变得触手可及。

162.1k|★★★☆☆|1周前
开发框架图像Agent

everything-claude-code

everything-claude-code 是一套专为 AI 编程助手(如 Claude Code、Codex、Cursor 等)打造的高性能优化系统。它不仅仅是一组配置文件,而是一个经过长期实战打磨的完整框架,旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。 通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能,everything-claude-code 能显著提升 AI 在复杂任务中的表现,帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略,使得模型响应更快、成本更低,同时有效防御潜在的攻击向量。 这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库,还是需要 AI 协助进行安全审计与自动化测试,everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目,它融合了多语言支持与丰富的实战钩子(hooks),让 AI 真正成长为懂上

153.6k|★★☆☆☆|今天
开发框架Agent语言模型

ComfyUI

ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎,专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式,采用直观的节点式流程图界面,让用户通过连接不同的功能模块即可构建个性化的生成管线。 这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景,也能自由组合模型、调整参数并实时预览效果,轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性,不仅支持 Windows、macOS 和 Linux 全平台,还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构,并率先支持 SDXL、Flux、SD3 等前沿模型。 无论是希望深入探索算法潜力的研究人员和开发者,还是追求极致创作自由度的设计师与资深 AI 绘画爱好者,ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能,使其成为当前最灵活、生态最丰富的开源扩散模型工具之一,帮助用户将创意高效转化为现实。

108.3k|★★☆☆☆|3天前
开发框架图像Agent

gemini-cli

gemini-cli 是一款由谷歌推出的开源 AI 命令行工具,它将强大的 Gemini 大模型能力直接集成到用户的终端环境中。对于习惯在命令行工作的开发者而言,它提供了一条从输入提示词到获取模型响应的最短路径,无需切换窗口即可享受智能辅助。 这款工具主要解决了开发过程中频繁上下文切换的痛点,让用户能在熟悉的终端界面内直接完成代码理解、生成、调试以及自动化运维任务。无论是查询大型代码库、根据草图生成应用,还是执行复杂的 Git 操作,gemini-cli 都能通过自然语言指令高效处理。 它特别适合广大软件工程师、DevOps 人员及技术研究人员使用。其核心亮点包括支持高达 100 万 token 的超长上下文窗口,具备出色的逻辑推理能力;内置 Google 搜索、文件操作及 Shell 命令执行等实用工具;更独特的是,它支持 MCP(模型上下文协议),允许用户灵活扩展自定义集成,连接如图像生成等外部能力。此外,个人谷歌账号即可享受免费的额度支持,且项目基于 Apache 2.0 协议完全开源,是提升终端工作效率的理想助手。

100.8k|★★☆☆☆|3天前
插件Agent图像

LLMs-from-scratch

LLMs-from-scratch 是一个基于 PyTorch 的开源教育项目,旨在引导用户从零开始一步步构建一个类似 ChatGPT 的大型语言模型(LLM)。它不仅是同名技术著作的官方代码库,更提供了一套完整的实践方案,涵盖模型开发、预训练及微调的全过程。 该项目主要解决了大模型领域“黑盒化”的学习痛点。许多开发者虽能调用现成模型,却难以深入理解其内部架构与训练机制。通过亲手编写每一行核心代码,用户能够透彻掌握 Transformer 架构、注意力机制等关键原理,从而真正理解大模型是如何“思考”的。此外,项目还包含了加载大型预训练权重进行微调的代码,帮助用户将理论知识延伸至实际应用。 LLMs-from-scratch 特别适合希望深入底层原理的 AI 开发者、研究人员以及计算机专业的学生。对于不满足于仅使用 API,而是渴望探究模型构建细节的技术人员而言,这是极佳的学习资源。其独特的技术亮点在于“循序渐进”的教学设计:将复杂的系统工程拆解为清晰的步骤,配合详细的图表与示例,让构建一个虽小但功能完备的大模型变得触手可及。无论你是想夯实理论基础,还是为未来研发更大规模的模型做准备

90.1k|★★★☆☆|1周前
语言模型图像Agent