本文记录Ubuntu 22.04虚拟机上安装ROS2的过程以及遇到的问题。

1. 确定Ubuntu和ROS版本

Ubuntu和ROS2存在一个版本的对应关系,具体可以看官网的这个页面:
REP 2000 – ROS 2 Releases and Target Platforms (ROS.org)
其中ROS2的humble版本(即截止到2022年10月初的最新版本)要求如下:
在这里插入图片描述
所以 Ubuntu 22.04 应该安装的ROS2版本为 ros-humble-desktop
此外Ubuntu的版本号如果是带有LTS字样(Long Term Support),为长期支持版本,大家安装Ubuntu的时候应优先考虑此版本。

2. 配置及安装

官方安装文档链接:Ubuntu (Debian) — ROS 2 Documentation: Humble documentation

2.1 设置locale

官方案例自然地使用英文locale,但是根据文档描述只要是支持UTF-8的locale都可以。

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

2.2 设置Ubuntu软件源

2.2.1 首先确认是否已经启用Universe源

使用如下命令检查:

apt-cache policy | grep universe

返回可能有若干行,但是应该包含如下内容:

500 http://us.archive.ubuntu.com/ubuntu jammy/universe amd64 Packages
    release v=22.04,o=Ubuntu,a=jammy,n=jammy,l=Ubuntu,c=universe,b=amd64

如果没有包含上述内容,那么输入如下命令:

sudo apt install software-properties-common
sudo add-apt-repository universe

2.2.2 添加ROS 2 apt 仓库

a) 添加证书
sudo apt update && sudo apt install curl gnupg lsb-release
sudo curl -sSL https://raw.githubusercontent.com/ros/rosdistro/master/ros.key -o /usr/share/keyrings/ros-archive-keyring.gpg

这一步如果遇到Failed to connect to raw.githubusercontent.com,请访问 https://www.ipaddress.com 网站,在查询框中输入:raw.githubusercontent.com并回车,在里面找到相应的的ipv4地址:
在这里插入图片描述
这四个IP地址随便选一个,使用sudo vi /etc/hosts将IP和域名添加到/etc/hosts文件中,如下图:
在这里插入图片描述

b) 添加ros仓库
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

2.3 安装ros2包

sudo apt update
sudo apt upgrade
sudo apt install ros-humble-desktop

你可能会遇到如下错误:
在这里插入图片描述
解决方法:把 “/etc/apt/sources.list” 中的: http://cn.archive.ubuntu.com/ubuntu
全部替换为可用的镜像,例如阿里云的:http://mirrors.aliyun.com/ubuntu/。然后使用sudo apt --fix-broken install命令修复未完成的安装即可。其他镜像列表可参考Mirrors : Ubuntu 中的China部分。

Desktop 版 (推荐)包含: ROS, RViz, demos, tutorials.
老鸟可以安装base版,sudo apt install ros-humble-ros-base,base版仅包含Communication libraries, message packages, command line tools. 不包含 GUI tools.

2.4 配置环境变量

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

3 测试

打开第一个终端,启动一个数据的发布者节点:

ros2 run demo_nodes_cpp talker

应该看到
在这里插入图片描述
打开第二个终端,启动一个数据的订阅者节点:

ros2 run demo_nodes_py listener

应该能看到:
在这里插入图片描述

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