当前位置: 首页 > news >正文

Ubuntu20.04下noetic版本ros安装时rosdep update失败解决方法【一行命令】

一、问题:

安装完ros后,需要执行sudo rosdep init,但是在没有全局科学上网的前提下,执行sudo rosdep init势必会报错:

ERROR: cannot download default sources list from:
https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/sources.list.d/20-default.list
Website may be down.

导致无法进行下一步rosdep update,其他改试图对墙做事情的方法时效性差,而且往往都是玄学。。。

这里在总结前人成果的基础上给出一个相对简单快捷的办法

二、方案:

1.新建脚本文件set_rosdep.sh包含以下内容

#! /usr/bin/env bash
## for ubuntu 20.04 & ros noetic onlyecho -e "\n\033[1;32m>>> Only for UBUNTU [20.04] & ROS [noetic] <<<\033[0m\n"
if [ ${#} -ne 0 ]; thenecho -e "Usage: \033[1;31mbash ${0}\033[0m\n" ; exit 1
fi
L_USER=${USER}
sudo git clone https://github.com/ros/rosdistro.git /opt/ros/noetic/rosdistro
if [ ${?} -ne 0 ]; then  echo -e "\033[0;31m\nERROR: git clone failed !\033[1m"; exit 1; 
fi
sudo sed -i 's/https:\/\/raw.githubusercontent.com\/ros\/rosdistro\/master/file:\/\/\/opt\/ros\/noetic\/rosdistro/g' /opt/ros/noetic/rosdistro/rosdep/sources.list.d/20-default.list
sudo rosdep init > /dev/null
sudo mkdir -p /etc/ros/rosdep/sources.list.d
sudo cp /opt/ros/noetic/rosdistro/rosdep/sources.list.d/20-default.list /etc/ros/rosdep/sources.list.d/
sudo sed -i 's/https:\/\/raw.githubusercontent.com\/ros\/rosdistro\/master/file:\/\/\/opt\/ros\/noetic\/rosdistro/g' /usr/lib/python3/dist-packages/rosdistro/__init__.py
sudo sed -i 's/https:\/\/raw.githubusercontent.com\/ros\/rosdistro\/master/file:\/\/\/opt\/ros\/noetic\/rosdistro/g' /usr/lib/python3/dist-packages/rosdep2/rep3.py
sudo sed -i "s/https:\/\/raw.githubusercontent.com\/ros\/rosdistro/file:\/\/\/opt\/ros\/noetic\/rosdistro/g" /usr/lib/python3/dist-packages/rosdep2/gbpdistro_support.py
sudo sed -i "s/master\/releases\/fuerte.yaml/releases\/fuerte.yaml/g" /usr/lib/python3/dist-packages/rosdep2/gbpdistro_support.py
sudo -u ${L_USER} rosdep update
if [ ${?} -eq 0 ]; then echo -e "\n\033[1;32m>>> Successfully executed 'rosdep update' :) <<< \033[0m\nby streamwill" ; exit 0
else echo -e "\033[0;31m\nFailed to execute 'rosdep update' !\033[1m" ; exit 1

2.运行脚本set_rosdep.sh完成rosdep update

bash set_rosdep.sh

NOTE: 执行期间应该要输入root密码,输入后回车即可。

3.Successfully executed ‘rosdep update’ 😃

--->>> 一键操作__简单快捷 <<<---

三、!!!以下为自己操作详细步骤,可以跳过!!!

1. 下载rosdistro到本地

  • 下载方式1: 度娘rosdistro,取货码: jhkn
  • 下载方式2:git clone https://github.com/ros/rosdistro.git
  • 必须保证文件夹名为rosdistro,且必须在当前用户目录下,即~,形如~/rosdistro。(只为保证后续直接复制命令执行)

2. 复制rosdistro文件夹到ros安装路径

  • 复制文件夹rosdistro/到路径/opt/ros/noetic
sudo cp ~/rosdistro/ /opt/ros/noetic/ -r

3.修改20-default.list文件

  • 修改/opt/ros/noetic/rosdistro/rosdep/sources.list.d/20-default.list文件
sudo sed -i 's/https:\/\/raw.githubusercontent.com\/ros\/rosdistro\/master/file:\/\/\/opt\/ros\/noetic\/rosdistro/g' /opt/ros/noetic/rosdistro/rosdep/sources.list.d/20-default.list

4.复制20-default.list文件

  • 复制/opt/ros/noetic/rosdistro/rosdep/sources.list.d/20-default.list文件到路径/etc/ros/rosdep/sources.list.d/
sudo cp /opt/ros/noetic/rosdistro/rosdep/sources.list.d/20-default.list /etc/ros/rosdep/sources.list.d/
  • 如果没有路径/etc/ros/rosdep/sources.list.d/,则手动创建:
sudo mkdir -p /etc/ros/rosdep/sources.list.d
  • 然后再次执行复制命令
sudo cp /opt/ros/noetic/rosdistro/rosdep/sources.list.d/20-default.list /etc/ros/rosdep/sources.list.d/

5. 修改三个.py文件

  • 文件一:/usr/lib/python3/dist-packages/rosdistro/__init__.py
sudo sed -i 's/https:\/\/raw.githubusercontent.com\/ros\/rosdistro\/master/file:\/\/\/opt\/ros\/noetic\/rosdistro/g' /usr/lib/python3/dist-packages/rosdistro/__init__.py
  • 文件二:/usr/lib/python3/dist-packages/rosdep2/rep3.py
sudo sed -i 's/https:\/\/raw.githubusercontent.com\/ros\/rosdistro\/master/file:\/\/\/opt\/ros\/noetic\/rosdistro/g' /usr/lib/python3/dist-packages/rosdep2/rep3.py
  • 文件三:/usr/lib/python3/dist-packages/rosdep2/gbpdistro_support.py
sudo sed -i "s/https:\/\/raw.githubusercontent.com\/ros\/rosdistro/file:\/\/\/opt\/ros\/noetic\/rosdistro/g" /usr/lib/python3/dist-packages/rosdep2/gbpdistro_support.py
sudo sed -i "s/master\/releases\/fuerte.yaml/releases\/fuerte.yaml/g" /usr/lib/python3/dist-packages/rosdep2/gbpdistro_support.py

6.执行rosdep update完成ros-noetic更新

Successfully executed ‘rosdep update’

一键操作,简单快捷。 😃


REF

[1].Ubuntu20.04 rosdep update失败解决方法

相关文章:

Ubuntu20.04下noetic版本ros安装时rosdep update失败解决方法【一行命令】

一、问题&#xff1a; 安装完ros后&#xff0c;需要执行sudo rosdep init&#xff0c;但是在没有全局科学上网的前提下&#xff0c;执行sudo rosdep init势必会报错&#xff1a; ERROR: cannot download default sources list from: https://raw.githubusercontent.com/ros/r…...

Vue2.0开发之——购物车案例-Footer组件封装-计算商品的总价格(51)

一 概述 App.vue中计算勾选商品的总价格定义子组件Footer中的商品总价格将App.vue中商品的总价格传递给Footer显示 二 App.vue中计算勾选商品的总价格 2.1 商品总价格的计算逻辑 所有勾选商品的价格*数量 2.2 App.vue中通过计算属性计算总价格 通过计算属性计算总价格 co…...

德鲁特金属导电理论(Drude)

德鲁特模型的重要等式 首先我们建立德鲁特模型的重要等式 我们把原子对于电子的阻碍作用&#xff0c;用一个冲量近似表示出来 在式子 首先定义一个等效加速度 由于 我们可以得到电导率的微观表达式 在交流电环境中 电场的表达式 借鉴上一问的公式 我们可以列出这样的表达式…...

(十一)python网络爬虫(理论+实战)——html解析库:BeautfulSoup详解

系列文章: python网络爬虫专栏 目录 序言 本节学习目标 特别申明...

四轮两驱小车(五):蓝牙HC-08通信

前言&#xff1a; 在我没接触蓝牙之前&#xff0c;我觉得蓝牙模块应用起来应该挺麻烦&#xff0c;后来发觉这个蓝牙模块的应用本质无非就是一个串口 蓝牙模块&#xff1a; 这是我从某宝上买到的蓝牙模块HC-08&#xff0c;价格还算可以&#xff0c;而且可以适用于大多数蓝牙调试…...

华为OD机试题 - 对称美学(JavaScript)| 机考必刷

华为OD机试题 最近更新的博客使用说明本篇题解:对称美学题目输入输出示例一输入输出说明示例二输入输出备注Code解题思路华为OD其它语言版本最近更新的博客 华为od 2023 | 什么是华为od,od 薪资待遇,od机试题清单华为OD机试真题大全,用 Python 解华为机试题 | 机试宝典...

Web Spider案例 网洛克 第四题 JSFuck加密 练习(八)

声明 此次案例只为学习交流使用&#xff0c;抓包内容、敏感网址、数据接口均已做脱敏处理&#xff0c;切勿用于其他非法用途&#xff1b; 文章目录声明一、资源推荐二、逆向目标三、抓包分析 & 下断分析逆向3.1 抓包分析3.2 下断分析逆向拿到混淆JS代码3.3 JSFuck解决方式…...

【JavaScript速成之路】JavaScript数组

&#x1f4c3;个人主页&#xff1a;「小杨」的csdn博客 &#x1f525;系列专栏&#xff1a;【JavaScript速成之路】 &#x1f433;希望大家多多支持&#x1f970;一起进步呀&#xff01; 文章目录前言1&#xff0c;初识数组1.1&#xff0c;数组1.2&#xff0c;创建数组1.3&…...

路由传参含对象数据刷新页面数据丢失

目录 一、问题描述 二、 解决办法 一、问题描述 【1】众所周知&#xff0c;在veu项目开发过程中&#xff0c;我们常常会用到通过路由的方式在页面中传递数据。但是用到this.$route.query.ObjectData的页面&#xff0c;刷新后会导致this.$route.query.ObjectData数据丢失。 …...

大数据flink框架入门分享(起源与发展、实时与离线计算、场景、处理流程、相关概念、特性普及、入门Demo)

文章目录起源与发展flink在github上的现状实时计算VS离线计算实时计算离线计算实时计算常用的场景框架流处理流程flink电商场景下的业务图示例flink中一些重要特性有界数据和无界数据时间语义、水位线事件时间处理时间水位线flink窗口概念理想中的数据处理含有延迟数据的数据处…...

由点到面贯穿整个Java泛型理解

泛型概述 Java泛型(generics)是DK5中引入的一个新特性&#xff0c;泛型提供了编译时类型安全监测机制&#xff0c;该机制允许我们在编译时检测到非法的类型数据结构。 泛型的本质就是参数化类型&#xff0c;也就是所操作的数据类型被指定为一个参数。 如我们经常使用的Array…...

北斗RTK高精度定位在AI领域的应用

随着北斗高精度定位技术越来越成熟&#xff0c;通过GNSS高精度定位与机器人结合&#xff0c;越来越多的智能机器人走进我们生活中。像驾培机器人、智能除草机器人、智能巡检机器人、北斗划线机器人等智能机器人已经广泛的投入使用。驾培机器人驾培机器人&#xff1a;通考车安装…...

2023年再不会 IOC 源码,就要被淘汰了

&#x1f44f;作者简介&#xff1a;大家好&#xff0c;我是爱敲代码的小黄&#xff0c;独角兽企业的Java开发工程师&#xff0c;CSDN博客专家&#xff0c;阿里云专家博主&#x1f4d5;系列专栏&#xff1a;Java设计模式、数据结构和算法、Kafka从入门到成神、Kafka从成神到升仙…...

MQ面试题

1、为什么使用消息队列&#xff1f; 其实就是问问你消息队列都有哪些使用场景&#xff0c;然后你项目里具体是什么场景&#xff0c;说说你在这个场景里用消息队列是什么&#xff1f; 面试官问你这个问题&#xff0c;期望的一个回答是说&#xff0c;你们公司有个什么业务场景&…...

pnpm 基本详细使用(安装、卸载、使用)

一、简介 官网地址、GitHub地址、官方安装文档、官方卸载文档。 pnpm 全称 performant npm&#xff0c;意思为 高性能的 npm。pnpm 由 npm/yarn 衍生而来&#xff0c;解决了 npm/yarn 内部潜在的 bug&#xff0c;极大的优化了性能&#xff0c;扩展了使用场景。被誉为 最先进的…...

Kafka生产者的粘性分区算法

分区算法分类 kafka在生产者投递消息时&#xff0c;会根据是否有key采取不用策略来获取分区。 存在key时会根据key计算一个hash值&#xff0c;然后采用hash%分区数的方式获取对应的分区。 而不存在key时采用随机算法选取分区&#xff0c;然后将所有的消息封装到这个batch上直…...

java基础篇

1.基础篇注释注释是在程序指定位置添加的说明性信息注释不参与程序运行&#xff0c;仅起到说明作用单行注释 格式&#xff1a;// 注释信息多行注释 格式&#xff1a;/* 注释信息 */关键字关键字&#xff1a;就是被Java语言赋予了特定含义的单词java中共有53个关键字1.全部有小写…...

Java与Winform进行AES加解密数据传输的工具类与对应关系和示例

场景 AndroidJava中使用Aes对称加密的工具类与使用&#xff1a; AndroidJava中使用Aes对称加密的工具类与使用_霸道流氓气质的博客-CSDN博客 上面讲的Java与安卓进行数据传输时使用AES加解密的示例工具类。 如果Java需要与其他第三方平台比如Winform程序进行数据传递时也需…...

OpenAI模型的API调用与使用-测试(2)

OpenAI模型的API调用与使用-测试&#xff08;2&#xff09;1. 参考Quick start搭建一个demo1.1 安装openai包1.2 demo测试11.3 demo测试2参考资料1. 参考Quick start搭建一个demo 1.1 安装openai包 注意关掉科学上网工具&#xff0c;下载openai包 pip install openai安装好后…...

【LeetCode】剑指 Offer 22. 链表中倒数第k个节点 p136 -- Java Version

题目链接&#xff1a;https://leetcode.cn/problems/lian-biao-zhong-dao-shu-di-kge-jie-dian-lcof/ 1. 题目介绍&#xff08;22. 链表中倒数第k个节点&#xff09; 输入一个链表&#xff0c;输出该链表中倒数第k个节点。为了符合大多数人的习惯&#xff0c;本题从1开始计数&…...

3DS游戏格式转换神器:5分钟让.3ds文件变身为可安装的CIA

3DS游戏格式转换神器&#xff1a;5分钟让.3ds文件变身为可安装的CIA 【免费下载链接】3dsconv Python script to convert Nintendo 3DS CCI (".cci", ".3ds") files to the CIA format 项目地址: https://gitcode.com/gh_mirrors/3d/3dsconv 还在为…...

构建个人代码仓库:提升开发效率的实践指南

1. 项目概述&#xff1a;一个面向21世纪开发者的代码仓库最近在GitHub上看到一个挺有意思的项目&#xff0c;叫“21st-dev/1code”。光看这个名字&#xff0c;你可能觉得有点抽象&#xff0c;但点进去之后&#xff0c;我发现它其实是一个挺有想法的代码仓库。这个项目没有复杂的…...

开源UI组件库深度解析:从设计系统到工程实践

1. 项目概述&#xff1a;一个开源UI组件库的诞生与价值如果你是一名前端开发者&#xff0c;或者正在负责一个需要快速搭建现代化界面的项目&#xff0c;那么你大概率听说过或者用过一些知名的UI组件库。今天我想深入聊聊一个在GitHub上拥有超过1.5万星标&#xff0c;被许多开发…...

一个产业带还值不值得押注?用 4 个生命周期阶段,对照 4 类可观察指标自己判断

你是卖设备、卖材料、卖工业服务的上游销售员。摆在你面前的是一张产业带地图&#xff1a;古镇灯饰、晋江运动鞋、戴南不锈钢、盛泽化纤、安平丝网……每一个都聚着成千上万家工厂。 问题来了&#xff1a;要在哪个产业带投入你的差旅、样品、地推团队&#xff1f;押错地方&…...

ElevenLabs菲律宾语语音突然变卡顿?紧急排查清单:DNS劫持、Token过期、区域节点错配(含curl诊断脚本)

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;ElevenLabs菲律宾语语音突然变卡顿&#xff1f;紧急排查清单&#xff1a;DNS劫持、Token过期、区域节点错配&#xff08;含curl诊断脚本&#xff09; 当ElevenLabs API在调用菲律宾语&#xff08;fil-P…...

Midjourney玩具相机风格从翻车到封神:1个--v 6.1专属参数组合+2个隐藏式胶片颗粒注入指令+1套曝光补偿校准表

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;Midjourney玩具相机风格的视觉本质与审美悖论 失真即真实&#xff1a;玩具相机的光学哲学 玩具相机&#xff08;Toy Camera&#xff09;风格在 Midjourney 中并非简单模拟 Lomography 或 Holga 的物理…...

Taotoken API Key精细化管理与审计日志的实际价值

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 Taotoken API Key精细化管理与审计日志的实际价值 在团队协作中引入大模型能力&#xff0c;往往伴随着对资源使用安全性与可控性的…...

Altium Designer20 从零到一:新手必备的安装与核心功能上手指南

1. Altium Designer20安装全攻略 第一次接触Altium Designer20&#xff08;简称AD20&#xff09;时&#xff0c;我和大多数电子设计新手一样&#xff0c;面对这个专业软件既兴奋又忐忑。记得当时为了完成课程设计&#xff0c;我在宿舍折腾了整整一个下午才搞定安装。现在回想起…...

巷道管道安装机器人紧固装配控制【附仿真】

✨ 长期致力于六轴机械臂、运动学建模、轨迹规划、柔顺控制、六维力/力矩传感器研究工作&#xff0c;擅长数据搜集与处理、建模仿真、程序编写、仿真设计。 ✅ 专业定制毕设、代码 ✅ 如需沟通交流&#xff0c;点击《获取方式》 &#xff08;1&#xff09;六自由度机械臂运动学…...

大模型涌现能力:从原理到工程实践的探索与分类

1. 项目概述&#xff1a;从“玄学”到“科学”的涌现能力探索最近和几个做模型研发的朋友聊天&#xff0c;大家不约而同地提到了一个词&#xff1a;“涌现能力”。这个词听起来有点玄乎&#xff0c;像是某种不可预测的“魔法”&#xff0c;但当我们深入讨论时&#xff0c;发现它…...