云计算百科
云计算领域专业知识百科平台

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

  • 初始化 rosdep
  • sudo rosdep init
    rosdep update

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

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

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

  • rosdep 自动安装依赖(关键步骤)
  • cd ~/ros2_ws
    rosdep install –from-paths src –ignore-src -y –rosdistro humble

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

  • 编译(8G 内存机器务必限流!)
  • source /opt/ros/humble/setup.bash
    cd ~/ros2_ws
    MAKEFLAGS="-j2" colcon build –symlink-install –executor sequential

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

  • 配置环境变量
  • echo "source ~/ros2_ws/install/setup.bash" >> ~/.bashrc
    source ~/.bashrc

  • 安装 GeographicLib 地理数据集
  • export http_proxy=http://127.0.0.1:7897
    export https_proxy=http://127.0.0.1:7897
    sudo -E ~/ros2_ws/src/mavros/mavros/scripts/install_geographiclib_datasets.sh

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

  • 验证安装
  • ros2 pkg list | grep mav
    ls /usr/share/GeographicLib/

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

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

    赞(0)
    未经允许不得转载:网硕互联帮助中心 » Ubuntu系统安装Mavros巨坑报错
    分享到: 更多 (0)

    评论 抢沙发

    评论前必须登录!