news 2026/10/2 3:54:20

一行命令搞定ROS安装:鱼香ROS一键安装全解析

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
一行命令搞定ROS安装:鱼香ROS一键安装全解析

搞了两天没搞定的事,小鱼用一行命令帮你做完了。

先说说我自己的经历。最开始学ROS的时候,我自己手动装ROS Noetic,光配置源、处理依赖冲突、等编译就折腾了一个周末。装完了还有一堆环境变量要设置,更别提中间还遇到好几次下载包到一半就断开的情况。后来在群里看到有人用了鱼香ROS的一键安装,抱着试试看的心态在自己电脑上重装了一遍,从头到尾十几分钟,中间只需要回答几个交互问题,剩下的事情全都自动化处理了。

这篇文章就来说说鱼香ROS一键安装这个工具,它到底帮你做了什么,为什么要这样装,完整实操过程是什么样,以及装了这么多次之后我自己总结出来的避坑经验。不管你是刚接触ROS的新手,还是之前在手动安装上栽过跟头的老手,只要目标是把ROS快速、干净地跑起来,这篇内容应该能帮到你。

1. 为什么说ROS安装是一道“劝退关”

1.1 原生安装路上的“五座大山”

先别急着跑那条命令,我觉得有必要先讲清楚:ROS安装之所以劝退了那么多人,真不是大家动手能力差,而是原生安装这条路本身就布满了雷。我把它总结成“五座大山”。

第一座山是系统版本匹配。ROS不是一个独立运行的软件,它和Ubuntu版本、内核版本、Python版本深度绑定。ROS 1 Noetic需要Ubuntu 20.04,ROS 2 Humble要求Ubuntu 22.04,如果你拿一个Ubuntu 18.04去装Noetic,第一步就会在添加软件源的时候得到一堆404,因为官方源里根本没有对应的包。很多人一开始就倒在这一步,装之前根本没意识到操作系统和ROS版本之间是强绑定关系。

第二座山是软件源问题。ROS默认的软件源是官方源,在国内网络环境下,下载速度经常只有几十KB/s。ROS整个生态装下来要拉取的包数量非常多,动辄几百个,光是等待下载就足够让人崩溃。手动安装的办法是把源替换成国内镜像,但不同发行版的镜像源写法不一样,Ubuntu源和ROS源的配置又是两套体系,写错一个地方后面全盘皆输。

第三座山是依赖地狱。ROS底层依赖Boost、OpenCV、Eigen等一大堆第三方库,还会依赖Python的不同版本。安装过程中经常会出现某个依赖版本冲突,apt告诉你“需要 foo 但是将安装 bar”,这时候绝大多数新手是一脸懵的。手动装的话,你得自己一个个去查、去调,搞不好还会把系统里原来好好的包给升级坏掉。

第四座山是编译时间。如果走源码编译的方式装ROS,光编译核心功能就要几十分钟到一个多小时,电脑性能弱一点的话两个小时都正常。而且编译过程中一旦报错,排查起来非常耗时,日志里几百上千行输出,根本不知道该看哪一行。

第五座山是环境变量配置。就算你千辛万苦把包都装好了,还要手动配置ROS的环境变量,包括source各种setup.bash,设置ROS_MASTER_URI、ROS_HOSTNAME等。很多人装完ros跑roscore,报错说找不到命令,十有八九就是环境变量没配好。这五座大山叠加在一起,就是很多人学ROS卡住的第一道坎。

1.2 ROS版本与Ubuntu系统的匹配关系

这里单独拉一节出来说,因为版本匹配问题真的是最容易被忽略的。我见过太多人上来就问“我能不能在Ubuntu 22.04上装ROS Noetic”这句话本身就是个坑。ROS 1的最后版本是Noetic,官方规定的首选系统是Ubuntu 20.04;ROS 2目前的主力长期支持版本是Humble,对应Ubuntu 22.04。除了这几个,还有一些过渡版本比如ROS 2 Foxy对应Ubuntu 20.04。我把比较常见的对应关系整理成一张表,方便你参考:

