IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> 2021-07-22 -> 正文阅读

[Python知识库]2021-07-22

rosdep init ROS安装问题解决方案(最新)

Ubuntu16.04 安装 ROS时,有时在运行sudo rosdep init后出现下所示错误:

在这里插入图片描述

(图1)rosdep init ROS安装问题

首先试着通过浏览器访问error中提及的网址:浏览器启动——!!!

在这里插入图片描述

(图2)浏览器访问error提及网址失败

可惜发现网址都无法打开,于是在终端尝试以下代码,ping一下这个网址

ping raw.githubusercontent.com

却发现其实通过终端ping的方式,我们是可以访问上述网页地址的。

在这里插入图片描述

(图3)终端ping的方式访问成功

那么究竟error中返回的地址到底有什么内容呢?首先,看到网址中包含20-default.list,可以猜测访问该网址就是为了下载这个文件。接着,从一台安装好ROS的电脑上(这里小编已经提前下载),我们访问了这个error中提及的网址,从下图可以看出这个网址页面的一些信息。

在这里插入图片描述

(图4)20-default.list的文件内容

在安装好ROS的电脑上翻看了相关文件,发现在/etc/ros/rosdep/sources.list.d文件目录下有一个名称为20-default.list文件,打开显示如下,通过对比发现,该文档的内容与error返回网址的内容一致,于是笔者猜测sudo rosdep init链接上述网址,下载相关文件(20-default.list)到上述目录中,并且通过rosdep update访问该文件中的相关地址,下载相关文件。

在这里插入图片描述

(图5)20-default.list的文件内容

这是访问外网总会出现的翻墙现象之一,学过JavaWeb的小伙伴一定深同感受:配置Maven的本地仓库虽然麻烦,但比远程访问的效果要好很多。所以解决思路就是将用到的文件下载到本地,然后修改原文件中的链接,指向本地仓库,即可完美解决。

首先,这里先推荐一般的方法:https://www.guyuehome.com/12640,大家可以先试一下。不过,此法对笔者没有任何帮助。

所以,又找了第二种方法:https://blog.csdn.net/qq_35822136/article/details/106320587。不幸的是,笔者再次失败了,因为这两种方法都要在虚拟机终端中远程访问外网,皆以翻墙失败告终。

在这里插入图片描述

(图6)git访问再次失败

不过,笔者不会就此被打倒。终于,站在前辈的想法上,思考出一种有效的方法(亲测多次成功)。

一、解决方案

1.新建一个文件夹

sudo mkdir -p  /home/hqlee/

2.下载文件到本地

**步骤一:**可以在任意平台将用到的文件下载到本地

**步骤二:**将下载的文件移植到Ubuntu操作系统的虚拟机中

这里为了方便,可以将Windows上的压缩包文件直接拖到Ubuntu下的/home文件夹中(因为home文件夹下的权限较高)。

在这里插入图片描述

(图7)拖拽压缩包到/home文件夹下

**步骤三:**解压压缩包

在这里插入图片描述

(图8)压缩文件并重命名

并将压缩后的文件夹命名为rosdistro

**步骤四:**移动文件夹 rosdistro 到 /home/hqlee/ 目录下

cd /home/*	// 此处*代指以用户名命名的文件夹,每位用户的都不相同
ls
sudo mv rosdistro /home/hqlee

3.另打开一个终端,备份原文件,运行

sudo cp /usr/lib/python2.7/dist-packages/rosdep2/rep3.py /usr/lib/python2.7/dist-packages/rosdep2/rep3.py.bak
sudo cp /usr/lib/python2.7/dist-packages/rosdistro/__init__.py /usr/lib/python2.7/dist-packages/rosdistro/__init__.py.bak
sudo cp /usr/lib/python2.7/dist-packages/rosdep2/sources_list.py /usr/lib/python2.7/dist-packages/rosdep2/sources_list.py.bak

在这里插入图片描述

(图9)备份文件

4.修改代码,将原文件的网址替换为本地仓库地址

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

并全部做替换,将 https://raw.githubusercontent.com/ros/rosdistro/master 全部替换为 file:///home/hqlee/rosdistro 。这里小编可以很负责地说,每个文件里仅有一处要修改,且修改的地方都在代码的前面部分。

在这里插入图片描述

(图10)替换网址

5.重新运行

sudo rosdep init

在这里插入图片描述

(图11)运行成功

若运行失败,可以多次重新运行。实在不行的话,也不用气馁。因为我们还可以手动配置20-default.list文件。

当然,运行成功的话,就不必再听小编叨叨了,可以直接跳过第6步,直接执行第7步;否则还是要执行第6步。

6.配置20-default.list文件

此解决方案的原理是基于手动完成sudo rosdep init的步骤

**步骤一:**首先打开一个终端,执行以下指令创建root并切换至root用户

sudo su //或者su root 然后输入密码切换至root用户
sudo mkdir -p /etc/ros/rosdep/sources.list.d
cd /etc/ros/rosdep/sources.list.d
sudo gedit 20-default.list

**步骤二:**将以下内容复制进20-default.list文件中

# os-specific listings first
yaml https://raw.githubusercontent.com/ros/rosdistro/master/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

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

**步骤三:**执行以下指令

exit //退出root用户

7.保存并运行,并替换下载地址

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

将 https://raw.githubusercontent.com/ros/rosdistro/master 全部替换为 file:///home/hqlee/rosdistro 。

# os-specific listings first
yaml file:///home/hqlee/rosdistro/rosdep/osx-homebrew.yaml osx

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

8.运行

rosdep update

在这里插入图片描述

(图12)添加文件成功

9.over,接下来就可以配置环境变量,测试ros环境了。

参考教程1

参考教程2

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2021-07-23 10:43:09  更:2021-07-23 10:46:49 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 0:45:35-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码