rosdep init/update失败(转载)

sudo rosdep init
rosdep update

如果你直接成功了,可直接跳过当我没说(不过90%的几率你都会失败的啦)

由于http://raw.githubusercontent.com这个网址墙的很厉害,大概率你是成功不了的,这里推荐一种本地化安装的方法

1. 下载rosdistro

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

(如果git都失败了...,可以百度github镜像网站,镜像站下载很方便)

将rosdistro存放在/home/yourname/rosdistro

2. 配置20-default.list文件

运行

sudo rosdep init

重新生成/etc/ros/rosdep/sources.list.d/20-default.list. 没有则手动创建/etc/ros/rosdep/sources.list.d/20-default.list.

如果sudo rosdep init成功,直接跳过以下创建文件步骤

进入到/etc/ros/目录下

cd /etc/ros

创建rosdep文件

sudo mkdir rosdep && cd rosdep

创建sources.list.d文件

sudo mkdir sources.list.d && cd sources.list.d

创建20-default.list文档

sudo gedit 20-default.list

将20-default.list里面内容修改为下面的代码,注意内容/home/zjl修改为自己的记录路径

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

3. 编辑以下文件

/etc/ros/rosdep/sources.list.d/20-default.list/usr/lib/python2.7/dist-packages/rosdep2/gbpdistro_support.py/usr/lib/python2.7/dist-packages/rosdep2/rep3.py/usr/lib/python2.7/dist-packages/rosdistro/__init__.py

搜索文件中的 https://raw.githubusercontent.com/ros/rosdistro/master字段,将其替换为file:///home/yourname/rosdistro(后面的部分保持不变,最好备份一下)

例如:

//进行如下修改
#DEFAULT_INDEX_URL = 'https://raw.githubusercontent.com/ros/rosdistro/master/index-v4.yaml'
DEFAULT_INDEX_URL = 'file:///home/zjl/rosdistro/index-v4.yaml

注:最好每个文件都确定一下是否只有一个

例如:我的电脑查找

最后发现不止一个 init.py ,这时最好两个都要修改

4. rosdep update

接下来就可以愉快的rosdep update啦

由于是本地安装就不会失败啦

附上成功截图

五 . 添加环境变量

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

最后安装个实用插件

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

六 . 测试

运行

roscore

若出现下图,并无报错,就安装好啦

 //

/

这个解决方法是我在群里看到的,近期装了很多次ros都能完美解决,特地转载出来分享给大家,也给自己mark一下。

在安装ROS的过程中,很多同学在执行上述指令时会提示以下错误:

 
  1. ERROR: cannot download default sources list from:

  2. https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/sources.list.d/20-default.list

  3. Website may be down.

通常的解决办法是用手机热点

或者查询 

https://raw.githubusercontent.com的实际IP地址,但是也有可能会失效。

偶然的机会看到一教程的解决方案。

博主的思路是新思路:将相关资源备份到 gitee,修改 rosdep 源码,重新定位资源。成功率是百分百。

整理修改后提供解决ROS rosdep init/update报错的方法(终极版)。

步骤1

进入到 sources.list.d 文件夹(如果没有,则用mkdir指令新建)

修改 gedit 20-default.list

 
  1. cd /etc/ros/rosdep/sources.list.d

  2. sudo gedit 20-default.list

将里面所有的 

raw.githubusercontent.com/ros/rosdistro/master
替换成

gitee.com/wybros/rosdistro/raw/master 

修改前:

 
  1. # os-specific listings first

  2. yaml https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/osx-homebrew.yaml osx

  3. # generic

  4. yaml https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/base.yaml

  5. yaml https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/python.yaml

  6. yaml https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/ruby.yaml

  7. gbpdistro https://raw.githubusercontent.com/ros/rosdistro/master/releases/fuerte.yaml fuerte

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

修改后:

 
  1. # os-specific listings first rosdep update

  2. yaml https://gitee.com/wybros/rosdistro/raw/master/rosdep/osx-homebrew.yaml osx

  3. # generic

  4. yaml https://gitee.com/wybros/rosdistro/raw/master/rosdep/base.yaml

  5. yaml https://gitee.com/wybros/rosdistro/raw/master/rosdep/python.yaml

  6. yaml https://gitee.com/wybros/rosdistro/raw/master/rosdep/ruby.yaml

  7. gbpdistro https://gitee.com/wybros/rosdistro/raw/master/releases/fuerte.yaml fuerte

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

步骤2

进入到 rosdep2 文件夹,

修改 gbpdistro_support.py

 
  1. cd /usr/lib/python2.7/dist-packages/rosdep2/

  2. sudo gedit gbpdistro_support.py

将里面所有的 

raw.githubusercontent.com/ros/rosdistro/master
替换成

gitee.com/wybros/rosdistro/raw/master 

修改后如下

 
  1. FUERTE_GBPDISTRO_URL = 'https://gitee.com/wybros/rosdistro/raw/' \

  2. 'master/releases/fuerte.yaml'