ROS版本对应的Ubuntu版本支持状态适用场景
ROS 1 NoeticUbuntu 20.04维护期快结束老教学项目、论文复现
ROS 2 FoxyUbuntu 20.04已停止维护ROS 2学习过渡期
ROS 2 HumbleUbuntu 22.04长期支持(LTS)最推荐的学习版本
ROS 2 IronUbuntu 22.04短期支持尝鲜新特性

为什么会有这种绑定关系?因为ROS的二进制包都是针对特定Ubuntu发行版编译的,底层链接的库版本不一样,换个系统就可能加载失败。这一点很像手机App对Android版本的要求,低版本系统装不了新版App,强行装也会闪退。

所以在选型的时候我的建议很直接:如果你是全新开始,直接选Ubuntu 22.04加ROS 2 Humble,这套组合是当前时代的主流,社区资料多,官方支持周期也长。如果你是在校学生、需要复现很多教材里的ROS 1例子,那就用Ubuntu 20.04加ROS 1 Noetic,这个组合目前还有大量课程在用。顺便说一句,如果你以后想做Gazebo仿真,版本匹配更要慎重,Gazebo 11配Noetic、Gazebo 11或Ignition配Humble,都是常见组合,一块选好能省很多事。

1.3 前期手动安装踩过的真实教训

手动安装ROS的教程网上多得是,但为什么成功率不高?因为教程往往默认你的环境是“干净”的,而现实里的Ubuntu环境往往用了一阵子、装过一些别的东西。比如你之前装过Anaconda,把系统的Python指到了conda环境,再去装ROS,非常容易遇到模块路径混乱的问题;比如你装过OpenCV的另一个版本,ROS编译的时候检测到版本不对,直接报错;再比如你之前在软件源列表里改过源,跟ROS源混在一起后,apt update直接报公钥错误。

我自己手动装翻车最惨的一次,是在一台Ubuntu 20.04上装Noetic,装完之后创建空工作区也报一堆找不到头文件。后来查来查去,发现是之前装某个深度学习框架的时候,把系统里关键的编译工具链给影响到了。这种问题你让新手去排查,真的就是在劝退。而一键安装工具为什么能规避这些?因为它自己有一套完整的依赖检查和处理流程,后面我详细展开。简单说,把专业运维做的事交还给脚本,成功率自然就上来了。

2. 鱼香一键安装:一条命令背后的门道

2.1 一行命令拆开来看,到底干了什么

第一次看到鱼香的安装命令,很多人会觉得玄乎:就一行wget加一个source,怎么能搞定那么多事?其实这一条命令只是一把钥匙,真正的核心是它拉下来的那个脚本。

wget http://fishros.com/install -O fishros && . ./fishros

wget把服务器上的安装脚本下载到本地,命名为fishros;&&符号表示前面的命令成功执行后才执行后面;. ./fishros是用source方式在当前shell中执行脚本。为什么用source而不是直接bash执行?这一点很关键:source会在当前shell进程里执行脚本,这样脚本里设置的环境变量能保留下来。如果换成bash fishros,脚本在子进程里跑完,环境变量就丢了,最终等于白装。

下载下来的这个脚本本身是个终端菜单程序。运行后会弹出一个交互选择界面,让你选择要安装的内容,例如ROS 1、ROS 2、Gazebo、常用工具和依赖库,甚至还有嵌入式开发板相关的配置。选完编号,后面就是脚本自动清理旧配置、自动切换镜像源、自动调用apt安装依赖包,整个过程基本不用人盯。

这背后的设计思路,其实就是把“人工配置流程”翻译成“自动执行流程”。资深开发者手动安装时做的事情,脚本都会做:检查系统版本、配置apt源、安装ros-key、更新源、批量安装ROS核心包、初始化rosdep、设置环境变量。只不过脚本把这些步骤固化了,还做了很多人容易漏掉的容错处理。用一句话总结就是:手动装ROS是在做系统运维,而一键安装是在使用一个成熟工具。

2.2 核心能力拆解:换源、依赖、版本、rosdep

鱼香安装工具最核心的几个能力,我逐一拆开说。

第一个是自动换源。脚本会检测你当前的系统版本,然后自动把ROS源和apt源配置成国内镜像,这一步解决的就是前面说的“软件源”问题。镜像源配置完成之后,下载速度能有非常明显的变化,我自己实测从几十KB/s提升到几MB/s,这个差距在实际安装体验上是天壤之别。当然它也支持手动指定源,适合一些特殊网络环境。

