简介:继续更新一些报错和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
sudorosdep 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_wsgitclone https://github.com/mavlink/mavros.git src/mavros--branchros2 --recurse-submodules注意分支是 ros2,不是 master。这一步要访问 GitHub,国内必须开代理
- rosdep 自动安装依赖(关键步骤)
cd~/ros2_ws rosdepinstall--from-paths src --ignore-src-y--rosdistrohumble这一步会自动解析并安装 mavros 需要的全部依赖(mavlink、geographic-msgs、diagnostic-updater、tf2 等),比手工装准得多。
- 编译(8G 内存机器务必限流!)
source/opt/ros/humble/setup.bashcd~/ros2_wsMAKEFLAGS="-j2"colcon build --symlink-install--executorsequential16G 以上内存可以直接 colcon build --symlink-install。8G 内存不加限流必卡死
- 配置环境变量
echo"source ~/ros2_ws/install/setup.bash">>~/.bashrcsource~/.bashrc- 安装 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)
(没有梯子的话。就自己去尝试一下国内镜像,如果不行可以关注我找我要资源包)
- 验证安装
ros2 pkg list|grepmavls/usr/share/GeographicLib/预期输出:
libmavconn
mavros
mavros_extras
mavros_msgs
【插入截图:最终验证,ros2 pkg list 输出 + GeographicLib 目录】
看到 4 个包 + 地理数据目录里有 geoids/gravity/magnetic,安装完成。
如果有帮助,记得点赞关注我,我会继续更新难解决的报错