步骤3

进入到 rosdep2 文件夹,

修改 rep3.py

 
  1. cd /usr/lib/python2.7/dist-packages/rosdep2/

  2. sudo gedit rep3.py

将里面所有的 

raw.githubusercontent.com/ros/rosdistro/master
替换成

gitee.com/wybros/rosdistro/raw/master 

修改后如下

REP3_TARGETS_URL = 'https://gitee.com/wybros/rosdistro/raw/master/releases/targets.yaml'

步骤4

进入到 rosdep2 文件夹,

修改 sources_list.py

 
  1. cd /usr/lib/python2.7/dist-packages/rosdep2/

  2. sudo gedit sources_list.py

将里面所有的 

raw.githubusercontent.com/ros/rosdistro/master
替换成

gitee.com/wybros/rosdistro/raw/master 

修改后如下

DEFAULT_SOURCES_LIST_URL = 'https://gitee.com/wybros/rosdistro/raw/master/rosdep/sources.list.d/20-default.list'

步骤5

进入到 rosdistro 文件夹

修改 __init__.py

 
  1. cd /usr/lib/python2.7/dist-packages/rosdistro/

  2. sudo gedit __init__.py

将里面所有的 

raw.githubusercontent.com/ros/rosdistro/master
替换成

gitee.com/wybros/rosdistro/raw/master 

修改后如下

DEFAULT_INDEX_URL = 'https://gitee.com/wybros/rosdistro/raw/master/index-v4.yaml'

最后

打开新终端执行

rosdep update

如果出现如下提示则表示成功!

图片

ATTETION:上边2个方法要都看一下,然后稍微修改一下文件路径,可能要调整一下路径,具体就自己去找到那个文件,然后修改一下路径了。我觉得可能yaml文件和Py文件内路径有调整,注意看就可以解决这个问题。

 为了不每次都这么麻烦来修改,建议自己写一个python脚本来处理这个过程,别人写的脚本当然不如自己写的安全。。。。。。。。。。。。。。。。。。下次再见

还有一个重要的事情:做完上面的修改不要再使用rosdep init,即使用了也不会成功的

但是我们不需要init了,就跳过这一步就可以了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/588442.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Leetcode】1154. 一年中的第几天

文章目录 题目思路代码 题目 1154. 一年中的第几天链接 思路 题目要求是给定一个字符串 date,它代表一个日期,采用标准的 YYYY-MM-DD 格式。需要计算这个日期是当年的第几天。 首先,我们可以通过字符串的索引来提取年、月和日的数值&…

二维动态规划问题,python解决最长回文子串

一个算法中的经典问题,求最长回文子串问题,其实是可以归于二维动态规划问题。 对于给定的一个字符串中,找到这个字符串中的回文子串,回文子串的概念是从前往后正向的读和从后往前反向的读都是完全相同的字符串。 对这个问题进行…

el-date-picker周选择器获取选择的日期范围

<el-date-pickerv-model"formData.date"type"week"format"yyyy 第 WW 周"placeholder"选择周"change"weekChange"> </el-date-picker>// 方法一&#xff1a;weekChange(val) {let startTime new Date(val.getT…

猪目标检测数据集VOC格式600张

猪是一种常见的哺乳动物&#xff0c;通常被人们认为是肉食动物&#xff0c;但实际上猪是杂食性动物&#xff0c;以植物性食物为主&#xff0c;也有偶尔食肉的习性。猪的体型较大&#xff0c;圆胖的体型和圆润的脸庞使其显得憨态可掬。它们主要通过嗅觉来感知周围环境&#xff0…

Windows操作系统简介

Windows操作系统简介 为什么要学习Windows操作系统呢&#xff0c;了解Windows系统结构&#xff0c;可以让我们快速学习Linux操作系统&#xff0c;通过对比学习的方法&#xff0c;我们可以更快的学会Linux。 计算机硬件组成包括&#xff1a; CPU、内存、网卡、硬盘、DVD光驱、…

RuntimeError: The NVIDIA driver on your system is too old.

【报错】使用 AutoDL 复现实验时遇到 RuntimeError: The NVIDIA driver on your system is too old (found version 11070). Please update your GPU driver by downloading and installing a new version from the URL: http://www.nvidia.com/Download/index.aspx Alternativ…

CentOS:docker同一容器间通信

docker同一容器中不同服务以别名访问 1、创建bridge网络 docker network create testnet 2、查看Docker网络 docker network ls 3、运行容器连接到testnet网络 使用方法&#xff1a;docker run -it --name <容器名> —network --network-alias <网络别名> <…

docker配置buildx插件

一、介绍 Docker buildx是docker的一个插件 支持Moby BuildKit的所有特性 可以跨CPU架构编译镜像 可以在多节点编译镜像 二、前提 使用 buildx 作为 docker CLI 插件需要使用 Docker 19.03 或更新版本。 三、配置步骤 1&#xff09;客户端&#xff1a;在客户端的配置文…