第二个是依赖管理。ROS安装过程中需要处理大量依赖,脚本内置了对不同Ubuntu版本、不同ROS版本的依赖关系清单,遇到缺的依赖会直接用apt补齐。它还能处理一部分常见的冲突,比如检测到你已经装过某些版本的库导致冲突时,会先提示你处理还是强制覆盖。这一点对不熟悉apt依赖机制的新手尤其友好。

第三个是版本选择。脚本支持安装ROS 1和ROS 2的多个版本,你不需要自己记哪个版本配哪个Ubuntu系统,菜单里会有清晰提示。菜单会显示当前系统适合装哪些版本,比如识别到Ubuntu 20.04就会推荐Noetic和Foxy,识别到Ubuntu 22.04就会推荐Humble和Iron,基本上不会给你选错的机会。

第四个是rosdep初始化。rosdep是ROS里用来管理依赖的包管理器,很多手动安装教程会在这里卡住,因为rosdep update在国内网络环境下经常超时。鱼香脚本会帮你配置rosdep的源,并执行初始化,成功率对比手动操作提升非常明显。这一点很多从手动安装转过来的用户会特别有感触,因为以前卡得最久的就是这一步。

2.3 一键安装与手动安装的对比

我从自己的体验出发,把两种方式做一个实际对比,这样你理解起来更直观:

对比维度手动安装鱼香一键安装
需要提前了解版本匹配知识必须,否则寸步难行不需要,菜单会提示
软件源配置手写源文件,容易出错自动检测并配置镜像
依赖冲突处理自己排查,难度极大脚本自动处理常见冲突
全程耗时(以Noetic为例)2-6小时,看网络情况5-15分钟
新手平均成功率很低,反复翻车非常高,基本一次过
环境变量配置手动source,容易漏自动写入bashrc
排错成本极高,日志难读选项清晰,可重跑脚本

这个表格不是说手动安装一无是处。如果你之后想做ROS相关的深度开发,手动装一遍能让你对系统结构有更深的理解,但那是“学习”阶段该做的事,不是“使用”阶段该做的事。工具存在的意义就是把人从繁琐的重复劳动里解放出来,把精力留给真正重要的机器人开发本身。

3. 完整实操记录:从零到ROS跑起来

3.1 环境准备:虚拟机、双系统与最低配置

在真正跑一键安装之前,先搞定运行环境。这里分两种情况说。

如果电脑性能还可以,内存16G以上,硬盘有足够剩余空间,直接用虚拟机装Ubuntu是很省事的选择。虚拟机的好处是不影响主系统,想删就删,适合新手反复折腾。我自己在VMware和VirtualBox里都试过,Ubuntu 22.04虚拟机里跑ROS 2 Humble完全没问题。虚拟机设置里给Ubuntu分的内存建议8G,CPU核数至少2个,磁盘建议60G起。别嫌给得大,ROS装完、再加Gazebo和几个仿真包,轻松吃掉二十几个G,留出余量后面才不焦虑。

如果是深度学习方向,需要GPU加速,那就建议双系统。虚拟机里用NVIDIA的GPU做ROS加深度学习仿真会非常痛苦,驱动和Cuda都要额外处理,性能也打折扣。双系统安装稍微复杂,但装完之后运行ROS和Gazebo的体验会顺滑很多。至于双系统怎么装,网上教程很多,注意Ubuntu分区的时候给根分区和home分区留足空间就行。

很多人问最低配置到底要多低。给一个我实测过的大致门槛:CPU i3级别及以上,内存4G起步,硬盘剩余30G以上。低于这个配置,跑小乌龟和Rviz勉强可以,但要跑Gazebo仿真或者SLAM建图就比较吃力了。如果你手头就是这么一台机器,也先不用气馁,ROS学习初期的很多基础概念在小乌龟和Rviz里就能掌握,等后面需要重仿真了再想着换机器。

3.2 交互式安装全程实录

环境准备好之后,整个安装流程就是下面这些步骤。我在一台Ubuntu 20.04的全新虚拟机里实际跑了一次,下面就是当时的完整过程。

