ubuntu18.04下ROS-melodic安装--告别外网站点限制

(强烈推荐鱼香ROS的一键安装!!!什么都不用管)在多次给自己以及帮助他人安装ROS时,饱受rosdep init,rosdep update失败的困扰,其原因就是通常无法连接到国外站点,导致系统文件无法下载。本人站在各位前辈的肩膀上总结出无需外网,无需运气的安装方法,供需要的同学采纳。

在rosdep init 之前的步骤基本都是一样的,废话不多说,开始在安装。

首先选择中科大的镜像源(其他的如清华,阿里云亦可)

在这里插入图片描述

添加软件源

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

配置秘钥

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

更新软件源

sudo apt update

安装rosdep 的依赖

sudo apt-get install python-rosdep

安装最全版本的ROS

sudo apt install -y ros-melodic-desktop-full

rosdep init?

正常来说需要运行rosdep init这个命令进行rosdep的初始化,其作用就是从raw.githubusercontent.com这个网站里下载github.com/ros/rosdistro这个repository里的文件。这个网站除了翻墙和换网以及运气外基本连不上,我已经将所有文件放到的国内的gitee里面,不需要这个命令可以快速完成下载。
需要先安装git
终端输入

sudo apt-get install git

打开终端输入下行命令下载文件

git clone https://gitee.com/wx_b25a68fb1d/rosdistro.git

将文件放置到/etc/ros下(有的同学可能要问了,诶,我的/etc下没有ros文件啊。没事,这里直接利用根命令在/etc这个文件结下创建一个就行:如下图)
在这里插入图片描述

sudo cp -r /home/pf/rosdistro /etc/ros

然后打开20-default.list文件

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

里面的内容用下面的替换

# os-specific listings first
#yaml https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/osx-homebrew.yaml osx
yaml file:///etc/ros/rosdep/osx-homebrew.yaml osx

# generic
#yaml https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/base.yaml
#yaml https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/python.yaml
#yaml https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/ruby.yaml
#gbpdistro https://raw.githubusercontent.com/ros/rosdistro/master/releases/fuerte.yaml fuerte
yaml file:///etc/ros/rosdep/base.yaml
yaml file:///etc/ros/rosdep/python.yaml
yaml file:///etc/ros/rosdep/ruby.yaml
gbpdistro file:///etc/ros/releases/fuerte.yaml fuerte

# newer distributions (Groovy, Hydro, ...) must not be listed anymore, they are being fetched from the rosdistro index.yaml instead

之后修改下面三个文件里面的连接

1. /usr/lib/python2.7/dist-packages/rosdep2/gbpdistro_support.py
2. /usr/lib/python2.7/dist-packages/rosdep2/rep3.py
3. /usr/lib/python2.7/dist-packages/rosdistro/__init__.py

第一个文件

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

将FUERTE_GBPDISTRO_URL修改为下面内容

# FUERTE_GBPDISTRO_URL = 'https://raw.githubusercontent.com/ros/rosdistro/master/releases/fuerte.yaml'
FUERTE_GBPDISTRO_URL = 'file:///etc/ros/releases/fuerte.yaml'

记得保存

第二个文件

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

修改REP3_TARGETS_URL内容为下

# REP3_TARGETS_URL = 'https://raw.githubusercontent.com/ros/rosdistro/master/releases/targets.yaml'
REP3_TARGETS_URL = 'file:///etc/ros/releases/targets.yaml'

第三个文件

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

修改DEFAULT_INDEX_URL内容为下

# DEFAULT_INDEX_URL = 'https://raw.githubusercontent.com/ros/rosdistro/master/index-v4.yaml'
DEFAULT_INDEX_URL = 'file:///etc/ros/index-v4.yaml'

现在基本已经完成rosdep init的工作了
但是直接进行rosdep update很可能会出现未进行初始化的问题,原因是rosdep update的路径是/etc/ros而上述修改后的文件在/etc/ros/rosdistro 路径下,不要慌,简单的一个复制就能解决问题,命令如下:

sudo cp -r /etc/ros/rosdistro/rosdep /etc/ros

运行rosdep update

sudo rosdep update

效果如下
在这里插入图片描述

(还没完呢!)配置环境

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

ROS的核心已经安装完了再运行下面的命令将ROS的依赖和软件包构建起来

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

验证是否ROS是否安装成功

roscore

出现下图则成功
在这里插入图片描述

安装完成!

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值