Ubuntu20.04安装ROS1-Noetic保姆级教程(含国内镜像加速)

📅 发布时间:2026/7/16 10:34:44 👁️ 浏览次数:
Ubuntu20.04安装ROS1-Noetic保姆级教程(含国内镜像加速)
从零到一在Ubuntu 20.04上高效部署ROS Noetic的完整实践指南如果你刚刚踏入机器人操作系统ROS的世界面对全新的Ubuntu环境和复杂的安装步骤可能会感到一丝迷茫。网络上教程众多但要么过于简略要么被网络问题卡住让学习热情在漫长的等待中消磨。这篇文章正是为你准备的——一位在机器人领域摸爬滚打多年的开发者将带你绕过所有常见的坑利用国内镜像源在Ubuntu 20.04 Focal Fossa上快速、稳定地完成ROS 1 Noetic Ninjemys的完整安装与验证。我们不止步于“能运行”更追求“理解每一步”让你在安装过程中就建立起对ROS生态的初步认知。1. 安装前的深度准备理解你的系统与环境在敲下任何安装命令之前花几分钟理解你的系统基础能避免后续90%的莫名错误。Ubuntu 20.04 LTS长期支持版是ROS Noetic官方指定的最佳搭档其稳定的软件库和长达五年的支持周期为机器人开发提供了可靠的基础。首先确认你的系统架构和版本。打开终端快捷键CtrlAltT输入以下命令lsb_release -a你会看到类似如下的输出No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 20.04.6 LTS Release: 20.04 Codename: focal关键信息是Codename: focal。ROS的软件仓库地址正是基于这个代号focal来构建的后续配置镜像源时会用到。接下来我们需要确保Ubuntu的软件源配置是完整的。ROS依赖的许多基础库来自Ubuntu的universe和multiverse组件。你可以通过图形界面或命令行检查。图形界面方法点击屏幕左下角的“显示应用程序”九宫格图标搜索并打开“软件和更新”。在“Ubuntu软件”标签页下确保“社区维护的免费开源软件universe”、“有版权和法律限制的软件multiverse”以及“设备的专有驱动restricted”都被勾选。命令行方法推荐对于习惯终端操作或使用服务器版无图形界面的用户可以运行以下命令来检查和启用sudo add-apt-repository universe sudo add-apt-repository multiverse sudo apt update注意sudo命令需要输入你的用户密码。在终端中输入密码时光标不会移动或显示星号这是Linux终端的正常安全行为正常输入后回车即可。完成这些检查后你的系统就已经为迎接ROS做好了准备。让我们进入核心的安装环节。2. 核心安装流程配置、安装与固化这一部分是安装的主体我们将分步进行每一步都解释其作用让你知其然更知其所以然。2.1 配置国内镜像源告别缓慢下载ROS官方服务器位于国外直接连接速度可能非常慢甚至超时。使用国内镜像源是提升安装体验的关键一步。国内高校和机构提供了优秀的镜像服务这里我们以清华大学开源软件镜像站为例。在终端中执行以下命令来添加ROS的软件源sudo sh -c . /etc/os-release echo deb https://mirrors.tuna.tsinghua.edu.cn/ros/ubuntu/ $UBUNTU_CODENAME main /etc/apt/sources.list.d/ros-latest.list命令解析sudo sh -c ‘…’以超级用户权限执行一段shell命令。. /etc/os-release读取系统版本信息文件。$UBUNTU_CODENAME这个变量会自动被替换为你的系统代号例如focal。 /etc/apt/sources.list.d/ros-latest.list将生成的仓库地址写入到指定的列表文件中。APT包管理器会读取这个目录下的所有.list文件。除了清华源你也可以选择其他可靠的镜像只需替换URL部分。下表对比了常用的国内ROS镜像源镜像源提供方仓库地址替换命令中的URL部分特点清华大学 TUNAhttps://mirrors.tuna.tsinghua.edu.cn/ros/ubuntu/速度稳定维护及时社区首选。中国科学技术大学 USTChttps://mirrors.ustc.edu.cn/ros/ubuntu/同样稳定可靠是另一个优秀选择。华为云https://repo.huaweicloud.com/ros/ubuntu/云服务商提供网络覆盖好。2.2 设置软件密钥与更新缓存软件源配置好后系统需要验证从该源下载的软件包是否可信。这通过添加公钥来实现。sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654这个命令从Ubuntu的密钥服务器获取ROS仓库的专用密钥并添加到本地信任列表中。接着更新本地的软件包索引。这个操作会连接你配置的所有软件源包括刚添加的ROS源获取最新的软件包列表信息。sudo apt update你会看到终端开始从各个源拉取数据其中包含mirrors.tuna.tsinghua.edu.cn的信息。如果这一步没有报错说明镜像源配置成功。2.3 安装ROS Noetic桌面完整版ROS提供了不同规模的安装包以适应不同需求的用户ros-noetic-desktop-full推荐选择。包含ROS核心、RQTGUI工具、RViz3D可视化工具、机器人通用库、2D/3D仿真器如Gazebo、导航及2D/3D感知功能。这是最完整的版本适合学习和大多数开发。ros-noetic-desktop包含ROS核心、RQT、RViz和2D/3D仿真器。ros-noetic-ros-base仅包含ROS核心、构建和通信库。适合用于无界面的服务器或对系统资源有严格限制的嵌入式设备。执行安装命令sudo apt install ros-noetic-desktop-full安装过程会持续一段时间取决于你的网速。国内镜像通常能将下载时间从数小时缩短到几分钟到十几分钟。安装程序会列出将要安装、升级的软件包列表并询问你是否继续输入y并按回车确认。2.4 固化环境变量让ROS命令随处可用安装完成后ROS的核心库和工具位于/opt/ros/noetic/目录下。为了让系统在任何终端会话中都能找到这些命令我们需要将ROS的初始化脚本添加到用户的bashrc文件中。echo source /opt/ros/noetic/setup.bash ~/.bashrc source ~/.bashrc第一行将source /opt/ros/noetic/setup.bash这行命令追加到~/.bashrc文件末尾。这个文件在每次打开新的终端窗口时都会自动执行。第二行立即执行当前终端的~/.bashrc文件使配置在当前窗口立刻生效无需重启终端。现在你可以尝试输入roscore并按Tab键如果系统能自动补全这个命令说明环境变量配置基本正确。3. 构建开发工具链超越基础安装仅仅安装ROS还不够一个高效的开发环境还需要配套的工具。这些工具能极大提升你编写、构建和调试ROS代码的效率。3.1 安装构建工具与依赖管理工具ROS使用catkin作为其官方的构建系统。我们需要安装相关的构建工具和依赖管理工具。sudo apt install python3-rosdep python3-rosinstall python3-rosinstall-generator python3-wstool build-essentialpython3-rosdep这是最重要的工具之一。rosdep用于安装ROS包的系统依赖。很多ROS功能包依赖于一些系统级的库如OpenCV、PCL等rosdep能自动处理这些依赖关系。python3-rosinstall, python3-wstool用于管理多个ROS功能包源代码的工作空间工具。build-essential提供编译C/C程序必需的工具链如gcc, g, make。3.2 初始化并更新 rosdeprosdep在使用前需要初始化它会下载一个包含各种包依赖关系的规则数据库。由于网络原因直接初始化可能会失败我们需要为其也配置国内镜像源。首先初始化rosdep即使可能失败也要先执行以生成配置文件sudo rosdep init如果这一步提示“找不到命令”可能是因为rosdep还未安装或路径问题请确保上一步python3-rosdep已成功安装。初始化成功后或跳过更新rosdep。直接更新通常很慢我们可以修改其源。编辑/etc/ros/rosdep/sources.list.d/20-default.list文件如果不存在rosdep init会创建它sudo sed -i s|https://raw.githubusercontent.com/ros/rosdistro/master|https://ghproxy.com/https://raw.githubusercontent.com/ros/rosdistro/master|g /etc/ros/rosdep/sources.list.d/20-default.list这个命令使用sed工具将文件中的原始GitHub地址替换为通过ghproxy.com加速的地址。然后执行更新rosdep update这次更新速度会快很多。rosdep update的成功执行标志着你的ROS开发环境工具链已完整就绪。4. 验证与初探运行你的第一个ROS世界理论准备就绪是时候启动ROS看看它是否真的在为你工作了。我们将通过经典的“小海龟仿真器”来完成验证。4.1 启动ROS核心MasterROS采用分布式架构其核心是一个名为roscore的节点它充当所有其他节点可以理解为程序的“名称服务器”和消息调度中心。在任何ROS网络中都必须先启动它。打开一个终端窗口输入roscore你会看到一系列启动日志最后停留在类似started core service [/rosout]的信息上。这个终端窗口需要保持打开状态不要关闭它。现在ROS Master已经在后台运行了。4.2 启动小海龟仿真器打开第二个终端窗口CtrlAltT再开一个。在新的终端中运行rosrun turtlesim turtlesim_node一个蓝色的窗口将会弹出中央出现一只随机颜色的海龟。这个窗口运行着一个名为turtlesim_node的节点它模拟了一个简单的海龟机器人及其二维世界。4.3 控制海龟移动打开第三个终端窗口。在这个窗口中运行键盘控制节点rosrun turtlesim turtle_teleop_key终端会显示提示Reading from keyboard: --------------------------- Use arrow keys to move the turtle.确保这个终端窗口处于焦点状态用鼠标点一下它然后按下键盘上的上下左右方向键。你会看到第一个窗口中的小海龟开始移动并在身后留下轨迹。恭喜至此你已成功完成了一个完整的ROS系统安装与基础验证。你刚刚体验了ROS的核心概念一个roscore主节点两个独立运行但又通过ROS通信的节点turtlesim_node和turtle_teleop_key它们之间通过话题Topic传递控制指令和位置信息。4.4 进阶检查查看系统状态你可以进一步探索这个正在运行的ROS系统。再打开一个终端尝试以下命令查看当前所有活跃的节点rosnode list你会看到/teleop_turtle,/turtlesim等节点名。查看当前所有正在通信的话题rostopic list会列出像/turtle1/cmd_vel速度命令话题、/turtle1/pose海龟位姿话题等。这些命令让你能窥见ROS系统内部的运行状态是日后调试复杂机器人系统的基本功。5. 故障排除与后续步骤指南即使遵循指南你也可能遇到个别问题。这里汇总了一些常见情况及解决方法。1.sudo apt update时出现GPG错误或NO_PUBKEY错误这通常是因为软件源的密钥未被正确添加或已过期。可以尝试重新添加密钥sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654如果依然不行可以尝试换用其他密钥服务器如hkp://pgp.mit.edu:80。2.rosdep update失败或极慢除了使用上述的ghproxy加速方法如果还失败可以尝试修改超时时间或重试。有时网络波动会导致失败多试几次即可。也可以搜索“ROS rosdep 国内源”有其他社区提供的替代初始化脚本。3. 运行roscore或rosrun提示“命令未找到”这几乎肯定是环境变量没有正确配置。请检查是否执行了source ~/.bashrc~/.bashrc文件末尾是否确实有source /opt/ros/noetic/setup.bash这一行你是否在同一个终端会话中执行的安装和测试新开的终端会自动加载.bashrc。4. 小海龟不移动确保运行turtle_teleop_key的终端窗口是当前活动窗口被鼠标选中。检查roscore是否一直在运行且没有报错。依次在三个终端里按CtrlC终止所有进程然后从第一步roscore开始重新启动。安装和验证只是万里长征的第一步。接下来建议你官方教程完成ROS Wiki上的“Beginner Level”核心教程理解节点、话题、服务、参数等基本概念。创建你的工作空间学习使用catkin_make或catkin build来创建和管理自己的ROS功能包。尝试仿真安装并运行Gazebo仿真环境加载一个机器人模型如TurtleBot3进行更复杂的仿真实验。记住在Linux和ROS的学习中遇到问题并解决问题的过程本身就是最宝贵的经验。善用--help参数、man手册以及ROS社区如ROS Answers、知乎、CSDN相关专栏大部分问题都有前人遇到过。现在你的ROS之旅已经正式启航开始探索机器人技术的广阔天地吧。