第一步,打开终端,确认系统能联网,然后执行安装命令:

wget http://fishros.com/install -O fishros && . ./fishros

第一次执行的时候,wget会显示下载脚本的进度条,脚本不大,几百KB左右,网络正常几秒钟就下载完了。下载完成后自动进入脚本界面。

第二步,脚本会检查你的系统版本。看到类似下面的输出说明检测通过了:

[INFO] 检测系统版本: Ubuntu 20.04.6 LTS [INFO] 检测系统架构: x86_64

如果系统不是Ubuntu,或者版本太老,脚本会给出提示并中止。这一步可以避免很多人瞎装的问题:版本不对直接拦住,而不是装到一半才报错。顺便提一句,树莓派、Jetson这种ARM架构设备,脚本也有对应适配,但选项会有所不同,这里就以x86的Ubuntu为例。

第三步,出现选择菜单,大概长这样:

请选择要安装的内容: 1. ROS(ROS 1 发行版,如 Noetic) 2. ROS 2(ROS 2 发行版,如 Humble) 3. Gazebo(仿真环境独立安装) 4. 基础工具与依赖库 ... 请输入对应的数字:

这里输入1进入ROS安装,然后脚本会让你继续选择具体版本。如果刚才检测到的是Ubuntu 20.04,它会推荐Noetic;如果是Ubuntu 22.04,则会推荐Humble。我当时选择的是Noetic,因为要配合课程里的ROS 1教程。如果你想学ROS 2,输入2之后选择Humble即可。

第四步,选择安装模式。通常会有“桌面完整版”和“基础版”两种,桌面完整版会包含Rviz、Gazebo、各种可视化工具和常用功能包,占用空间大一些;基础版只有核心功能,适合对体积敏感的场景。新手我建议直接选桌面完整版,因为后面做仿真、可视化几乎一定会用到Rviz和Gazebo,后面单独补反而麻烦。

第五步,脚本自动开始配置源、更新源、安装依赖包。这个过程终端会滚动输出大量日志,你要做的就是等。我当时实测Noetic完整版下载加安装大概花了十来分钟,主要时间花在apt下载上。中间如果网络出现波动,脚本会自动重试几次,比手动装省心很多。

第六步,安装完成后,脚本会询问是否把环境配置写入shell配置文件。这一步一定选是,否则每次打开新终端都要手动source。如果误选了否,之后可以自己在配置文件里补上,ROS 1补source /opt/ros/noetic/setup.bash,ROS 2补source /opt/ros/humble/setup.bash。

第七步,脚本提示安装完成,建议重启终端。到这一步,安装流程就全部结束了,此时你打开一个新终端,输入rosversion -d(ROS 1)或者printenv ROS_DISTRO(ROS 2),就能看到当前版本信息。

3.3 小乌龟测试:最简单的安装验金石

安装完成之后,怎么判断真的装好了?我推荐用ROS最经典的入门例子,小乌龟仿真器。

打开第一个终端,启动ROS核心:

roscore

看到类似下面的输出,说明ROS主节点启动了:

started core service [/rosout]

然后打开第二个终端,启动小乌龟节点:

rosrun turtlesim turtlesim_node

这时桌面上会弹出一个蓝色背景的窗口,中间有一只小乌龟。再打开第三个终端,启动键盘控制节点:

rosrun turtlesim teleop_turtle

在第三个终端里按键盘上的方向键,小乌龟就会在窗口里移动,还能画出运动轨迹。如果这三步都正常,说明ROS的安装、节点通信、话题机制都是OK的,可以放心往下学。

ROS 2的命令略有不同,不需要roscore,而是直接:

source /opt/ros/humble/setup.bash ros2 run turtlesim turtlesim_node ros2 run turtlesim turtle_teleop_key

ROS 2节点之间由DDS自动完成通信,这也是ROS 2和ROS 1在架构上的一个明显差别。小乌龟测试虽然看起来简单,但它验证的是整条通信链路,比单纯看安装日志可靠得多。凡是装完说“好像有问题”的,我第一件事就问小乌龟跑起来没有,跑不起来说啥都白搭。

3.4 环境变量配置与版本混装问题

