Loading...
墨滴

鄢立宝

2021/05/08  阅读:42  主题:默认主题

Ros安装教程

Ros安装教程

版本说明

Ubuntu版本:Ubuntu18.04.5 LTS

Ros版本:Melodic

配置系统软件源

打开“软件和更新”,进入到“Ubuntu软件”界面,允许universe、restricted、multiverse三项,即勾选这三项,如下图所示。安装完Ubuntu系统后这三项是默认勾选的,但还是检查一下为好,同时将源改为清华源。

添加Ros软件源

在终端输入如下指令,设置sources.list。

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

添加密钥

在终端输入如下指令,添加Ros密钥。

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

安装Ros

在终端输入如下指令,确保软件索引是最新的。

sudo apt update

在终端输入如下指令,安装桌面完整版Ros。

sudo apt install ros-melodic-desktop-full

设置环境变量

在终端输入如下指令,对环境变量进行配置。

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

初始化rosdep

在终端输入如下指令,对rosdep进行初始化。

sudo rosdep init
rosdep update

在初始化的时候可能会发生一些无法下载或者连接失败的错误,原因是https://raw.githubusercontent.com这个网站被DSN污染然后被墙了,国内无法访问。

解决方案

原理:

raw.githubusercontent.com实际上就是github的用户数据服务器,rosdep程序下载的就是从github.com/ros/rosdistro这个repo里的yaml文件虽然http://raw.githubusercontent.com服务器无法访问,但是yaml文件可以直接从git clone的repo中获得。

第1步:

使用如下命令将rosdistro克隆到本地(如果虚拟机不能克隆,可以在Windows主机克隆好后复制到虚拟机)。

git clone https://github.com/ros/rosdistro.git

将克隆好的rosdistro文件夹放置在/home/ylb/Software路径下(这里ylb是我的用户名,需要替换成你自己的)。

第2步:

文件1: 打开文件将里面的raw.githubusercontent.com改成文件路径的形式。

cd /home/ylb/Software/rosdistro/rosdep/sources.list.d/
sudo gedit 20-default.list 

如下: 注:如果手动把URL改为file路径,需要删除默认URL路径中的/master/,而不是简单的把https://raw.githubusercontent.com/ros替换为file:///home/ylb/Software

# os-specific listings first
yaml file:///home/ylb/Software/rosdistro/rosdep/osx-homebrew.yaml osx
# generic
yaml file:///home/ylb/Software/rosdistro/rosdep/base.yaml
yaml file:///home/ylb/Software/rosdistro/rosdep/python.yaml
yaml file:///home/ylb/Software/rosdistro/rosdep/ruby.yaml
gbpdistro file:///home/ylb/Software/rosdistro/releases/fuerte.yaml fuerte

文件2: 如果是Ros Noetic路径为python3,如果是ROS Melodic或者老版本则在路径python2.7下。

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

同样替换

FUERTE_GBPDISTRO_URL = 'file:///home/ylb/Software/rosdistro/' \
    'releases/fuerte.yaml'

文件3:

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

同样替换

REP3_TARGETS_URL = 'file:///home/ylb/Software/rosdistro/releases/targets.yaml'

文件4:

cd /usr/lib/python2.7/dist-packages/rosdistro/
sudo gedit __init__.py

同样替换

DEFAULT_INDEX_URL = 'file:///home/ylb/Software/rosdistro/index-v4.yaml'

第3步:

在终端输入如下指令,安装python-rosdep。

sudo apt-get install python-rosdep

如果不进行上一步安装python-rosdep,在运行sudo rosdep init时可能会出现"sudo: rosdep:找不到命令"的错误。 这里如果安装了python-rosdep后,运行sudo rosdep init还出现无法现在或连接失败的错误说明被墙了。可以用如下命令创建这个文件。

sudo mkdir -p /etc/ros/rosdep/sources.list.d 

然后在终端输入如下指令。

cd /etc/ros/rosdep/sources.list.d
sudo gedit 20-default.list

将下面的内容复制到文件并且保存。

#os-specific listings first
yaml file:///home/yourname/rosdistro/rosdep/osx-homebrew.yaml osx
#generic
yaml file:///home/yourname/rosdistro/rosdep/base.yaml
yaml file:///home/yourname/rosdistro/rosdep/python.yaml
yaml file:///home/yourname/rosdistro/rosdep/ruby.yaml
gbpdistro file:///home/yourname/rosdistro/releases/fuerte.yaml fuerte
#newer distributions (Groovy, Hydro, ...) must not be listed anymore, they are being fetched from the rosdistro index.yaml instead

最后

在终端输入如下指令,完成初始化rosdep。

rosdep update

运行结果如下:

reading in sources list data from /etc/ros/rosdep/sources.list.d
Hit file:///home/ylb/Software/rosdistro/rosdep/osx-homebrew.yaml
Hit file:///home/ylb/Software/rosdistro/rosdep/base.yaml
Hit file:///home/ylb/Software/rosdistro/rosdep/python.yaml
Hit file:///home/ylb/Software/rosdistro/rosdep/ruby.yaml
Hit file:///home/ylb/Software/rosdistro/releases/fuerte.yaml
Query rosdistro index file:///home/ylb/Software/rosdistro/index-v4.yaml
Skip end-of-life distro "ardent"
Skip end-of-life distro "bouncy"
Skip end-of-life distro "crystal"
Add distro "dashing"
Skip end-of-life distro "eloquent"
Add distro "foxy"
Add distro "galactic"
Skip end-of-life distro "groovy"
Skip end-of-life distro "hydro"
Skip end-of-life distro "indigo"
Skip end-of-life distro "jade"
Add distro "kinetic"
Skip end-of-life distro "lunar"
Add distro "melodic"
Add distro "noetic"
Add distro "rolling"
updated cache in /home/ylb/.ros/rosdep/sources.cache

安装rosinstall

在终端输入如下指令,安装rosinstall。

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

运行Ros

在终端输入如下指令,运行Ros,查看安装好的ROS的发行版名称为melodic和版本号1.14.10。

roscore

自检

在终端输入如下指令,对Ros进行自检。

roswtf

可以看到没有错误和警告,至此Ros安装完毕!

鄢立宝

2021/05/08  阅读:42  主题:默认主题

作者介绍

鄢立宝