【保姆级教程】在AutoDL容器中部署EGO-Planner,实现无人机动态避障规划

【保姆级教程】在AutoDL容器中部署EGO-Planner,实现无人机动态避障规划

作为ROS生态中经典的无人机路径规划框架,EGO-Planner以其高效的动态避障能力和实时重规划特性,成为很多开发者入门无人机规划的首选工具。但在远程容器(如AutoDL)中部署时,常因环境配置、通信问题卡壳。本文结合实战经验,从AutoDL登录到规划成功,一步步带你打通全流程,新手也能轻松上手。

一、前置知识:核心概念与环境准备

在开始前,先明确几个关键概念,避免后续操作 confusion:

  • AutoDL容器:提供远程GPU/CPU资源,预装Linux系统,需通过终端或远程桌面操作;
  • Catkin工作空间:ROS项目的“工程目录”,用于组织代码、编译产物,本文默认工作空间为~/catkin_ws
  • EGO-Planner:无人机路径规划框架,核心功能包为planner/plan_manage,依赖uav_simulator(仿真)、Utils(工具库);
  • ROS消息通信:节点间通过“话题”传递数据,本文关键目标点话题为/goal_with_id,消息类型quadrotor_msgs/GoalSet

环境要求

  • AutoDL容器:建议选择“Ubuntu 20.04 + ROS Noetic”镜像(若无预装,可后续手动安装,但镜像自带更省心);
  • 硬件:最低1核2G内存,GPU非必需(仅仿真可CPU运行);
  • 网络:确保容器能正常访问外网(用于安装依赖、拉取代码)。

二、Step 1:登录AutoDL并进入容器