安装的时候脚本虽然会帮我们配置环境变量,但理解这个机制依然是必要的,因为后面开发经常要跟它打交道。

在Ubuntu终端里输入以下命令可以查看当前ROS版本:

echo $ROS_DISTRO

如果输出noetic,说明当前shell已经加载了ROS 1 Noetic的环境。ROS 1的核心环境变量主要是ROS_ROOT、ROS_PACKAGE_PATH、ROS_MASTER_URI等。ROS 2不一样,它依赖的是AMENT_PREFIX_PATH这些变量。

环境变量的加载原理其实很简单:安装的ROS包放在/opt/ros/目录下,这个目录里有一个setup.bash文件,里面配置了各种路径和环境变量。我们在~/.bashrc里加一行source /opt/ros/noetic/setup.bash,每次打开新终端就会自动加载。如果哪一天你打开终端却运行不了ros命令,第一反应就是检查~/.bashrc里有没有这一行,或者当前终端有没有手动source过。

还有一个很容易忽略的坑:如果同一台电脑上同时装了ROS 1和ROS 2,两个版本的setup.bash都写在~/.bashrc里,后加载的那个会把环境变量覆盖成自己的版本,导致你每次想用另一个版本还得手动source。我的建议是新手不要在同一台机器上混装ROS 1和ROS 2,这两个版本的命令体系差异很大,混着用非常容易出现“明明装了却命令不存在”的诡异问题。如果你确实有双版本需求,建议用官方推荐的Docker方式隔离,各跑各的,互不干扰。

4. 安装与使用中的高频问题排查

4.1 网络问题:下载失败、卡住、源不可用

鱼香一键安装虽然解决了源的问题,但受网络环境影响依然会出现下载失败。最常见的情况是脚本在执行apt更新时卡住,或者某些包下载到一半报出类似“Failed to fetch”的错误。

我自己的处理方法是,先确认网络能正常访问镜像源:

ping mirrors.aliyun.com

如果ping不通,检查一下网络连接。虚拟机用户特别容易出现NAT模式下DNS解析异常,可以试着重置一下虚拟网卡,或者把Ubuntu的DNS改成公用DNS。如果网络正常但还是下载失败,多半是镜像源的某个节点暂时不可用,退出脚本重新执行一次,脚本会重新选择可用镜像。

还有个比较隐蔽的问题:有些校园网、公司内网会对特定域名做限制,导致wget下载脚本的时候一直超时。这种情况我的建议是换一个网络环境再试,或者用手机热点试一次。别小看这一步,我见过好几个人的问题就是卡在这里。你可能会觉得这种问题很蠢,但真实环境里就是会存在,提前有心理准备能省不少时间。

4.2 磁盘空间不足的检查与清理

如果ROS装到一半报磁盘空间不足,这也是常见问题。特别是虚拟机场景下,虚拟磁盘默认容量有限,Ubuntu系统加桌面环境、开发工具占掉大半,再装ROS很容易不够。

遇到这个情况,要么扩容虚拟磁盘,要么清理现有空间。清理可以用系统自带的磁盘分析工具看一下哪些目录占空间大,比较常见的重灾区是apt安装包缓存。安装完之后清理一下:

sudo apt clean

这个命令释放的是apt下载的deb安装包缓存,不影响已安装软件,释放几个G是很正常的。另外,日志文件、旧内核也可以清理,但新手不建议乱动内核相关的东西。如果你想省心,最简单的办法就是一开始把虚拟磁盘给够,Ubuntu系统盘直接干到80G,基本就不会在为空间发愁了。ROS这个生态就是很占空间,尤其是装了Gazebo模型库之后,认识这个事实比到处找清理技巧更重要。

4.3 与Anaconda等Python环境的冲突

这是我在实际帮别人排查时碰到次数最多的一个问题。很多学ROS的人同时也是学深度学习的,系统里装了Anaconda,而且大概率在shell配置文件里自动加了conda的初始化配置,导致每次打开终端默认进入base环境。

ROS和Anaconda的冲突主要在Python路径上。conda环境的Python是它自己的一套,系统原本的Python是/usr/bin/python3。ROS的很多工具链依赖的是系统Python和对应的pip包,如果你在conda环境下去编译ROS功能包,经常会报出找不到module、找不到Python头文件之类的错误。

