Ubuntu20.04安装ROS

news2025/1/12 20:42:13

Ubuntu20.04安装ROS

Excerpt

ubuntu安装方式有两种,一种是安装ubuntu系统,另一种是在windows下安装虚拟机,在虚拟机里安装ubuntu。下面为双系统安装ubuntu(用虚拟机装ubuntu会很卡,bug很多,除非电脑配置极好,否则不建议用虚拟机装ubuntu…


ubuntu安装方式有两种,一种是安装ubuntu系统,另一种是在windows下安装虚拟机,在虚拟机里安装ubuntu。下面为双系统安装ubuntu(用虚拟机装ubuntu会很卡,bug很多,除非电脑配置极好,否则不建议用虚拟机装ubuntu)

一、配置Linux清华镜像源

1.1 介绍

我们在下载很多基础的工具请求的基本上是国外的服务器,这对于国内用户来说,无疑是非常糟糕的体验,其下载速度慢、请求失败往往成为很多刚入门Linux的小白最大的困扰。

不过好在国内有着稳定高速且免费的镜像网站,我们可以通过修改系统配置文件来享受这些优秀的网站资源。

清华源:https://pypi.tuna.tsinghua.edu.cn/simple/
阿里云:https://mirrors.aliyun.com/pypi/simple
中科大:https://pypi.mirrors.ustc.edu.cn/simple/

1.2 开始配置

这里我以 Ubuntu 20.04LTS 为例来配置 清华源

首先进入清华大学开源软件镜像站(https://mirrors.tuna.tsinghua.edu.cn)

在列表里选择自己的系统,这里我选择的是 Ubuntu,点击后面的问号图案

进入后选择自己的系统版本 20.04LTS

随即文本框中会生成你需要的 sources.list 文件内容,打开 Ubuntu 的终端,输入下面的命令

sudo apt update

# 将 sources.list 拷贝到桌面,留个备份,防止修改以后出现问题,备份在主目录下
cp /etc/apt/sources.list ~/Desktop    

# 打开 sources.list 进行编辑
sudo gedit /etc/apt/sources.list

打开文件后,将里面的所有内容替换为之前网页内文本框里的内容,例如

# 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-updates main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-backports main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-backports main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-security main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-security main restricted universe multiverse

# 预发布软件源,不建议启用
# deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-proposed main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-proposed main restricted universe multiverse

然后保存关闭,这样清华源就配置好啦!

2.1 开始安装:配置公钥

在前面的操作中,我们已经为完成了国内源的配置,这将会让我们后面的install 一路畅通。不过还需要再做一个准备,那就是配置公钥

公钥是 Ubuntu 系统的一种安全机制,配置公钥让系统信任。

sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654

2.2 系统更新

更新系统,确保自己的Debian软件包和索引是最新的。

2.3 安装ROS

大家注意自己的 Ubuntu 版本,我的是 20.04 对应的是 ROS 版本是 noetic

# Ubuntu 20.04 
sudo apt install ros-noetic-desktop-full

# Ubuntu 18.04 
sudo apt install ros-melodic-desktop-full

在这里遇到了很沙雕的问题,E: 无法定位软件包 ros-noetic-desktop-full,换源阿里云后无效,又输入了两个命令行:

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 install ros-noetic-desktop-full,成功!

好吧,当时确实可以正常下载了,但是最后速度很慢,直接回宿舍睡觉,第二天到工位果然又报错了,

E: Sub-process /usr/bin/dpkg returned an error code (1)

输入以下命令成功解决:

现将info文件夹更名

sudo mv /var/lib/dpkg/info /var/lib/dpkg/info.bk

新建一个新的info文件夹

sudo mkdir /var/lib/dpkg/info

安装修复

sudo apt-get update
sudo apt-get install -f

执行完上一步操作后,在info文件夹下生成一些文件,现将这些文件全部移到info.bk文件夹下

sudo mv /var/lib/dpkg/info/* /var/lib/dpkg/info.bk

把自己新建的info文件夹删掉

sudo rm -rf /var/lib/dpkg/info

恢复原有info文件夹,修改名字

sudo mv /var/lib/dpkg/info.bk /var/lib/dpkg/info

然后再执行

sudo apt install ros-noetic-desktop-full

成功!

2023.7.25更新:

E: 无法定位软件包 ros-noetic-desktop-full,也有可能是软件源的问题,可以先换清华或者阿里云试一试。

三、配置ROS

3.1 初始化rosdep

sudo rosdep init && rosdep update

这里再次报错 sudo: rosdep:找不到命令

解决办法:

单独输入 sudo rosdep init 显示

ERROR: default sources list file already exists: /etc/ros /rosdep/sources.list.d/20-default.listPlease delete if you wish to re-initialize

然后输入命令

sudo rm /etc/ros/rosdep/sources.list.d/20-default.list

然后输入命令 sudo rosdep update显示超时,又再次输入sudo rosdep init发现报了新错误

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

输入以下命令:

然后在打开的hosts文件中添加如下的内容,然后保存退出

199.232.28.133 raw.githubusercontent.com

再输入sudo rosdep init命令试试,成功解决。然后再继续输入 sudo rosdep update,发现还是报超时的错误,然后专门查了rosdep update报错的问题,如下:

ERROR: default sources list file already exists: /etc/ros /rosdep/sources.list.d/20-default.listPlease delete if you wish to re-initialize

由于 rosdep update 请求的网站是 raw.githubusercontent.com,对于大部分人来说,该命令报错的原因主要是 timed out。网上一般的方法都是通过修改 /etc/ros/rosdep/sources.list.d/20-default.list 的请求地址。但我自己通过这个方法并不能解决问题,报错中仍然出现请求 raw.githubusercontent.com 时出现 timed out。

尝试过很多方法,特别复杂的就不说了,有两种方法:

  • 一种是修改连接网络,多换几个网络试试,比如换个手机热点,但这种方法是玄学问题,很浪费时间,而且大部分台式机并不会配备无线网卡,需要自己加;
  • 一种是将rosdep修改为rosdepc,因为rosdepc使用的是国内的源,rosdep初始化失败是因为其使用的是github,国内无法访问。安装步骤如下:

(此处封神,绝对是rosdep update报超时错误的最佳解决方案!)

安装rosdepc

如果显示没有pip可以试试pip3。

sudo pip3 install rosdepc

如果pip3还没有

sudo apt-get install python3-pip
sudo pip install rosdepc

使用

sudo rosdepc init
rosdepc update

到这应该就没问题了,继续下一步,胜利在望!

3.2 环境变量设置

这里容易出错,大家直接复制粘贴就好

注意对应自己的版本修改目录名

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

3.3 安装 rosinstall

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

3.4 测试ROS

打开第一个终端窗口,运行 roscore

出现如下图的情况,就证明运行成功

打开第二个终端窗口,输入:

rosrun turtlesim turtlesim_node

当出现有一个海龟的窗口,证明运行成功了(每次生成的海龟类型是随机的)

打开第三个终端窗口,输入:

rosrun turtlesim  turtle_teleop_key

出现这样的提示后,我们用鼠标聚焦第三个终端窗口,便可以通过按下 ↑ ↓ ← →键来对小海龟进行控制了。

3.5 安装完成

到了这里,恭喜你已经完成了ROS的安装、配置且运行。

ps:本人从今年初已经装过不下10遍ubuntu和ros,但还是有没遇到过的报错,ubuntu本身就极其容易报错,不同的设备报的错还不一样,所以不要用最新版本的ubuntu!刚开始用ubuntu和ros确实很搞心态,耐住性子,最后会发现其实还挺简单的~

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

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

相关文章

UI按钮设计原则,让你的产品一次打动用户!

UI按钮是常见的界面组件,广泛应用于表单、对话框以及工具栏等场景。与链接不同,按钮用于让用户执行特定操作,如提交、删除等;而链接则将用户引导到新的页面。优秀的按钮设计能极大地提高用户的操作效率和转化率。本文将全面介绍按钮设计的相关指南,并通过实例解析如何设计出能最…

Android之布局转圆角

Android之布局转圆角 文章目录 Android之布局转圆角说明一、效果图二、实现步骤1.自定义RoundRelativeLayout2.使用 总结 说明 很多需求比较无语,需要某个布局转圆角,像个显眼包一样,所以为了满足显眼包,必须整呐提示&#xff1a…

01_lwip_raw_udp_test

1.打开UDP的调试功能 (1)设置宏定义 (2)打开UDP的调试功能 (3)修改内容,串口助手打印的日志信息自动换行 2.电脑端连接 UDP发送一帧数据 3.电路板上发送一帧数据

k8s etcd 简介

Etcd是CoreOS基于Raft协议开发的分布式key-value存储,可用于服务发现、共享配置以及一致性保障(如数据库选主、分布式锁等)。 如,Etcd也可以作为微服务的注册中心,比如SpringCloud也基于ETCD实现了注册中心功能&#…

如何利用Python代码优雅的进行文件下载

如何利用Python代码优雅的进行文件下载 一、什么是wget?二、使用wget.exe客户端进行文件下载三、使用Python脚本进行文件下载 欢迎学习交流! 邮箱: z…1…6.com 网站: https://zephyrhours.github.io/ 一、什么是wget?…

【LeetCode算法系列题解】第6~10题

CONTENTS LeetCode 6. N 字形变换(中等)LeetCode 7. 整数反转(中等)LeetCode 8. 字符串转换整数-atoi(中等)LeetCode 9. 回文数(简单)LeetCode 10. 正则表达式匹配(困难&…

hadoop的hadoop.tmp.dir安装时一定要更改

hadoop的hadoop.tmp.dir安装时一定要更改 hadoop.tmp.dir 属性确保了 HDFS 元数据的存储位置,其中包含了一些关键的文件,如: fsimage 文件:这是 HDFS 的文件系统镜像,记录了整个文件系统命名空间的状态。它包含所有文…

飞腾PSPA可信启动--4 可信固件环境搭建和打包

今天继续第四章,飞腾可信固件环境搭建和打包介绍。 此章节录制了讲解视频,可以在B站进行观看: Gmssl-master文件,可以关注公众号“乌拉大喵喵”后回复“Gmssl”获取。(区分大小写)

方案小知识

云平台 云平台也称云计算平台. 云计算, 顾名思义, 就是将计算在云上运行. 那么在这里面的3个概念 云: 通俗的理解就是远程计算机, 并且是一组 一堆, 这些远程计算机协同工作构建出一个平台,对用户提供服务计算:这是一个概念很大的名词,小了…

Nacos服务发起注册找不到nacos

错误概述 service启动报错&#xff0c;显示服务发起注册的时候找不到nacos failed to req API:/nacos/v1/ns/instance after all servers([localhost:8845]) tried: ErrCode:400, ErrMsg:<html><body><h1>Whitelabel Error Page</h1><p>This …

SOD-123FL贴片整流二极管,有哪些型号?

近日发现&#xff0c;客户对整流二极管的需求特别大。常有客户前来东沃电子咨询整流二极管型号参数、选型、替代、价格、交期、样品等方面的问题。那么&#xff0c;关于DS1A、DS1B、DS1D、DS1G、DS1J、DS1K、DS1M贴片整流二极管&#xff0c;您知道多少呢&#xff1f;东沃电子推…

免费试用,畅享海量内容!快来体验Netflix首月福利

Netflix是一家全球知名的流媒体服务平台,通过提供海量的电影、电视剧、纪录片和动画等各种类型的内容,迅速赢得了全球观众的喜爱。作为一项以订阅制为基础的在线视频服务,Netflix为用户提供了无限制的观影体验,让用户可以根据自己的兴趣和喜好随时随地畅享精彩的影视内容。 Ne…

新一代AI换脸和人脸增强软件及使用教程!facefusion

又有新东西咯&#xff01; roop停更了&#xff0c;核心开发者独立发布了一个项目&#xff0c;就是这个叫facefusion的项目。官方介绍为下一代的人脸交换和增强软件。 这是官方预览图&#xff0c;又红又紫&#xff0c;确实有点fusion的感觉。 这次的软件使用gradio构建了WebUI&…

SIEM(安全信息和事件管理)解决方案

什么是SIEM 安全信息和事件管理&#xff08;SIEM&#xff09;是一种可帮助组织在安全威胁危害到业务运营之前检测、分析和响应安全威胁的解决方案&#xff0c;将安全信息管理 (SIM) 和安全事件管理 (SEM) 结合到一个安全管理系统中。SIEM 技术从广泛来源收集事件日志数据&…

“北科Java面试宝典(211最详细讲解)“

Version : V1.0 北科Java面试宝典一、Java基础面试题【24道】二、JVM虚拟机面试题【14道】三、集合相关面试题【17道】四、多线程 【25道】五、IO【5道】六、网络编程 【9道】七、MySQL以及SQL面试题【20道】八、常用框架【19道】九、中间件和分布式 【54道】十、设计模式面试 …

图转超图 Graph convert toHypergraph

图转超图 DHT 介绍那么它有啥用呢&#xff1f; 这个实在太好玩了&#xff0c;参考的这个论文&#xff1a; EHGNN 采用的方法叫 Dual Hypergraph Transformation (DHT)&#xff0c;主要就是把一个 graph 转为 hypergraph DHT 介绍 如何将 graph 转 hypergraph 的呢&#xff1…

jdbc235

概念&#xff1a;java database connectivity java数据库连接 java语言操作数据库 定义了一套操作所有关系型数据库的规则&#xff08;接口&#xff09; 本质&#xff1a;其实是官方公司定义了一套操作所有关系型数据库的规则&#xff0c;即接口。各个数据库厂商去实现这套接…

YOLOv5算法改进(9)— 替换主干网络之ShuffleNetV2

前言&#xff1a;Hello大家好&#xff0c;我是小哥谈。ShuffleNetV2 是一种轻量级的神经网络架构&#xff0c;适用于移动设备和嵌入式设备等资源受限的场景&#xff0c;旨在在计算资源有限的设备上提供高效的计算和推理能力&#xff0c;它通过引入通道重排操作和逐点组卷积来减…

Node.js 中间件是怎样工作的?

express自带路由功能&#xff0c;可以侦听指定路径的请求&#xff0c;除此之外&#xff0c;express最大的优点就是【中间件】概念的灵活运用&#xff0c;使得各个模块得以解耦&#xff0c;像搭积木一样串起来就可以实现复杂的后端逻辑。除此之外&#xff0c;还可以利用别人写好…