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

ROS发展史
请添加图片描述

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

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

ROS安装

准备

  • 建议准备一个干净、换好源的 Ubuntu 16.04 及以上版本的虚拟机(建议 清华源 ),本教程也适用其他 ROS1版本。

  • 查看ubuntu 版本

    lsb_release -a
    

在这里插入图片描述

  • 根据自己的 Ubuntu 的版本选择 ROS 版本 (我的是 Ubuntu 18.04 所以对应ROS版本为 melodic
    在这里插入图片描述

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

要使用小鱼的一键安装系列,需要下载一个脚本,然后执行这个脚本,进行ROS的安装与环境的配置(此脚本还可以安装很多工具,具体可以看鱼香大佬的说明

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

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

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

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

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

在这里插入图片描述

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

在这里插入图片描述

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

在这里插入图片描述

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

在这里插入图片描述

方法二 使用官方教程

其实这跟小鱼的脚本本质上差不多,只是小鱼的脚本已经帮你把环境依赖、版本选择、网络问题都跟你封装、解决好了,还有一种是用源码安装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

在这里插入图片描述

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

在这里插入图片描述

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

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

在这里插入图片描述

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

配置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 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

自动修改

  • 使用脚本
  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/

注:由于在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文件
在这里插入图片描述

修改init.py文件
在这里插入图片描述

修改gbpdistro_support.py文件
在这里插入图片描述

修改rep3.py文件
在这里插入图片描述

2. 开始配置

sudo rosdep init

在这里插入图片描述

rosdep update

在这里插入图片描述

参考

ROS 官方教程
小鱼的一键安装系列 | 鱼香ROS (fishros.org.cn)
Target Platforms (ROS.org)
ROS与操作系统版本对应关系_ros版本与ubuntu对应版本-CSDN博客
rosdep是什么?怎么用 | 鱼香ROS (fishros.org.cn)

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

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