最简单的处理办法是关掉conda的自动激活,改成手动激活:

conda config --set auto_activate_base false

然后每次要用conda环境的时候,手动执行conda activate环境名。这样平时终端里用的就是系统Python,ROS相关操作不会受干扰;做深度学习的时候再单独激活conda环境,两边互不打扰。这个方法我已经在很多机器上验证过,目前是最省事的。如果你不想改配置文件,也可以在运行ROS命令前手动conda deactivate退出base环境,但这样就容易忘,不如一劳永逸改掉自动激活。

4.4 安装验证失败的常见排查清单

小乌龟跑不起来的排查,我整理几条经验。

roscore启动后马上退出的,先看日志提示。常见原因有:ROS日志目录权限有问题,或者磁盘满了。删除~/.ros目录,这个目录是运行时临时生成的,删了没影响,再启动roscore一般能解决。

rosrun提示找不到turtlesim包的,说明环境变量没有正确加载。先确认一下echo $ROS_PACKAGE_PATH里有没有包含/opt/ros/noetic/share路径,如果没有,就重新source一下setup.bash。

小乌龟窗口弹出来但是一片黑色的,在虚拟机里比较常见,这是显卡驱动或者OpenGL渲染的问题,不影响节点运行。可以先忽略继续学习,如果实在介意,在虚拟机设置里把3D加速关掉再重新启动,或者换一个窗口管理器。

另外还有一个我见过多次的情况:安装完成之后,用户没关终端,直接就在原来的终端里运行ros命令,结果提示找不到命令。这不是安装失败,而是当前终端没有加载新的环境变量。关掉终端重新开一个,问题就没了。别看这个原因简单,实际遇到的人不少。

5. 装完之后的学习路径参考

5.1 用Rviz与Gazebo把“仿真感”拉满

装好ROS不是终点,而是起点。很多人的误区是装完就不知道干什么了,我建议把官方经典的案例按顺序跑一遍。

除了前面说的小乌龟,接着一定要接触Rviz。启动Rviz的方式很简单:

rosrun rviz rviz

然后把小乌龟的坐标变换话题添加进去,你就能在Rviz里看到小乌龟的三维位姿。这个案例虽然简单,但能让你第一次把ROS的“话题”和“坐标变换”这两个核心概念真正可视化地理解。很多人在文字层面理解不了什么是tf树,到Rviz里拖一拖、转一转,一下就明白了。

再进一步,把Gazebo跑起来,在仿真的环境里加载一个机器人模型。Gazebo对新手来说上手会有一点门槛,但它是后面做自主导航、机械臂仿真绕不开的工具。鱼香一键安装里也有Gazebo的安装选项,建议单独选一次。Gazebo首次启动下载模型库可能会很慢,国内网络环境下尤其明显,这一点要有心理准备,可以手动配置模型库的镜像路径。

5.2 创建第一个工作空间与功能包

可视化案例跑通之后,下一步是搭建你自己的开发环境。所谓工作空间,就是ROS项目的根目录,ROS 1的标准名称一般叫catkin_ws。

创建并初始化一个ROS 1工作空间:

mkdir -p ~/catkin_ws/src cd ~/catkin_ws catkin_make

catkin_make第一次运行会在src目录下生成CMakeLists.txt,表示空间初始化成功。之后在src目录里创建自己的功能包:

cd ~/catkin_ws/src catkin_create_pkg test_pkg roscpp rospy std_msgs

这个命令创建了一个名为test_pkg的功能包,依赖roscpp(C++接口)、rospy(Python接口)和std_msgs(标准消息包)。创建完后回到工作空间编译:

cd ~/catkin_ws catkin_make

每次编译完记得source一下devel目录下的setup.bash:

source ~/catkin_ws/devel/setup.bash

对于ROS 2,流程相似但命令不同,用colcon build替代catkin_make,用ros2 pkg create替代catkin_create_pkg。整体思路一致:一个工程目录、一个源码目录、一个编译命令。第一次完整走通这套流程之后,ROS开发的基本节奏你就掌握了,后面所有项目都是这个模式的变体。

5.3 学习路径与心态建议

最后根据我的经验,给一条比较平缓的学习路径。

