Ubuntu安装ROS2详细图文教程(含配置rosdep)
Ubuntu安装ROS2详细图文教程(含配置rosdep)
本文将详细介绍如何在Ubuntu系统上安装ROS2(以Humble版本为例),包括使用小鱼ROS一键安装和官方Debian包安装两种方法。同时,文章还介绍了rosdep的配置步骤和测试方法,适合ROS初学者参考学习。
ROS简介
ROS(Robot Operating System)是一个适用于机器人的开源元操作系统。它提供了操作系统应有的服务,包括硬件抽象、底层设备控制、常用函数的实现、进程间消息传递以及包管理。在某些方面,ROS相当于一种“机器人框架”。
ROS2与ROS1的区别
ROS2作为ROS1的继任者,在保持ROS核心功能的基础上进行了诸多改进和优化。相较于ROS1,ROS2取消了ROS1中的Master中央节点,实现了节点的分布式发现、发布/订阅、请求/响应通讯。ROS1使用自定义的中间件(roscore),而ROS2使用DDS中间件。ROS1使用catkin作为构建系统,而ROS2使用colcon作为构建系统。
ROS发展史
安装ROS1可以参考相关教程。
1. ROS2安装
准备
建议准备一个干净、换好源的Ubuntu 20.04以上的虚拟机(建议清华源),本教程也适用其他ROS2版本。
查看Ubuntu版本:
lsb_release -a
根据自己的Ubuntu版本选择ROS2版本(例如,Ubuntu 22.04对应ROS2版本为humble):
ROS2版本 | 生命周期 | Ubuntu版本 | 语言依赖 |
---|---|---|---|
Foxy Fitzroy | 2020.5-2023.5 | Ubuntu Focal (20.04) | C++ >=14、Python >= 3.7 |
Galactic Geochelone | 2021.5-2022.11 | Ubuntu Focal (20.04) | C++ >=17、Python >=3.6 |
Humble Hawksbill | 2022.5-2027.5 | Ubuntu Jammy (22.04)、Ubuntu Focal (20.04)(只能源码安装) | C++ >=17 、Python >=3.6 |
Iron Irwini | 2023.5-2024.11 | Ubuntu Jammy (22.04) | C++ >=17 、Python >= 3.8 |
Jazzy Jalisco | 2024.5-2029.5 | Ubuntu Noble (24.04) | C++ >=17 、Python >= 3.8 |
方法一(推荐)使用小鱼ROS一键安装
要使用小鱼的一键安装系列,需要下载一个鱼香大佬写的脚本,然后执行这个脚本,进行ROS的安装与环境的配置。
下载脚本并执行脚本:
wget http://fishros.com/install -O fishros && . fishros
输入密码后,会看到选择安装界面,选择“1 ROS安装”。
选择ROS版本,这里选择“1 humble(ROS2)”。
选择Desktop版(推荐)包含:ROS, RViz, demos, tutorials。base版仅包含:Communication libraries, message packages, command line tools.。不包含 GUI tools。这里选1,后面就进行安装了(大概几分钟)。
显示这个表示ROS2安装完成。
可以打开用户目录下的.bashrc
文件(它是隐藏文件),可以在最后看到ROS2环境。
方法二 使用官方教程(Debian 包)
设置 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
设置源
- 启用Universe源
sudo apt install software-properties-common
sudo add-apt-repository universe
- 添加 ROS 2 GPG key
sudo apt update && sudo apt install curl gnupg2 -y
sudo curl -sSL https://gitee.com/tyx6/rosdistro/raw/master/ros.key -o /usr/share/keyrings/ros-archive-keyring.gpg
- 为软件源添加 ROS2 repository
根据自己需要选一个就行
官方源:
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/ros-archive-keyring.gpg] http://packages.ros.org/ros2/ubuntu $(. /etc/os-release && echo $UBUNTU_CODENAME) main" | sudo tee /etc/apt/sources.list.d/ros2.list > /dev/null
清华源:
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/ros-archive-keyring.gpg] https://mirrors.tuna.tsinghua.edu.cn/ros2/ubuntu $(. /etc/os-release && echo $UBUNTU_CODENAME) main" | sudo tee /etc/apt/sources.list.d/ros2.list > /dev/null
安装
Desktop 版 (推荐)包含: ROS, RViz, demos, tutorials。(新手直接选桌面版)
base版仅包含:Communication libraries, message packages, command line tools.。不包含 GUI tools。
sudo apt update && sudo apt upgrade
sudo apt install ros-humble-desktop
设置环境
echo "source /opt/ros/humble/setup.bash" >> ~/.bashrc
source ~/.bashrc #使环境生效
可以打开用户目录下的.bashrc
文件,可以在最后看到ROS环境。
2. 配置rosdep(可选)
在使用许多 ROS 工具之前,需要初始化rosdep,有些功能包源码编译需要rosdep来安装这些系统依赖项,不配置也不影响 ROS 使用,所以后面需要时再来配置也可以。
方法一(推荐)使用小鱼ROS一键安装
下载脚本并执行脚本 (因为每次执行这个脚本后,都会自动删除脚本,所以需要重新执行)
wget http://fishros.com/install -O fishros && . fishros
这里我们选择3配置rosdep
安装好后显示如下
在终端输入rosdepc update进行配置,显示这个表示配置成功
(注:使用小鱼ROS一键安装rosdep,在后续使用时请将rosdep替换为rosdepc使用)
方法二 通过修改文件
这个rosdep 请求的是国外的服务器,所以会被墙。有些是通过代理的方式,但这个不稳定,因为时间久了要么代理跑路了,要么被墙了。它需要的文件都官方都放在 github 上的,那么我们可以改url地址即可。
安装依赖
sudo apt install python3-rosdep
自动修改
- 使用脚本
wget https://gitee.com/tyx6/mytools/raw/main/ros/Mrosdep.py
sudo python3 Mrosdep.py
注:此脚本在 rosdistro 目录下,是为了方便编写的,如果脚本执行失败可以手动修改,或者在评论区提问
手动修改
修改4个文件,都是将地址 https://raw.githubusercontent.com/… 改为https://gitee.com/tyx6/rosdistro/raw/master/
sudo gedit /usr/lib/python3/dist-packages/rosdep2/sources_list.py
# 在大概64行 修改 DEFAULT_SOURCES_LIST_URL = 'https://gitee.com/tyx6/mytools/raw/main/ros/20-default.list'
sudo gedit /usr/lib/python3/dist-packages/rosdistro/__init__.py
# 大概在68行的地址
sudo gedit /usr/lib/python3/dist-packages/rosdep2/gbpdistro_support.py
# 大概在34行的地址
sudo gedit /usr/lib/python3/dist-packages/rosdep2/rep3.py
# 大概在36行的地址
修改sources_list.py文件
修改init.py文件
修改gbpdistro_support.py文件
修改rep3.py文件
- 开始配置
sudo rosdep init
rosdep update
3. 测试
在一个终端中,输入命令:
ros2 run demo_nodes_cpp talker
在另一个终端中,输入命令:
ros2 run demo_nodes_py listener
运行结果如下图所示:
参考
- ROS Documentation
- Ubuntu (Debian packages) — ROS 2 Documentation: Humble documentation
- rosdep是什么?怎么用 | 鱼香ROS (fishros.org.cn)
- 小鱼的一键安装系列 | 鱼香ROS (fishros.org.cn)
- Ubuntu 22.04 LTS安装ROS2 (ros-humble-desktop)-CSDN博客