【嵌入式 · 机器人】在 Linux 下安装 ROS2(机器人操作系统)

本文指导非Ubuntu用户如何在虚拟机或通过Docker安装ROS2,介绍了不同版本对应Ubuntu的关系,详细步骤包括设置ROS_DISTRO、语言环境、软件源添加及安装过程,针对完整版和基础版的区别进行说明。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

安装要求

安装 ROS2 需要保证 Linux 系统的发行版是 Ubuntu,并且不同版本的 Ubuntu 只能安装对应版本的 ROS2。

系统不是 Ubuntu 怎么办?
  1. 系统是 Mac OS 或 Windows:安装一个 Ubuntu 的虚拟机,在虚拟机里安装 ROS2。(虽然 ROS2 提供了 MAC OS 和 Windows 的版本,但稳定性相对于 Ubuntu 版本可能会差一些)
  2. 系统是其他发行版本的 Linux:

    ① 方法一:备份数据,然后刷成 Ubuntu 系统(嵌入式开发板或系统数据较少可以使用这种方法)

    ② 方法二:安装 Docker,拉取 ROS2 镜像。可以将 Docker 理解为 Linux 下一种特殊的虚拟机,它只能虚拟出 Linux 系统,但是不像普通的虚拟机那样会占用额外的系统资源。(可以在网上搜索 “Docker ROS2” 查找对应的教程,本篇博客主要讲解在 Ubuntu 下安装 ROS2,不会涉及到相关内容)

ROS2 版本对应表

ROS2 版本版本代号发布时间维护截止时间Ubuntu 版本
Ardent Apaloneardent2017.122018.12Ubuntu 16.04(Xenial Xerus)
Bouncy Bolsonbouncy2018.72019.7Ubuntu 16.04(Xenial Xerus)、Ubuntu 18.04 (Bionic Beaver)
Crystal Clemmyscrystal2018.122019.12Ubuntu 18.04 (Bionic Beaver)
Dashing Diadematadashing2019.52021.5Ubuntu 18.04 (Bionic Beaver)
Eloquent Elusoreloquent2019.112020.11Ubuntu 18.04 (Bionic Beaver)
Foxy Fitzroyfoxy2020.62023.5Ubuntu 20.04 (Focal Fossa)
Galactic Geochelonegalactic2021.52022.11Ubuntu 20.04 (Focal Fossa)
Humble Hawksbillhumble2022.52027.5Ubuntu 22.04 (Jammy Jellyfish)

在官网还有一个 rolling 版本,该版本属于开发版,所有的功能、软件包等都是最新的,所以不是非常稳定,在学习、应用时不建议选择这个版本。

来源:Distributions — ROS 2 Documentation: Rolling documentation

开始安装

选择版本

查看当前系统的发行版本:

cat /etc/issue

在这里插入图片描述

我的系统是 Ubuntu 20.04,根据上一节的版本对应表,应该选择 foxy 版本。

# 设置 ROS2 版本为 foxy
export ROS_DISTRO=foxy

(如果你的系统是 Ubuntu 22.04,就要选择 humble 版本)

设置语言环境

安装 ROS2 前必须确保语言环境支持 UTF-8。

# 检查 UTF-8 环境
locale  

# 设置 UTF-8
sudo apt update && sudo apt install locales
sudo locale-gen en_US en_US.UTF-8
sudo update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8
export LANG=en_US.UTF-8

# 验证是否已经设置为 UTF-8
locale  

添加软件源

# 安装必备的工具
sudo apt update && sudo apt install curl gnupg2 lsb-release

# 添加 ROS2 软件源的 GPG Key
curl http://repo.ros2.org/repos.key | sudo apt-key add - 

# 添加 ROS2 软件源
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/ros-archive-keyring.gpg] http://packages.ros.org/ros2/ubuntu $(source /etc/os-release && echo $UBUNTU_CODENAME) main" | sudo tee /etc/apt/sources.list.d/ros2.list > /dev/null

# 更新软件包信息信息
sudo apt update

安装 ROS2

ROS2 有完整版和基础版两个版本:

  • 完整版:包括了 GUI 程序、Demo ,个人电脑或性能较强、需要 GUI 功能的开发板建议选择这个版本(如树莓派 4B、Jetson Nano、香橙派 4等)
  • 基础版:只包含最基础的通信功能。性能较弱或不需要 GUI 的开发板建议选择这个版本(如树莓派 Zero、香橙派 Zero 2 等)
# 安装完整版
sudo apt install ros-$ROS_DISTRO-desktop 

# 安装基础版
sudo apt install ros-$ROS_DISTRO-ros-base