第一个阶段,把基本功打牢:理解节点、话题、服务、参数这四个ROS核心概念。不要急着写代码,先用命令行工具观察它们怎么工作,拿小乌龟和Rviz反复练习。这个阶段的主要目标是看明白“数据是怎么在节点之间流动的”。

第二个阶段,尝试写自己的第一个发布者和订阅者节点。可以从Python版本开始,代码简单,理解起来直观。ROS 1就是写talker和listener,ROS 2就是写publisher和subscriber,官方文档都有完整的示例。别光看教程,一定要自己敲一遍,哪怕照抄,敲完再跑通的感觉完全不一样。

第三个阶段,做一个小型机器人仿真项目。比如让两轮机器人模型在Gazebo里动起来,然后加一个激光雷达插件,做建图。再进阶一点就是导航和路径规划。到这个阶段,你已经从“会用ROS”迈向了“真做机器人”,这个坎越过去,后面基本就通了。

第四个阶段,如果学ROS 2,可以深入看一下DDS通信机制以及QoS策略;如果学ROS 1,可以研究一下launch文件的组织方式。到这个阶段你已经不被“安装”这件事挡住了,后面每一次踩坑都是真正的学习机会。

我个人的体会是,ROS学习中最劝退的往往不是概念有多难,而是环境搞不定、例子跑不起来、出错没人问。鱼香一键安装至少帮你把最前面的那道墙拆了,让你能把精力放在真正重要的机器人编程和算法上。装完之后,别急着看一堆高级资料,先跑一跑小乌龟、开一开Rviz、碰一碰Gazebo,让这套工具链在你心里建立起一个感性的认识,再回去看书,你会有非常不一样的理解。

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

Java项目接入向量数据库:实现语义搜索与文档检索实战

我接到过不少这样的需求:公司里有一堆技术文档、产品手册、历史工单,想做一个“能理解问题含义”的搜索框。用Java搭这个系统并不难,难在怎么让搜索结果真正匹配用户的意图。传统的关键词检索对精确词有效,但对“怎么让服务器自动…

作者头像 李华
网站建设 2026/10/2 3:54:10

量子态混合与熵增原理:从退相干到工程控制

1. 从“薛定谔的猫”到一杯凉掉的咖啡:量子态混合不是玄学,而是可测量的物理过程你有没有盯着刚倒进杯子里的热咖啡发过呆?那缕升腾的白气、液面微微晃动的波纹、糖粒在热水里旋转下沉的轨迹——这些看似日常的现象,背后藏着和量子…

作者头像 李华
网站建设 2026/10/2 3:52:55

Camera(TODO)

可以,而且我反而建议你现在就开始学 Camera。你手上的这两个板子,其实非常适合形成一条路线: RK3568 → 学 Linux Camera / V4L2 / Media Controller / Sensor / MIPI CSI → 魔方派3 → 学 Qualcomm Camera / Android Camera HAL3 / ISP / 3…

作者头像 李华
网站建设 2026/10/2 3:52:54

SpringBoot+Vue协同过滤算法体育商品推荐系统毕设全解析

每年到这个时间点,后台总会收到很多类似的私信:毕设题目下来很久了,系统做了一半卡住了,导师催着要中期检查,网上找的源码跑不通,代码下载下来一打开全是报错。尤其是“电商系统”“推荐系统”这类毕业设计…

作者头像 李华
网站建设 2026/10/2 3:52:40

告别手动群发:用邮件合并与家校工具批量发送学生成绩单

当了好几年班主任,我最大的感受是:每次月考、期中、期末结束,最耗心力的不是改卷,而是“把几十份成绩发到家长手里”这一步。手动复制粘贴、一张张截图、挨个私聊,不仅慢,还特别容易把张三的分数发到李四的…

作者头像 李华
网站建设 2026/10/2 3:51:48

苹果20W充电头真伪辨别指南:从PD快充协议到序列号与纹波实测

1. 假冒充电头的市场现状:为什么非要在这件事上较真先说个我自己的经历。去年帮朋友收拾工位,发现他抽屉里躺着三个"苹果原装20W充电头",我随手拿起来掂了一下,重量明显不对,再看了一眼序列号印刷&#xff0…

作者头像 李华