本文主要是介绍ubuntu18.04下ROS-melodic安装--告别外网站点限制,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
ROS安装
- (强烈推荐鱼香ROS的一键安装!!!什么都不用管)在多次给自己以及帮助他人安装ROS时,饱受rosdep init,rosdep update失败的困扰,其原因就是通常无法连接到国外站点,导致系统文件无法下载。本人站在各位前辈的肩膀上总结出无需外网,无需运气的安装方法,供需要的同学采纳。
- 首先选择中科大的镜像源(其他的如清华,阿里云亦可)
- 添加软件源
- 配置秘钥
- 更新软件源
- 安装rosdep 的依赖
- 安装最全版本的ROS
- rosdep init?
- 第一个文件
- 第二个文件
- 第三个文件
- (还没完呢!)配置环境
- ROS的核心已经安装完了再运行下面的命令将ROS的依赖和软件包构建起来
- 验证是否ROS是否安装成功
- 安装完成!
(强烈推荐鱼香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
出现下图则成功
安装完成!
这篇关于ubuntu18.04下ROS-melodic安装--告别外网站点限制的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!