ubuntu安装ROS(1) —— 以 ROS1 melodic 为例(最新、超详细图文教程,包含配置rosdep)

Ubuntu 安装 ROS ROS简介: ROS 是一个适用于机器人的开源的元操作系统。它提供了操作系统应有的服务,包括硬件抽象,底层设备控制,常用函数的实现,进程间消息传递,以及包管理。它也提供用于获取、编译、编写、和跨计算机运行代码所需的工具和库函数。在某些方面ROS相当于一种“机器人框架(ro...
ubuntu安装ROS(1) —— 以 ROS1 melodic 为例(最新、超详细图文教程,包含配置rosdep)
ubuntu安装ROS(1) —— 以 ROS1 melodic 为例(最新、超详细图文教程,包含配置rosdep)

Ubuntu 安装 ROS

ROS简介: ROS 是一个适用于机器人的开源的元操作系统。它提供了操作系统应有的服务,包括硬件抽象,底层设备控制,常用函数的实现,进程间消息传递,以及包管理。它也提供用于获取、编译、编写、和跨计算机运行代码所需的工具和库函数。在某些方面ROS相当于一种“机器人框架(robot frameworks)(来自ROSwiki)

ROS发展史

image-20230416232951920

注: 此教程安装的是ROS1,而ROS Noetic 为 ROS1 最后一个版本,也就是说后续不会更新 ROS1 的版本,只会更新 ROS2。而且 ROS Noetic 支持Ubuntu 20.04,所以Ubuntu 20.04 以后的版本想要用ROS1 ,可能需要自己下载 ROS 源码,然后编译源码来安装 ROS 。源码安装官方教程 :backhand_index_pointing_right:noetic/Installation/Source - ROS Wiki

安装 ROS2 可以看下面教程 :backhand_index_pointing_down: ubuntu安装ROS(1) —— 以 ROS2 humble 为例(最新、超详细图文教程,包含配置rosdep)

1. ROS安装

准备

  • 建议准备一个干净、换好源的 ubuntu 16.04 以上的虚拟机(建议清华源)
  • 查看ubuntu 版本
lsb_release -a

image-20230416234143957

  • 根据自己的 ubuntu 的版本选择 ROS 版本 (我的是 ubuntu 18.04 所以对应ROS版本为 melodic
    image-20230416234404437

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

要使用小鱼的一键安装系列,需要下载一个脚本,然后执行这个脚本,进行ROS的安装与环境的配置(此脚本一直在更新,可能会跟示例截图有点区别,根据实际的序号来选择,除了 ROS 还可以安装很多工具,具体可以看鱼香大佬的说明

  • 下载脚本并执行脚本
wget http://fishros.com/install -O fishros && . fishros
  • 初次执行会让你输一次密码

    image-20230501144332193

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

    image-20230501144607379

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

    image-20230501145238274

  • 到这里就是选择ROS版本 ,这里我选择 1 melodic(ROS1)

    image-20230501150004514

  • 这里也选 1,后面就进行安装了(大概几分钟)

    image-20230501150403390

  • 显示这个表示安装完成(可能会让你再次输入密码)

    image-20230501151618261

  • 可以打开用户目录下的 .bashrc 文件,可以在最后看到 ROS环境
    image-20230501151903541

  • 在终端输入 roscore ,看到以下输出表示ROS安装成功,后面就可以自行选择配置rosdep

    image-20230501152012417

方法二 使用官方教程

其实这跟小鱼的脚本本质上差不多,只是小鱼的脚本已经帮你把环境依赖、版本选择、网络问题都跟你封装、解决好了,还有一种是用源码安装ROS ,之前在树莓派上试过,大家有兴趣可以尝试了解一下 。 官方教程 - ROS Wiki

  1. 加入ROS清华镜像源
sudo sh -c '. /etc/lsb-release && echo "deb http://mirrors.tuna.tsinghua.edu.cn/ros/ubuntu/ `lsb_release -cs` main" > /etc/apt/sources.list.d/ros-latest.list'
  1. 设置key
sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654

image-20230501154950439

  1. 安装
sudo apt update
sudo apt install ros-melodic-desktop
# for noetic
# sudo apt install ros-noetic-desktop

image-20230501155224620

  1. 设置环境
#对于Ubuntu20
# echo "source /opt/ros/noetic/setup.bash" >> ~/.bashrc
echo "source /opt/ros/melodic/setup.bash" >> ~/.bashrc
source ~/.bashrc #使环境生效

可以打开用户目录下的 .bashrc 文件,可以在最后看到 ROS环境
image-20230501160059802

在终端输入 roscore ,后面就可以自行选择配置rosdep

2. 配置rosdep

在使用许多 ROS 工具之前,需要初始化 rosdep,有些功能包源码编译需要rosdep 来安装这些系统依赖项,不配置也不影响ros使用,所以后面需要时再来配置也可以。

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

  • 下载脚本并执行脚本 (因为每次执行这个脚本后,都会自动删除脚本,所以需要重新执行)
wget http://fishros.com/install -O fishros && . fishros
  • 这里我们选择 3 配置rosdep

    image-20230501152857602

  • 安装好后显示如下,在终端输入 rosdepc update 进行配置**(注:使用小鱼ROS一键安装rosdep,在后续使用时请将rosdep替换为rosdepc使用)**

    image-20230501153216768

  • 显示这个表示配置成功

    image-20230501153357543

方法二 通过修改文件

这个rosdep 请求的是国外的服务器,所以会被墙。有些是通过代理的方式,但这个不稳定,因为时间久了要么代理跑路了,要么被墙了。它需要的文件都官方都放在 github 上的,那么我们改url地址即可。

安装依赖

sudo apt install python-rosdep python-rosinstall python-rosinstall-generator python-wstool build-essential
# 对于Ubuntu20
# sudo apt install python3-rosdep python3-rosinstall python3-rosinstall-generator python3-wstool build-essential
(1) 自动修改
  • 使用脚本
wget https://gitee.com/tyx6/mytools/raw/main/ros/Mrosdep.py
sudo python3 Mrosdep.py

注:如果脚本执行失败可以手动修改,或者在评论区提问

image-20240806153725576

(2) 手动修改

修改4个文件,都是将地址 https://raw.githubusercontent.com/ 改为https://gitee.com/tyx6/rosdistro/raw/master/

注:由于在Ubuntu 20.04 中 ros 支持 python3,所以将文件地址中的 python2.7 改为 python3
比如:/usr/lib/python2.7/dist-packages/rosdep2/sources_list.py 改为 /usr/lib/python3/dist-packages/rosdep2/sources_list.py

sudo gedit /usr/lib/python2.7/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/python2.7/dist-packages/rosdistro/__init__.py
# 大概在68行的地址

sudo gedit /usr/lib/python2.7/dist-packages/rosdep2/gbpdistro_support.py
# 大概在34行的地址

sudo gedit /usr/lib/python2.7/dist-packages/rosdep2/rep3.py
# 大概在36行的地址

修改sources_list.py文件

image-20240806154350222

修改init.py文件

image-20240806154537330

修改gbpdistro_support.py文件

image-20240806154804964

修改rep3.py文件

image-20240806154840045

  • 开始配置
sudo rosdep init

image-20230501202248569

rosdep update # 输出跟下面差不多就行

image-20230501203639019

3. 测试

输入下列命令:

roscore

image-20240614220550922

参考

REP 3 – Target Platforms (ROS.org)

[ROS 系列学习教程] ROS与操作系统版本对应关系_ros版本与ubuntu对应版本-CSDN博客

melodic/Installation/Ubuntu - ROS Wiki

noetic/Installation/Source - ROS Wiki

小鱼的一键安装系列 | 鱼香ROS (fishros.org.cn)

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

7 个帖子 - 7 位参与者

阅读完整话题

来源: LinuxDo 最新话题查看原文