【全新教程】在 Ubuntu18.04中安装 ROS Melodic

由于第一遍安装时踩了不少坑,导致后面有些奇奇怪怪的问题没法填坑。于是选择再次重装,顺便记录一下这个过程,在后续的安装过程中确实顺利了不少。其中的一些细节要注意,要不然会折腾很长时间。

准备

首先检查自己的ubuntu版本与将要安装的ROS版本是否匹配
Ubuntu不同的版本对应ROS不同的版本
【全新教程】在 Ubuntu18.04中安装 ROS Melodic_第1张图片
我的版本是Ubuntu18.04,所以选择安装ROS Melodic

打开软件中心,按照下图进行配置。
确保你的"restricted"“universe”"multiverse"前是打上勾的:
【全新教程】在 Ubuntu18.04中安装 ROS Melodic_第2张图片

切换到最佳的服务器
这个和你当前的位置有关系,会影响后续下载的速度,很关键。
【全新教程】在 Ubuntu18.04中安装 ROS Melodic_第3张图片

设置sources.list

设置电脑以安装来自packages.ros.org的软件。

sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'

推荐就近选择一个镜像源,例如,Tsinghua University为:

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'

设置密钥

配置公网密钥,这一步是确保我们的系统认为这个路径是安全的,下载文件是没有问题的。不然下载的东西会立刻被清除掉。

sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654

若无法连接到密钥服务器,可以尝试替换上面命令中的 hkp://keyserver.ubuntu.com:80 为 hkp://pgp.mit.edu:80 。

安装

确保你的 Debian 包索引是最新的
使用sudo apt update查看
ROS 中有很多不同的库和工具,并提供了四种默认选项,也可以单独安装 ROS 的软件包。
这里,我直接选择安装桌面完整版(推荐)。包含 ROS、rqt、rviz、机器人通用库、2D/3D 模拟器、导航以及 2D/3D 感知包。

sudo apt install ros-melodic-desktop-full

安装完成后,可以用下面的命令来查看可使用的包:

apt-cache search ros-melodic

初始化 rosdep

比较困难的一步
在使用 ROS 之前,需要初始化 rosdep。rosdep 让你能够轻松地安装被想要编译的源代码,或被某些 ROS 核心组件需要的系统依赖。

sudo rosdep init
rosdep update

这时会遇到这样的报错
$ sudo rosdep init
ERROR: cannot download default sources list from:
https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/sources.list.d/20-default.list
Website may be down.

$ rosdep update
reading in sources list data from /etc/ros/rosdep/sources.list.d
ERROR: error loading sources list:
(‘The read operation timed out’)

可以通过添加代理的办法来解决
打开包含资源下载函数的文件:

sudo gedit /usr/lib/python2.7/dist-packages/rosdep2/sources_list.py

添加代理:
url=“https://ghproxy.com/”+url
添加的位置如图:
【全新教程】在 Ubuntu18.04中安装 ROS Melodic_第4张图片
修改/usr/lib/python2.7/dist-packages/rosdistro/_init_.py文件中的DEFAULT_INDEX_URL
sudo gedit /usr/lib/python2.7/dist-packages/rosdistro/_init_.py
DEFAULT_INDEX_URL = ‘https://ghproxy.com/https://raw.githubusercontent.com/ros/rosdistro/master/index-v4.yaml’
【全新教程】在 Ubuntu18.04中安装 ROS Melodic_第5张图片
修改其余(4个)文件中的地址,在地址 https://raw.githubusercontent.com/… 前添加https://ghproxy.com/

$ sudo gedit /usr/lib/python2.7/dist-packages/rosdep2/gbpdistro_support.py
//修改第36行的地址
$ sudo gedit /usr/lib/python2.7/dist-packages/rosdep2/sources_list.py 72行
//修改第72行
$ sudo gedit /usr/lib/python2.7/dist-packages/rosdep2/rep3.py
//修改第39行
$ sudo gedit /usr/lib/python2.7/dist-packages/rosdistro/manifest_provider/github.py
//修改第68行、119行
解决 Hit 第五个地址的报错
$ sudo gedit /usr/lib/python2.7/dist-packages/rosdep2/gbpdistro_support.py
//在第204行添加如下代码(即在该函数块下的第一行处)
gbpdistro_url = “https://ghproxy.com/” + gbpdistro_url
//注意,原网址中代理地址的双引号是中文,直接粘贴复制会报字符识别错误
多次运行 rosdep update ,发现问题完美解决。

我的截图:
在这里插入图片描述
【全新教程】在 Ubuntu18.04中安装 ROS Melodic_第6张图片

设置环境

非常重要,很多小伙伴在日常的开发过程中,有的找不到 Package, 找不到node, 很多情况下都是没有添加source造成的。
将 ROS 环境变量自动添加到新 bash 会话会很方便:

echo "source /opt/ros/melodic/setup.bash" >> ~/.bashrc
source ~/.bashrc

如果你不只安装了一个 ROS 发行版, ~/.bashrc 只能使用你需要的 ROS 版本的 setup.bash 。
如果你只想设置当前 bash 会话的 ROS 环境变量,只需要输入:

source /opt/ros/melodic/setup.bash

构建工厂依赖

到目前为止,你已经安装了运行核心 ROS 包所需的内容。
为了创建和管理自己的 ROS 工作区,有各种各样的工具和需求分别分布。例如:rosinstall 是一个经常使用的命令行工具,它使你能够轻松地从一个命令下载许多 ROS 包的源树。
要安装这个工具和其他构建ROS包的依赖项,请运行:

sudo apt-get install python-rosinstall python-rosinstall-generator python-wstool build-essential

参考:
强烈建议按照ROS官网安装:cn/melodic/Installation/Ubuntu - ROS Wiki

你可能感兴趣的:(ROS,自动驾驶,ubuntu,人工智能,ros)