本文记录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都可以。
sudoapt update &&sudoaptinstall locales
sudo locale-gen en_US en_US.UTF-8
sudo update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8
exportLANG=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
如果没有包含上述内容,那么输入如下命令:
sudoaptinstall software-properties-common
sudo add-apt-repository universe
2.2.2 添加ROS 2 apt 仓库
a) 添加证书
sudoapt update &&sudoaptinstallcurl gnupg lsb-release
sudocurl -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"|sudotee /etc/apt/sources.list.d/ros2.list > /dev/null
2.3 安装ros2包
sudoapt update
sudoapt upgrade
sudoaptinstall 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
应该能看到:
版权归原作者 SimonLiu009 所有, 如有侵权,请联系我们删除。