Vue3使用事件总线(Event Bus)实现发布订阅模式

Vue3使用事件总线&#xff08;Event Bus&#xff09;实现发布订阅模式 在Vue.js中&#xff0c;订阅发布模式&#xff08;也称为发布-订阅模式或Pub/Sub模式&#xff09;是一种设计模式&#xff0c;用于促进组件或对象之间的松散耦合。这种模式允许组件相互通信&#xff0c;而无…

python读取xlsx格式的excel

读取excel表格数据最好用的还是pandas库 首先是安装pandas pip install pandas 引入pandas import pandas as pd 读取excel&#xff0c;xlsx格式数据 # 读取xlsx格式的数据 def readexcel():df pd.read_excel("./test.xlsx",headerNone)df.columns df.iloc[4…

《PCI Express体系结构导读》随记 —— 第I篇 第1章 PCI总线的基本知识(17)

接前一篇文章&#xff1a;《PCI Express体系结构导读》随记 —— 第I篇 第1章 PCI总线的基本知识&#xff08;16&#xff09; 1.4 PCI总线的中断机制 PCI总线使用INTA#、INTB#、INTC#和INTD#信号向处理器发出中断请求。这些中断请求信号为低电平有效&#xff0c;并与处理器的中…

kivy中的GridLayout

说明 GridLayout 是 Kivy 框架中的一个布局管理器&#xff0c;它允许你在网格中排列子控件。你可以指定网格的行数和列数&#xff0c;然后添加子控件到网格中。GridLayout 会自动调整子控件的位置和大小&#xff0c;以适应网格的单元格。 在 Kivy 框架中&#xff0c;size_hint…

Plantuml之EBNF语法介绍(二十七)

简介&#xff1a; CSDN博客专家&#xff0c;专注Android/Linux系统&#xff0c;分享多mic语音方案、音视频、编解码等技术&#xff0c;与大家一起成长&#xff01; 优质专栏&#xff1a;Audio工程师进阶系列【原创干货持续更新中……】&#x1f680; 优质专栏&#xff1a;多媒…

多线程编程设计模式(单例,阻塞队列,定时器,线程池)

&#x1f495;"只有首先看到事情的可能性&#xff0c;才会有发生的机会。"&#x1f495; 作者&#xff1a;Mylvzi 文章主要内容&#xff1a;多线程编程设计模式(单例,阻塞队列,定时器,线程池) 本文主要讲解多线程编程中常用到的设计模式,包括单例模式,阻塞队列,定时…

基于SpringBoot的校园失物招领网站

文章目录 项目介绍主要功能截图:部分代码展示设计总结项目获取方式🍅 作者主页:超级无敌暴龙战士塔塔开 🍅 简介:Java领域优质创作者🏆、 简历模板、学习资料、面试题库【关注我,都给你】 🍅文末获取源码联系🍅 项目介绍 基于SpringBoot的校园失物招领网站,java…

C语言KR圣经笔记 5.1指针和地址 5.2指针和函数参数

第五章 指针和数组 指针是包含变量地址的变量。在 C 语言中&#xff0c;指针被大量使用&#xff0c;部分原因是有时只能用指针来表达某种计算&#xff0c;而部分原因是相比其他方式&#xff0c;指针通常能带来更紧凑和高效的代码。指针和数组是紧密关联的&#xff1b;本章也讲…

2024年【安全员-B证】考试报名及安全员-B证新版试题

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 安全员-B证考试报名考前必练&#xff01;安全生产模拟考试一点通每个月更新安全员-B证新版试题题目及答案&#xff01;多做几遍&#xff0c;其实通过安全员-B证考试试题很简单。 1、【多选题】《中华人民共和国消防法…

深入理解WPF MVVM:探索数据绑定与命令的优雅之道

引言&#xff1a; WPF&#xff08;Windows Presentation Foundation&#xff09;是一种用于创建富客户端应用程序的框架&#xff0c;而MVVM&#xff08;Model-View-ViewModel&#xff09;则是一种在WPF中使用的架构模式。MVVM提供了一种优雅的方式来组织和管理应用程序的代码&a…

(2023)PanGu-Draw:通过时间解耦训练和可重用的 Coop-Diffusion 推进资源高效的文本到图像合成

PanGu-Draw: Advancing Resource-Efficient Text-to-Image Synthesis with Time-Decoupled Training and Reusable Coop-Diffusion 公众&#xff1a;EDPJ&#xff08;添加 VX&#xff1a;CV_EDPJ 或直接进 Q 交流群&#xff1a;922230617 获取资料&#xff09; 目录 0. 摘要…

UNIAPP中借助store+watch完成实时数据

简介 手机端蓝牙连接校验仪&#xff0c;校验仪上传校验数据至手机完成展示。基于watch&#xff0c;完成实时展示数据。对象放在store中。实现分为store中的配置&#xff0c;数据接收&#xff0c;数据展示 store配置 在state中配置属性&#xff0c;在mutations中配置更新方法…