安装 ROS2 开发工具(包括 ROS2 的编译器、构建工具等):

sudo apt install ros-dev-tools

初始化环境:

source /opt/ros/$ROS_DISTRO/setup.bash

每次执行,太麻烦了,将初始化脚本加入启动文件:

# 设置 ROS2 版本为 foxy(注意要根据自己的 Ubuntu 版本更改)
echo "export ROS_DISTRO=foxy" >> ~/.bashrc

echo "source /opt/ros/$ROS_DISTRO/setup.bash" >> ~/.bashrc

测试 ROS2 安装情况

基础版需要安装 Demo 程序,完整版则不需要安装:

# 安装 Demo 程序
sudo apt install ros-$ROS_DISTRO-demo-nodes-cpp

输入:

# 运行 Talker 程序
ros2 run demo_nodes_cpp talker

请添加图片描述

再打开另一个一个终端,输入:

# 运行 Listener 程序
ros2 run demo_nodes_cpp listener

请添加图片描述

ROS2 安装成功!

说明

如果安装的是基础版,是不会带有 小乌龟 程序的,需要运行下面的命令安装:

sudo apt install ros-$ROS_DISTRO-turtlesim

参考资料

[1] ROS2 和Ubuntu 版本对应关系_IT兔的博客-优快云博客

[2] Distributions — ROS 2 Documentation: Rolling documentation

[3] Ubuntu (Debian) — ROS 2 Documentation: Foxy documentation


后记

所有的工具都是为了帮助我们更方便地解决问题。我们学习如何使用工具,并不是为了学习这个工具而去学习,而是为了解决问题我们遇到的问题。

ROS 作为机器人的框架,本质也是一个工具,它在最初只是为了解决机器人各模块间通信的问题,但随着时间发展,ROS 逐渐发展出了一个生态,大量的机器人开源项目(涵盖感知、规划、控制、定位、SLAM和建图、可视化等)都以 ROS 做为基础。

我们没有必要把大量时间、精力都放在 ROS2 上,因为 ROS2 本质上只是为了解决机器人各模块通信的问题,这里不是说模块间的通信不重要,而是说一个机器人如果只解决了通信问题,而不去考虑机械、控制、电子、算法,一样是运行不起来的。所以,我们一定要合理安排学习的重心,弄懂一些基础的概念后,ROS2 学起来就会非常简单。

### 安装 ROS 2 on Linux 的逐步指南 #### 准备工作 为了确保顺利安装,需确认操作系统满足最低版本要求。对于Ubuntu系统,推荐使用Focal (20.04 LTS) 或更高版本[^1]。 #### 设置源和密钥 首先更新包列表并设置软件仓库的来源: ```bash sudo apt update && sudo apt install curl gnupg2 lsb-release ``` 接着添加ROS 2官方GPG密钥到本地环境中: ```bash curl -s https://raw.githubusercontent.com/ros/rosdistro/master/ros.asc | sudo gpg --dearmor -o /usr/share/keyrings/ros-archive-keyring.gpg ``` 配置APT以通过HTTPS访问存储库,并添加ROS 2 APT仓库地址: ```bash echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/ros-archive-keyring.gpg] http://packages.ros.org/ros2/ubuntu $(source /etc/os-release && echo $UBUNTU_CODENAME) main" | sudo tee /etc/apt/sources.list.d/ros2.list > /dev/null ``` #### 安装 ROS 2 软件包 完成上述准备工作之后,可以开始正式安装ROS 2环境。这里以Humble为例说明: 刷新APT缓存以便获取最新可用版本的信息: ```bash sudo apt update ``` 安装桌面全版(包含GUI工具),这是最常用的选项之一: ```bash sudo apt install ros-humble-desktop ``` 如果只需要核心功能,则可以选择只安装基础组件: ```bash sudo apt install ros-humble-ros-base ``` #### 初始化 `rosdep` `rosdep`是一个帮助管理依赖关系的重要工具,在首次运行前需要初始化它: ```bash sudo apt install python3-rosdep sudo rosdep init rosdep update ``` #### 环境变量设定 为了让命令行能够识别新安装的各种指令,建议每次启动终端时都自动加载相应的环境变量。可以通过编辑~/.bashrc文件实现这一点: ```bash echo "source /opt/ros/humble/setup.bash" >> ~/.bashrc source ~/.bashrc ``` #### 验证安装成果 最后一步是验证是否成功安装ROS 2 Humble Hawksbill发行版。尝试输入如下命令查看当前使用的ROS 2分发版名称: ```bash ros2 run demo_nodes_cpp talker ``` 以上就是在Linux平台上部署ROS 2的具体流程。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值