Ubuntu安装ROS(2) —— 安装ROS2 humble(最新、超详细图文教程,包含配置rosdep)

ROS简介: ROS 是一个适用于机器人的开源的元操作系统。它提供了操作系统应有的服务,包括硬件抽象,底层设备控制,常用函数的实现,进程间消息传递,以及包管理。在某些方面ROS相当于一种“机器人框架(robot frameworks)(来自ROSwiki)。

ROS2与ROS1的区别: ROS2作为ROS1的继任者,在保持ROS核心功能的基础上进行了诸多改进和优化。相较于ROS1,ROS2取消了ROS1中的Master中央节点,实现了节点的分布式发现、发布/订阅、请求/响应通讯。ROS1使用自定义的中间件(roscore),而ROS2使用DDS中间件。ROS1使用catkin作为构建系统,而ROS2使用colcon作为构建系统

ROS发展史
在这里插入图片描述
安装 ROS1 可以看下面教程 👇
ubuntu安装ROS(1) —— 以 ROS1 melodic 为例(最新、超详细图文教程,包含配置rosdep)

1. ROS2安装

准备

  • 建议准备一个干净、换好源的 ubuntu 20.04 以上的虚拟机(建议清华源),我的是 Ubuntu 22.04 ,本教程也适用其他 ROS2 版本。

  • 查看ubuntu 版本

    lsb_release -a
    

在这里插入图片描述

  • 根据自己的 ubuntu 的版本选择 ROS2 版本 (我的是 ubuntu 22.04 所以对应ROS2版本为 humble

    ROS2版本生命周期Ubuntu版本语言依赖
    Foxy Fitzroy2020.5-2023.5Ubuntu Focal (20.04)C++ >=14、Python >= 3.7
    Galactic Geochelone2021.5-2022.11Ubuntu Focal (20.04)C++ >=17、Python >=3.6
    Humble Hawksbill2022.5-2027.5Ubuntu Jammy (22.04)、Ubuntu Focal (20.04)(只能源码安装)C++ >=17 、Python >=3.6
    Iron Irwini2023.5-2024.11Ubuntu Jammy (22.04)C++ >=17 、Python >= 3.8
    Jazzy Jalisco2024.5-2029.5Ubuntu Noble (24.04)C++ >=17 、Python >= 3.8

    这里只列出了 Foxy 之后的Ubuntu版本支持,更多版本与细节可以看 官方说明

方法一(推荐)使用小鱼ROS一键安装

要使用小鱼的一键安装系列,需要下载一个鱼香大佬写的脚本,然后执行这个脚本,进行ROS的安装与环境的配置

  • 下载脚本并执行脚本
wget http://fishros.com/install -O fishros && . fishros
  • 输入密码
    在这里插入图片描述

  • 然后就会看见选择安装界面,我们看界面可以看到小鱼的脚本还可以支持很多工具安装,这里我们选择 1 ROS安装
    在这里插入图片描述

  • 大家可以看到这里会显示出你当前的Linux发行版版本,而且他还支持arm平台(我在jetson nano试过,可以)。让你选择是否按照他提供的源进行安装,因为我己经换了源了这里 选择 2,如果没换源可以选 1。
    在这里插入图片描述

  • 到这里就是选择ROS版本 ,这里我选择 1 humble(ROS2)
    在这里插入图片描述

  • Desktop 版 (推荐)包含: ROS, RViz, demos, tutorials。base版仅包含:Communication libraries, message packages, command line tools.。不包含 GUI tools。(新手直接选桌面版) 这里选 1,后面就进行安装了(大概几分钟)
    在这里插入图片描述

  • 显示这个表示ROS2安装完成
    在这里插入图片描述

  • 可以打开用户目录下的 .bashrc 文件**(它是隐藏文件)** ,可以在最后看到 ROS2环境
    在这里插入图片描述

方法二 使用官方教程(Debian 包)

其实这跟小鱼的脚本本质上差不多,只是小鱼的脚本已经帮你把环境依赖、版本选择、网络问题都跟你封装、解决好了。Ubuntu (Debian packages) — ROS 2 Documentation: Humble documentation

设置 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 (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博客

如有其他问题,或者发现文章有错误,请在评论区留言
Keep learning!

  • 24
    点赞
  • 75
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值