news 2026/10/8 19:39:45

Ubuntu系统安装Mavros巨坑报错

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Ubuntu系统安装Mavros巨坑报错

简介:继续更新一些报错和AI使用问题(如果有帮助,记得点赞关注我,我会继续更新难解决的报错,其他帖子也有一些报错解决和AI使用注意事项)

目录:
1:报错
2:ai问题
3:具体解决方法

一:报错

1、
安装Mavros途中会遇到该报错,如果你使用AI帮你解决问题的话,会一直无法解决

根本原因:Ubuntu 22.04 + Humble 上,sudo apt install ros-humble-mavros 装不了!
MAVROS 官方从 Humble 起不再发布 apt 二进制包,ROS 官方源里只剩 ros-humble-mavros-msgs(消息定义包),主程序必须源码编译——这也是 PX4 官方推荐的方式。
如果使用AI。询问他为什么报错,他会一直在一个死循环里面打转

二:AI使用问题

一:反复带我去尝试错误的路,在不同的死胡同里面打转,看似找了新的方法。实则没什么用

解决方法:**给自己设定一个时间限制,**一个钟头或半个钟头,如果在一个报错中尝试过长时间,就去寻找一下其他的路径.
例如:去询问其他的AI,去给你的AI更多的信息,去csdn等网站寻找合适的帖子,去询问你的学长学姐,有经验的人.
在使用AI的时候,一定要看他到底给你做了什么事,你要判断他是否在同一个地方反复在打转.他会打转,你必须命令他跳出来。

二:AI会假装收到了你给的信息,实则并没有根据你给的信息进行运算

解决方法:在你给出信息之后,AI有可能会在嘴上承认,实则并没有根据你给的信息重新进行排查
一:低效问法:
“Ubuntu 怎么装 MAVROS?”

高效问法:
“Ubuntu 22.04 + ROS2 Humble装 MAVROS。
怀疑:Humble 源里可能没有 ros-humble-mavros 主包。
请先确认这个包在源里是否存在,再给方案。”
`关键**:将所有的配置信息和你怀疑的点加在对话里询问,不要分别给,AI 被"点名"后,就很难绕过去。**

二、反问 AI 三个"验真"问题

不管它给什么方案,先追问这三句:

追问逼它做什么
“你确定这条命令在 Humble 上有效吗?”逼它区分 ROS1/ROS2
“如果报 Unable to locate package,你的下一步是什么?”逼它预先考虑失败分支
“有没有可能这个包根本不在源里?”逼它质疑前提

AI 只有在被追问时,才会启动"验证模式"——这是很实用的技巧。
关键:需要仔细的询问他该步骤为何有效?追问细节。

三:建立最小验证习惯
查什么,取决于"你要干什么"

命令 = 动作 + 对象。拆开这两个,你就知道该查什么:

动作类型对象该查什么
装(install)包包存在吗?
下(wget/clone)网址/仓库网址通吗?
跑(bash/执行)脚本/程序它干什么?
改(改配置/文件)文件现在是什么状态?
删(rm/清理)文件/目录里面有什么?
编译(build)项目我资源够吗?

规律:动作决定"要不要查",对象决定"查具体什么"。

这句话是整张表的核心,拆开理解:

  • 动作决定"要不要查":先看你要执行的动作是什么。装包、下载、运行、改配置、删除、编译,每个动作背后都对应一个"风险点"。比如"装"的风险点是"包到底存不存在",“跑"的风险点是"这个脚本到底干了什么”。动作不同,风险点就不同,所以要不要查、查什么,第一步由动作说了算。
  • 对象决定"查具体什么":动作只告诉你"该查了",但查的对象是谁,由你操作的对象决定。对象是"包",就去查包是否存在;对象是"网址",就去查网址通不通;对象是"文件",就去查文件当前内容。对象不同,查询的命令和方向完全不同。

举个例子:同样是"装"这个动作——

  • 装一个 apt 包:查apt-cache policy 包名,看它到底在不在源里;
  • 装一个 pip 包:查pip index versions 包名,看 PyPI 上有没有这个版本;
  • 装一个源码包:查仓库分支、依赖清单,看编译条件是否满足。

动作都是"装",但因为对象不同,查法完全不同。所以遇到报错时,先别急着复制命令,先问自己一句:“我这个动作,风险点在哪?我这个对象,该用什么命令去查?”想清楚这两点,你就不会在死胡同里打转了。决定"查具体什么"。**

四:想让 AI 靠谱,就让它交出可核对的产物,而不是索要一个保证。
让它"给可执行的验证命令",你自己跑*

完整安装步骤 1. 安装编译工具和基础依赖 ```bash sudo apt update sudo apt install -y python3-vcstool python3-rosdep2 python3-colcon-common-extensions \ python3-pip git cmake build-essential libgeographic-dev libboost-system-dev
  1. 初始化 rosdep
