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失败解决方法【一行命令】
一、问题: 安装完ros后,需要执行sudo rosdep init,但是在没有全局科学上网的前提下,执行sudo rosdep init势必会报错: 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)
德鲁特模型的重要等式 首先我们建立德鲁特模型的重要等式 我们把原子对于电子的阻碍作用,用一个冲量近似表示出来 在式子 首先定义一个等效加速度 由于 我们可以得到电导率的微观表达式 在交流电环境中 电场的表达式 借鉴上一问的公式 我们可以列出这样的表达式…...
(十一)python网络爬虫(理论+实战)——html解析库:BeautfulSoup详解
系列文章: python网络爬虫专栏 目录 序言 本节学习目标 特别申明...
四轮两驱小车(五):蓝牙HC-08通信
前言: 在我没接触蓝牙之前,我觉得蓝牙模块应用起来应该挺麻烦,后来发觉这个蓝牙模块的应用本质无非就是一个串口 蓝牙模块: 这是我从某宝上买到的蓝牙模块HC-08,价格还算可以,而且可以适用于大多数蓝牙调试…...
华为OD机试题 - 对称美学(JavaScript)| 机考必刷
华为OD机试题 最近更新的博客使用说明本篇题解:对称美学题目输入输出示例一输入输出说明示例二输入输出备注Code解题思路华为OD其它语言版本最近更新的博客 华为od 2023 | 什么是华为od,od 薪资待遇,od机试题清单华为OD机试真题大全,用 Python 解华为机试题 | 机试宝典...
Web Spider案例 网洛克 第四题 JSFuck加密 练习(八)
声明 此次案例只为学习交流使用,抓包内容、敏感网址、数据接口均已做脱敏处理,切勿用于其他非法用途; 文章目录声明一、资源推荐二、逆向目标三、抓包分析 & 下断分析逆向3.1 抓包分析3.2 下断分析逆向拿到混淆JS代码3.3 JSFuck解决方式…...
【JavaScript速成之路】JavaScript数组
📃个人主页:「小杨」的csdn博客 🔥系列专栏:【JavaScript速成之路】 🐳希望大家多多支持🥰一起进步呀! 文章目录前言1,初识数组1.1,数组1.2,创建数组1.3&…...
路由传参含对象数据刷新页面数据丢失
目录 一、问题描述 二、 解决办法 一、问题描述 【1】众所周知,在veu项目开发过程中,我们常常会用到通过路由的方式在页面中传递数据。但是用到this.$route.query.ObjectData的页面,刷新后会导致this.$route.query.ObjectData数据丢失。 …...
大数据flink框架入门分享(起源与发展、实时与离线计算、场景、处理流程、相关概念、特性普及、入门Demo)
文章目录起源与发展flink在github上的现状实时计算VS离线计算实时计算离线计算实时计算常用的场景框架流处理流程flink电商场景下的业务图示例flink中一些重要特性有界数据和无界数据时间语义、水位线事件时间处理时间水位线flink窗口概念理想中的数据处理含有延迟数据的数据处…...
由点到面贯穿整个Java泛型理解
泛型概述 Java泛型(generics)是DK5中引入的一个新特性,泛型提供了编译时类型安全监测机制,该机制允许我们在编译时检测到非法的类型数据结构。 泛型的本质就是参数化类型,也就是所操作的数据类型被指定为一个参数。 如我们经常使用的Array…...
北斗RTK高精度定位在AI领域的应用
随着北斗高精度定位技术越来越成熟,通过GNSS高精度定位与机器人结合,越来越多的智能机器人走进我们生活中。像驾培机器人、智能除草机器人、智能巡检机器人、北斗划线机器人等智能机器人已经广泛的投入使用。驾培机器人驾培机器人:通考车安装…...
2023年再不会 IOC 源码,就要被淘汰了
👏作者简介:大家好,我是爱敲代码的小黄,独角兽企业的Java开发工程师,CSDN博客专家,阿里云专家博主📕系列专栏:Java设计模式、数据结构和算法、Kafka从入门到成神、Kafka从成神到升仙…...
MQ面试题
1、为什么使用消息队列? 其实就是问问你消息队列都有哪些使用场景,然后你项目里具体是什么场景,说说你在这个场景里用消息队列是什么? 面试官问你这个问题,期望的一个回答是说,你们公司有个什么业务场景&…...
pnpm 基本详细使用(安装、卸载、使用)
一、简介 官网地址、GitHub地址、官方安装文档、官方卸载文档。 pnpm 全称 performant npm,意思为 高性能的 npm。pnpm 由 npm/yarn 衍生而来,解决了 npm/yarn 内部潜在的 bug,极大的优化了性能,扩展了使用场景。被誉为 最先进的…...
Kafka生产者的粘性分区算法
分区算法分类 kafka在生产者投递消息时,会根据是否有key采取不用策略来获取分区。 存在key时会根据key计算一个hash值,然后采用hash%分区数的方式获取对应的分区。 而不存在key时采用随机算法选取分区,然后将所有的消息封装到这个batch上直…...
java基础篇
1.基础篇注释注释是在程序指定位置添加的说明性信息注释不参与程序运行,仅起到说明作用单行注释 格式:// 注释信息多行注释 格式:/* 注释信息 */关键字关键字:就是被Java语言赋予了特定含义的单词java中共有53个关键字1.全部有小写…...
Java与Winform进行AES加解密数据传输的工具类与对应关系和示例
场景 AndroidJava中使用Aes对称加密的工具类与使用: AndroidJava中使用Aes对称加密的工具类与使用_霸道流氓气质的博客-CSDN博客 上面讲的Java与安卓进行数据传输时使用AES加解密的示例工具类。 如果Java需要与其他第三方平台比如Winform程序进行数据传递时也需…...
OpenAI模型的API调用与使用-测试(2)
OpenAI模型的API调用与使用-测试(2)1. 参考Quick start搭建一个demo1.1 安装openai包1.2 demo测试11.3 demo测试2参考资料1. 参考Quick start搭建一个demo 1.1 安装openai包 注意关掉科学上网工具,下载openai包 pip install openai安装好后…...
【LeetCode】剑指 Offer 22. 链表中倒数第k个节点 p136 -- Java Version
题目链接:https://leetcode.cn/problems/lian-biao-zhong-dao-shu-di-kge-jie-dian-lcof/ 1. 题目介绍(22. 链表中倒数第k个节点) 输入一个链表,输出该链表中倒数第k个节点。为了符合大多数人的习惯,本题从1开始计数&…...
iOS 26 携众系统重磅更新,但“苹果智能”仍与国行无缘
美国西海岸的夏天,再次被苹果点燃。一年一度的全球开发者大会 WWDC25 如期而至,这不仅是开发者的盛宴,更是全球数亿苹果用户翘首以盼的科技春晚。今年,苹果依旧为我们带来了全家桶式的系统更新,包括 iOS 26、iPadOS 26…...
K8S认证|CKS题库+答案| 11. AppArmor
目录 11. AppArmor 免费获取并激活 CKA_v1.31_模拟系统 题目 开始操作: 1)、切换集群 2)、切换节点 3)、切换到 apparmor 的目录 4)、执行 apparmor 策略模块 5)、修改 pod 文件 6)、…...
Unity3D中Gfx.WaitForPresent优化方案
前言 在Unity中,Gfx.WaitForPresent占用CPU过高通常表示主线程在等待GPU完成渲染(即CPU被阻塞),这表明存在GPU瓶颈或垂直同步/帧率设置问题。以下是系统的优化方案: 对惹,这里有一个游戏开发交流小组&…...
Cilium动手实验室: 精通之旅---20.Isovalent Enterprise for Cilium: Zero Trust Visibility
Cilium动手实验室: 精通之旅---20.Isovalent Enterprise for Cilium: Zero Trust Visibility 1. 实验室环境1.1 实验室环境1.2 小测试 2. The Endor System2.1 部署应用2.2 检查现有策略 3. Cilium 策略实体3.1 创建 allow-all 网络策略3.2 在 Hubble CLI 中验证网络策略源3.3 …...
Auto-Coder使用GPT-4o完成:在用TabPFN这个模型构建一个预测未来3天涨跌的分类任务
通过akshare库,获取股票数据,并生成TabPFN这个模型 可以识别、处理的格式,写一个完整的预处理示例,并构建一个预测未来 3 天股价涨跌的分类任务 用TabPFN这个模型构建一个预测未来 3 天股价涨跌的分类任务,进行预测并输…...
全球首个30米分辨率湿地数据集(2000—2022)
数据简介 今天我们分享的数据是全球30米分辨率湿地数据集,包含8种湿地亚类,该数据以0.5X0.5的瓦片存储,我们整理了所有属于中国的瓦片名称与其对应省份,方便大家研究使用。 该数据集作为全球首个30米分辨率、覆盖2000–2022年时间…...
1.3 VSCode安装与环境配置
进入网址Visual Studio Code - Code Editing. Redefined下载.deb文件,然后打开终端,进入下载文件夹,键入命令 sudo dpkg -i code_1.100.3-1748872405_amd64.deb 在终端键入命令code即启动vscode 需要安装插件列表 1.Chinese简化 2.ros …...
ESP32 I2S音频总线学习笔记(四): INMP441采集音频并实时播放
简介 前面两期文章我们介绍了I2S的读取和写入,一个是通过INMP441麦克风模块采集音频,一个是通过PCM5102A模块播放音频,那如果我们将两者结合起来,将麦克风采集到的音频通过PCM5102A播放,是不是就可以做一个扩音器了呢…...
屋顶变身“发电站” ,中天合创屋面分布式光伏发电项目顺利并网!
5月28日,中天合创屋面分布式光伏发电项目顺利并网发电,该项目位于内蒙古自治区鄂尔多斯市乌审旗,项目利用中天合创聚乙烯、聚丙烯仓库屋面作为场地建设光伏电站,总装机容量为9.96MWp。 项目投运后,每年可节约标煤3670…...
C++ 基础特性深度解析
目录 引言 一、命名空间(namespace) C 中的命名空间 与 C 语言的对比 二、缺省参数 C 中的缺省参数 与 C 语言的对比 三、引用(reference) C 中的引用 与 C 语言的对比 四、inline(内联函数…...