这一步是所有操作的起点,重点是“找到终端入口”:

  1. 登录AutoDL控制台:打开AutoDL官网(https://www.autodl.com/),登录后在“我的容器”中找到已创建的容器,点击“启动”;
  2. 进入终端:启动后点击“JupyterLab”,在打开的页面中,左侧导航栏找到“终端”图标(类似命令行的黑色图标),点击即可打开Linux终端;
  3. 确认初始路径:默认终端路径为/root,后续所有操作均在该用户下执行(无需切换用户,避免权限问题)。

三、Step 2:确认并编译Catkin工作空间

EGO-Planner的代码需放在Catkin工作空间的src目录下,编译后才能运行。若你已上传代码(如之前操作),直接执行以下步骤;若未上传,需先克隆代码(附克隆命令)。

2.1 确认工作空间结构

先检查~/catkin_ws是否存在,以及src目录下是否有EGO-Planner相关代码:

# 进入工作空间cd ~/catkin_ws # 查看src目录内容(关键看是否有planner、uav_simulator、Utils)ls src 
  • src目录下已有planneruav_simulatorUtils:跳过“克隆代码”,直接编译;

若没有:先执行以下命令克隆EGO-Planner及其依赖(需等待1-2分钟,视网络速度而定):

# 进入src目录cd ~/catkin_ws/src # 克隆EGO-Planner核心代码git clone https://github.com/ZJU-FAST-Lab/EGO-Planner-v2.git planner/plan_manage # 克隆无人机仿真代码git clone https://github.com/ZJU-FAST-Lab/uav_simulator.git # 克隆工具库git clone https://github.com/ZJU-FAST-Lab/Utils.git 

2.2 编译工作空间

编译是将源代码生成可执行文件(如仿真节点、规划节点)的关键步骤,需确保无编译错误:

# 回到工作空间根目录cd ~/catkin_ws # 编译(-j1表示单线程编译,避免多线程冲突;性能好可去掉-j1) catkin_make -j1 
  • 编译成功标志:终端最后输出“[100%] Built target xxx”,无“error”或“failed”;
  • 若编译报错:常见原因是缺少依赖,可执行 sudo apt install ros-noetic-xxx(xxx为报错中提示的缺失包名,如ros-noetic-octomap),安装后重新编译。

2.3 加载ROS环境变量

编译后生成的可执行文件和功能包路径,需通过“环境变量”让系统识别,每次新开终端都需执行

# 加载当前工作空间的环境变量source ~/catkin_ws/devel/setup.bash 

可选优化:将上述命令添加到~/.bashrc,实现“新开终端自动加载”,无需每次手动输入:

echo"source ~/catkin_ws/devel/setup.bash">> ~/.bashrc 

四、Step 3:启动EGO-Planner仿真节点

仿真节点是“无人机+环境”的载体,启动后会创建随机障碍物,并等待目标点输入。

3.1 清理旧ROS进程(关键!避免通信冲突)

若之前启动过ROS相关进程(如roscore、仿真节点),未正常关闭会导致“连接重置”错误,需先清理:

# 杀死所有ROS相关进程(包括roscore、节点)pkill -f "ros"&&pkill -f "roscore"

执行后等待2-3秒,确保旧进程完全退出。

3.2 启动单机仿真核心

直接用“绝对路径”启动仿真文件,避免因“功能包名识别错误”导致启动失败(这是新手常踩的坑):

# 启动仿真节点(会自动启动roscore,无需单独启动) roslaunch ~/catkin_ws/src/planner/plan_manage/launch/single_drone_interactive.launch 
  • 启动成功标志:终端持续输出[FSM]: state: WAIT_TARGET, Drone:0. Waiting for target,表示无人机已就绪,等待目标点;
  • 注意:不要关闭这个终端!关闭会导致仿真节点退出。

五、Step 4:发送目标点,触发避障规划

仿真节点就绪后,需新建一个终端发送目标点,让无人机开始规划。

5.1 新建终端并加载环境变量

在JupyterLab中再次点击“终端”图标,新建一个终端,执行:

# 加载环境变量(若已添加到.bashrc,可跳过)source ~/catkin_ws/devel/setup.bash 

5.2 发送正确格式的目标点

关键!之前多次失败的核心原因是“消息格式不匹配”,需严格按照quadrotor_msgs/GoalSet的结构发送(通过rosmsg show quadrotor_msgs/GoalSet可查看结构):

# 发送目标点到/goal_with_id话题,坐标为(x=5.0, y=2.0, z=1.5) rostopic pub -1 /goal_with_id quadrotor_msgs/GoalSet "drone_id: 0 goal: [5.0, 2.0, 1.5]"
  • 参数说明:
    • drone_id: 0:单机场景固定为0(多机时区分不同无人机);
    • goal: [5.0, 2.0, 1.5]:目标点的三维坐标,可根据需求修改(如[8.0, 5.0, 2.0]);
    • -1:表示“发送一次后退出”,无需持续发送。

六、Step 5:验证规划成功(关键日志解读)

发送目标点后,回到“仿真终端”,若出现以下日志,说明EGO-Planner已完全跑通:

  1. 目标点接收成功[INFO] Received goal: 5.000000, 2.000000, 1.500000 → 无人机正确识别目标;
  2. 状态切换正常[FSM]Drone:0, from WAIT_TARGET to SEQUENTIAL_START → 从“等待目标”进入“启动流程”;
  3. 动态重规划成功Drone 0 Replan 0, Success=yes(多次出现)→ 无人机实时计算避障路径,每次重规划都成功;
  4. 轨迹执行中[FSM]Drone:0, from REPLAN_TRAJ to EXEC_TRAJ → 规划出的路径正在被执行,“规划→执行”闭环打通。

若出现Success=no:无需担心,偶尔一次重规划失败是正常的,后续会自动重试,只要大部分Success=yes即可。

七、可选:Rviz可视化(直观看到无人机与轨迹)

若想“眼见为实”,通过Rviz看到无人机、障碍物和彩色规划轨迹,需配置AutoDL远程桌面(纯终端环境无法显示GUI)。

7.1 启动远程桌面服务

在任意终端执行:

# 启动AutoDL远程桌面(首次执行会提示设置密码,记好密码) autodl-desktop 
  • 启动成功后,终端会输出“远程桌面已启动”,并显示访问链接(如http://xxx.autodl.com:xxxx)。

7.2 连接远程桌面

  1. 复制终端输出的远程桌面链接,在本地浏览器中打开;
  2. 输入之前设置的密码,进入Linux桌面环境;
  3. 打开桌面的“Terminal”(类似Windows的命令提示符)。

7.3 启动Rviz

在桌面终端中执行:

# 加载环境变量source ~/catkin_ws/devel/setup.bash # 启动Rviz(加载EGO-Planner预设配置) roslaunch ~/catkin_ws/src/planner/plan_manage/launch/rviz.launch 
  • 可视化效果:Rviz中会显示无人机模型(绿色/蓝色)、随机障碍物(灰色)、彩色规划轨迹(红色/绿色),无人机将沿轨迹飞向目标点。

八、常见问题排查(避坑指南)

  1. 启动仿真报错“RLException: [xxx.launch] is neither a launch file”
    → 原因:功能包名错误或路径错误;解决方案:用绝对路径启动(如本文Step 3.2的命令)。
  2. 发送目标点后无反应,日志仍显示“WAIT_TARGET”
    → 原因:话题名或消息格式错误;解决方案:执行rosnode info /drone_0_ego_planner_node | grep "Subscriptions"确认目标点话题,再用rosmsg show 话题类型确认格式。
  3. Rviz启动报错“qt.qpa.xcb: could not connect to display”
    → 原因:未进入远程桌面,纯终端无GUI环境;解决方案:按Step 7配置远程桌面后再启动Rviz。

九、总结

本文从AutoDL登录到规划成功,覆盖了“环境准备→编译→启动→验证”全流程,核心是避开三个新手坑:

  1. 用“绝对路径”启动仿真文件,避免功能包名识别错误;
  2. rosmsg show确认的消息结构发送目标点,避免格式错误;
  3. 启动前清理旧ROS进程,避免通信冲突。

按照本文步骤操作,即使是ROS新手,也能在1小时内打通EGO-Planner的动态避障功能。后续可尝试修改目标点坐标、调整仿真参数(如障碍物数量),深入探索EGO-Planner的特性。

最后,附上关键命令速查表,方便后续快速复用:

操作目标命令
编译工作空间cd ~/catkin_ws && catkin_make -j1
加载环境变量source ~/catkin_ws/devel/setup.bash
清理ROS进程pkill -f "ros" && pkill -f "roscore"
启动仿真roslaunch ~/catkin_ws/src/planner/plan_manage/launch/single_drone_interactive.launch
发送目标点(x=5,y=2,z=1.5)rostopic pub -1 /goal_with_id quadrotor_msgs/GoalSet "drone_id: 0; goal: [5.0, 2.0, 1.5]"
启动远程桌面autodl-desktop
启动Rvizroslaunch ~/catkin_ws/src/planner/plan_manage/launch/rviz.launch

要不要我帮你整理一份 “EGO-Planner 常见问题排查手册”?把本文中提到的报错和解决方案汇总成文档,方便你后续遇到问题时快速定位原因。

Read more

Harness Engineering工程化教程(非常详细),AI Agent复杂长任务从入门到精通,收藏这一篇就够了!

Harness Engineering工程化教程(非常详细),AI Agent复杂长任务从入门到精通,收藏这一篇就够了!

Views are my own. “Yet Another Chapter”,Generated by Google Lyria OpenAI 的一个团队在五个月内用 Codex 写了一百万行代码,三个工程师平均每天合并 3.5 个 PR,没有一行代码是工程师手写的。Anthropic 的 Claude Code 能连续工作数天构建完整应用。LangChain 的 Coding Agent 在 Terminal Bench 2.0 上从 52.8% 跃升至 66.5%,却只改了 harness,模型没动。 随着 Coding Agent 能力过去一段时间的突飞猛进,软件工程师的工作变了:从“

【深度解析】腾讯Claw三剑客横评:WorkBuddy、QClaw、CodeBuddy,3款AI Agent实测对比与选型指南

【深度解析】腾讯Claw三剑客横评:WorkBuddy、QClaw、CodeBuddy,3款AI Agent实测对比与选型指南

**摘要:**2026年AI Agent赛道最火的关键词——“养龙虾"🦞。腾讯一口气推出 WorkBuddy、QClaw、CodeBuddy 三款 Claw 系产品,分别切入企业办公、个人助手、AI编程三大场景。本文以腾讯10年程序员视角,从定位差异、核心能力、技术架构、实测体验、选型策略5个维度深度横评三款产品,帮你找到最适合自己的那只"虾”。 目录 * 前言 * 一、龙虾大战背景:为什么腾讯要出 3 只? * 1.1 OpenClaw 引爆 AI Agent 赛道 * 1.2 国内大厂入局图谱 * 二、WorkBuddy:企业级 AI 办公中台 🏢 * 2.1 产品定位 * 2.

支持国内股票分析的AI智能开源项目(GitHub Star数量Top榜)

支持国内股票分析的AI智能开源项目(GitHub Star数量Top榜) 一、核心结论 GitHub上支持国内股票(A股)分析且Star数量靠前的AI智能开源项目,按Star数量降序排列依次为: 1. OpenBB(57.4k Star):开源金融数据平台,支持A股等多市场数据获取与AI辅助分析; 2. ai-hedge-fund(44.9k Star):AI对冲基金模拟系统,通过多智能体协作模拟投资大师策略,可适配A股; 3. FinGenius(新兴项目,Star快速增长):专为A股设计的多智能体博弈分析工具,融合16位AI专家协作; 4. daily_stock_analysis(5.5k Star):A股智能分析系统,基于大模型生成每日决策报告。 二、项目详细说明 1. OpenBB:开源金融数据与分析平台(57.4k Star) * 项目地址:https://github.

本地Qwen + ComfyUI 制作AI漫剧完整保姆级教程(2026年3月最新版)

本地Qwen + ComfyUI 制作AI漫剧完整保姆级教程(2026年3月最新版)

这个组合是目前零成本、无限生成、角色一致性最强的本地方案! Qwen(本地大模型)负责写剧本 + 自动拆分镜 + 生成提示词;ComfyUI负责图像生成 + 角色一致性 + 动态视频。 适合新手/日更党,低配8GB显存就能跑(推荐12GB+更流畅)。全流程免费、无网络依赖、隐私安全。 模型+:工作流:https://pan.quark.cn/s/efc430e1996d 一、硬件要求(必看) * GPU:NVIDIA 8GB显存起步(RTX 3060 12GB最稳),AMD/Intel也可(需ROCm/OneAPI)。 * 内存:16GB+ RAM(32GB最佳)。 * 硬盘:SSD 50GB+ 空闲空间。 * 系统:Windows