sudorosdep init rosdep update

如果 rosdep init 报 already exists,说明初始化过,忽略即可。
如果 rosdep update 网络失败(国内常见问题),可以换国内版:sudo pip3 install rosdepc && sudo rosdepc init && rosdepc update。

  1. 建工作空间,拉取 mavros 源码(需代理)
mkdir-p~/ros2_ws/src&&cd~/ros2_wsgitclone https://github.com/mavlink/mavros.git src/mavros--branchros2 --recurse-submodules

注意分支是 ros2,不是 master。这一步要访问 GitHub,国内必须开代理

  1. rosdep 自动安装依赖(关键步骤)
cd~/ros2_ws rosdepinstall--from-paths src --ignore-src-y--rosdistrohumble

这一步会自动解析并安装 mavros 需要的全部依赖(mavlink、geographic-msgs、diagnostic-updater、tf2 等),比手工装准得多。

  1. 编译(8G 内存机器务必限流!)
source/opt/ros/humble/setup.bashcd~/ros2_wsMAKEFLAGS="-j2"colcon build --symlink-install--executorsequential

16G 以上内存可以直接 colcon build --symlink-install。8G 内存不加限流必卡死

  1. 配置环境变量
echo"source ~/ros2_ws/install/setup.bash">>~/.bashrcsource~/.bashrc
  1. 安装 GeographicLib 地理数据集
exporthttp_proxy=http://127.0.0.1:7897exporthttps_proxy=http://127.0.0.1:7897sudo-E~/ros2_ws/src/mavros/mavros/scripts/install_geographiclib_datasets.sh

挂梯子,端口按自己代理软件的实际端口改。-E 不能省(不会问ai)
(没有梯子的话。就自己去尝试一下国内镜像,如果不行可以关注我找我要资源包)

  1. 验证安装
ros2 pkg list|grepmavls/usr/share/GeographicLib/

预期输出:
libmavconn
mavros
mavros_extras
mavros_msgs
【插入截图:最终验证,ros2 pkg list 输出 + GeographicLib 目录】
看到 4 个包 + 地理数据目录里有 geoids/gravity/magnetic,安装完成。

如果有帮助,记得点赞关注我,我会继续更新难解决的报错

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/8 19:37:54

【AI大模型】显存占用过高:推理显存优化技巧全总结

【AI大模型】显存占用过高:推理显存优化技巧全总结 核心结论:大模型推理显存高,占用主要来自三部分:模型权重、KV Cache、激活与临时张量。要降低显存,最有效的三板斧是量化压缩权重、控制KV Cache规模、精简上下文与输出长度;再辅以分片加载、梯度释放、内存碎片治理等…

作者头像 李华
网站建设 2026/10/8 19:33:59

小白程序员如何抓住机遇拿高薪?大模型Agent落地经验是关键!

Meta裁员潮加速AI赛道发展,程序员职业面临变革。掌握大模型和Agent项目经验成为高薪就业的关键。本文介绍了如何通过系统学习,掌握AI大模型技术,满足企业需求,实现高薪就业。课程涵盖基础理论、实战项目,助力成为合格的…

作者头像 李华
网站建设 2026/10/8 19:32:19

Blazor Admin 关联表怎么处理?Navigate、Include、Join 实战

后台开发里关联表几乎是必选项:订单要显示客户名、文章要选专栏、用户要分配角色、菜单要挂父子。这篇讲 EasyAdminBlazor 里关联数据从建模到查询、展示、编辑的完整做法。 一、四种关联,四种 Navigate 写法 FreeSql 用 [Navigate] 描述关联&#xff0…

作者头像 李华
网站建设 2026/10/8 19:27:46

theme-factory - desert-rose

沙漠玫瑰(Desert Rose) 一个柔和精致、带有灰粉色调的主题,非常适合优雅的演示。 调色板 灰玫瑰粉(Dusty Rose):#d4a5a5 - 柔和的主色陶土色(Clay):#b87d6d - 质朴的点缀…

作者头像 李华
网站建设 2026/10/8 19:26:47

基于springboot宠物领养系统-计算机毕设 附源码【课程设计】94217

摘要城市流浪动物数量持续增长,传统线下领养模式面临信息不对称、流程不透明、匹配效率低下等多重困境。宠物领养需求与救助资源之间缺乏有效连接渠道,导致大量宠物无法找到合适家庭。互联网技术发展为解决这一问题提供了新路径。基于Spring Boot框架构建…

作者头像 李华
网站建设 2026/10/8 19:25:56

impeccable:基于PRODUCT.md的声明式交付契约验证工具

1. 项目概述:从一个词出发,理解“impeccable”在开发者工具链中的真实定位 “impeccable”这个词本身是英文形容词,意为“无可挑剔的、完美无瑕的”,常用于描述工艺、服务或执行质量。但放在当前技术语境下——尤其是与 npx 、…

作者头像 李华