【嵌入式 · 机器人】在 Linux 下安装 ROS2(机器人操作系统)
创始人
2024-01-22 04:02:16
0

安装要求

安装 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

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-m5jzul5T-1668519205545)(_imgs/image-20221114215610440.png)]

我的系统是 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" >> ~/.bashrcecho "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兔的博客-CSDN博客

[2] Distributions — ROS 2 Documentation: Rolling documentation

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


后记

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

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

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

相关内容

热门资讯

喜欢穿一身黑的男生性格(喜欢穿... 今天百科达人给各位分享喜欢穿一身黑的男生性格的知识,其中也会对喜欢穿一身黑衣服的男人人好相处吗进行解...
发春是什么意思(思春和发春是什... 本篇文章极速百科给大家谈谈发春是什么意思,以及思春和发春是什么意思对应的知识点,希望对各位有所帮助,...
网络用语zl是什么意思(zl是... 今天给各位分享网络用语zl是什么意思的知识,其中也会对zl是啥意思是什么网络用语进行解释,如果能碰巧...
为什么酷狗音乐自己唱的歌不能下... 本篇文章极速百科小编给大家谈谈为什么酷狗音乐自己唱的歌不能下载到本地?,以及为什么酷狗下载的歌曲不是...
华为下载未安装的文件去哪找(华... 今天百科达人给各位分享华为下载未安装的文件去哪找的知识,其中也会对华为下载未安装的文件去哪找到进行解...
怎么往应用助手里添加应用(应用... 今天百科达人给各位分享怎么往应用助手里添加应用的知识,其中也会对应用助手怎么添加微信进行解释,如果能...
家里可以做假山养金鱼吗(假山能... 今天百科达人给各位分享家里可以做假山养金鱼吗的知识,其中也会对假山能放鱼缸里吗进行解释,如果能碰巧解...
一帆风顺二龙腾飞三阳开泰祝福语... 本篇文章极速百科给大家谈谈一帆风顺二龙腾飞三阳开泰祝福语,以及一帆风顺二龙腾飞三阳开泰祝福语结婚对应...
四分五裂是什么生肖什么动物(四... 本篇文章极速百科小编给大家谈谈四分五裂是什么生肖什么动物,以及四分五裂打一生肖是什么对应的知识点,希...
美团联名卡审核成功待激活(美团... 今天百科达人给各位分享美团联名卡审核成功待激活的知识,其中也会对美团联名卡审核未通过进行解释,如果能...