【Linux】Ubuntu20.04.5安装ROS1【教程】

news2024/11/25 10:52:18

文章目录

  • 【Linux】Ubuntu20.04.5安装ROS1【教程】
    • 写在前面,一些特别注意的点
    • 安装步骤大纲
    • 1.选择软件镜像源(可以省略,如果不成功再试这一步)
    • 2.添加ROS软件源和密钥
    • 3.安装ROS1
    • 4.设置环境变量
    • 5.安装rosinstall
    • 6.检查安装是否成功
    • Reference

【Linux】Ubuntu20.04.5安装ROS1【教程】

博主使用的Ubuntu版本是20.04.5LST,在安装的过程中遇到了不少的坑,写在这篇博客里,帮助大家避免这些坑。Ubuntu20.04.5的安装教程可以参考这篇博客,点击跳转。

写在前面,一些特别注意的点

  • 1.在安装ros的时候使用手机热点,可以有效防止国内运营商的网络挟持,加快下载速度
  • 2.一定要确保自己使用的Ubuntu版本是受ros支持的,博主一开始使用的是Ubuntu20.04.1LST,这个版本是不受支持的,所以浪费了很多时间都没有安装成功,后面使用了Ubuntu20.04.5LST才顺利安装,具体的可以查看下面的表
Ubuntu版本名称ROS1
14.04 LSTTrusty Tahrindigo lgloo
16.04 LSTXenial XerusKinetic Kame
18.04 LSTBionic BeaverMelodic Morenia
20.04.5 LSTFocal FossaNoetic Ninjemys(Recommended)
image-20221105200024079

点击此处查看完整列表,从上表可以看出,Ubuntu20.04.1LST并不是主流的版本,所以ROS1不受支持。


安装步骤大纲

开始正式的安装之前,先了解一下安装的步骤,安装主要包括以下几个步骤:

  • 1.选择软件镜像源
  • 2.添加ROS软件源和密钥
  • 3.安装ROS
  • 4.设置环境变量
  • 5.安装rosinstall
  • 6.检查安装是否成功

可以直接参考ROSwiki官网(点击跳转)给出的步骤


1.选择软件镜像源(可以省略,如果不成功再试这一步)

进入设置,然后进入软件更新

image-20221105200024079

然后选择最佳服务器

image-20221105200024079

2.添加ROS软件源和密钥

进入ROSwiki官网(点击跳转)后,选择ROS镜像源

image-20221105200024079

这里由很多的镜像源,选择其中一个使用即可

image-20221105200024079

笔者使用的是USTC的镜像源,放在这里大家直接复制就好了

sudo sh -c '. /etc/lsb-release && echo "deb http://mirrors.ustc.edu.cn/ros/ubuntu/ `lsb_release -cs` main" > /etc/apt/sources.list.d/ros-latest.list'

下面是TUNA的镜像源

sudo sh -c '. /etc/lsb-release && echo "deb http://mirrors.tuna.tsinghua.edu.cn/ros/ubuntu/ `lsb_release -cs` main" > /etc/apt/sources.list.d/ros-latest.list'

这两个镜像源选择其中一个就好

然后,给刚才设置的ROS源添加密钥

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

下面是设置完成的提示

image-20221105200024079

3.安装ROS1

image-20221105200024079

接下来,完成apt的更新,运行下一行代码

sudo apt update

耐心等待一段时间

image-20221105200024079

成功完成更新

image-20221105200024079

然后,正式开始安装,安装桌面完整版本

sudo apt install ros-noetic-desktop-full

耐心等待一段时间,请一定换成手机热点,不然真的很痛苦

image-20221105200024079

没有报错,就是成功

image-20221105200024079

4.设置环境变量

image-20221105200024079

设置环境变量如下

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

构建软件包的依赖项,上述步骤已经安装了运行核心ROS软件包所需的内容。要创建和管理您自己的ROS工作区,有各种工具和要求单独分发。

要安装此工具和其他构建ROS软件包的依赖项,请运行:

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

耐心等待一段时间,请一定换成手机热点,不然真的很痛苦

image-20221105200024079

没有报错,就是成功

image-20221105200024079

5.安装rosinstall

安装完成之后,初始化rosdep

这里需要安装rosdepc,这是国内大佬做的rosdep镜像,可以绕开连接不上服务器的困难过程。

sudo apt install python3-pip

耐心等待一段时间,请一定换成手机热点,不然真的很痛苦

image-20221105200024079

没有报错,就是成功

image-20221105200024079

在安装了pip之后,需要对其进行换源,使用国内源能够更快下载文件

mkdir ~/.pip
cd ~/.pip
touch pip.conf
sudo gedit ~/.pip/pip.conf

在弹出的文件中写入,并保存

[global]
index-url = https://pypi.tuna.tsinghua.edu.cn/simple/ 
[install]
trusted-host = pypi.tuna.tsinghua.edu.cn
image-20221105200024079

然后,安装rosdepc,执行初始化rosdepc,更新rosdepc

sudo pip install rosdepc
sudo rosdepc init
rosdepc update

下面提示成功完成更新,

image-20221105200024079

6.检查安装是否成功

打开三个终端,分别输入

roscore
rosrun turtlesim turtlesim_node
rosrun turtlesim turtle_teleop_key

然后将鼠标聚焦到输入最后一个命令的窗口,通过键盘的上下左右键,分别控制小王八的前进,后退,左转,右转。

image-20221105200024079

Reference

1.参考其他的高赞教程
2.参考其他的高赞教程
3.参考其他的高赞教程
4.Ubuntu版本与ROS对应名称
5.大佬写的rosdepc

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

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

相关文章

基于uds和modbus协议的bootloader对比

2022年参与了两个bootloader项目的开发,两个项目使用的芯片、通讯驱动不同,因此传输协议也不同,年底了将两个项目做一个对比,也顺便加深下对bootloader的理解。相同点:modbusuds刷新流程刷新流程大同小异,简…

活动星投票技能创意大赛网络评选微信的投票方式线上免费投票

“技能创意大赛”网络评选投票_建立投票链接_作品投票小程序_扫码投票制作方法现在来说,公司、企业、学校更多的想借助短视频推广自己。通过微信投票小程序,网友们就可以通过手机拍视频上传视频参加活动,而短视频微信投票评选活动既可以给用户…

C语言详解——自定义类型:结构体、枚举、联合体

🌇个人主页:平凡的小苏 📚学习格言:别人可以拷贝我的模式,但不能拷贝我不断往前的激情 🛸C语言专栏:https://blog.csdn.net/vhhhbb/category_12174730.html 小苏希望大家能从这篇文章中收获到许…

【Pytorch】稀疏矩阵的表示与加减运算

前提知识:LongTensor()是64位整数型向量,FloatTensor()是32位浮点数向量。 有大量0元素的时候,我们可以使用坐标形式存储稀疏矩阵。 一个3*3的矩阵,但是只有坐标(0,0)处有值(值为1)…

量子计算(二十二):Grover算法

文章目录 Grover算法 一、什么是搜索算法 二、怎么实现Grover搜索算法 Grover算法 一、什么是搜索算法 举一个简单的例子,在下班的高峰期,要从公司回到家里,开车走怎样的路线才能够耗时最短呢?最简单的想法,当然…

Radius vector (半径矢量)

Radius vector引言定义引言 今天给大家介绍一下什么是Radius vector。 定义 从圆心到当前位置的矢量r⃗\vec{r}r。它也被叫做位置向量。 其中,O表示圆心,这里我们称之为原点位置,A表示当前位置。因此矢量OA⃗\vec{OA}OA是一个Radius vec…

VsCode简单使用,配置c/c++编译环境,个人感受

整体感觉 本质就是一个加强的文本编译器,增加了终端和控制台,可以程序交互,相当于一个IDE的外部框架。和sublime有一定相似性,但界面和插件安装方面远远优于sublime。应该说这是一种为编译语言设计的显示框架,真正起作…

代码随想录算法训练营第二十天 二叉树 java : 654.最大二叉树 617.合并二叉树 700.二叉搜索树中的搜索 98.验证二叉搜索树

LeetCode 654.最大二叉树 题目讲解 思路 二叉树的根是最大值左子树最大值左边部分构造的最大二叉树右子树最大值是右边部分构造的最大二叉树 AC代码 /*** Definition for a binary tree node.* public class TreeNode {* int val;* TreeNode left;* TreeNode ri…

可视化监控告警-grafana

需求背景 根据我们的业务背景,需要监控3个纬度。 Iaas层:即腾讯云的基础设施CVMPaas层:即使用的腾讯云Paas服务,各种中间件Saas层:即我们本身的服务指标监控。 腾讯云监控,可以覆盖1,2场景, …

HarmonyOS/OpenHarmony应用开发-ArkTS的声明式开发范式

基于ArkTS的声明式开发范式的方舟开发框架是一套开发极简、高性能、跨设备应用的UI开发框架,支持开发者高效的构建跨设备应用UI界面。 基础能力 使用基于ArkTS的声明式开发范式的方舟开发框架,采用更接近自然语义的编程方式,让开发者可以直…

「自控原理」2.2 控制系统的复域数学模型

本节引入控制模型的复域模型——传递函数,并介绍其构建和使用方法。 本节介绍了几种常见环节的传递函数 文章目录传递函数的定义传递函数的标准形式首1标准型尾1标准型传递函数的性质传递函数的局限性典型环节的传递函数控制系统的复域数学模型是传递函数。拉普拉斯…

深入浅出java并发编程(Thread)

快速了解 package java.lang;public class Thread implements Runnable {}Thread是lang包下的一个类,实现了Runnable接口。源码如下 FunctionalInterface public interface Runnable {public abstract void run(); }Runnable是一个函数式接口不会抛出异常没有返回…

Minecraft 1.19.2 Fabric模组开发 05.动画效果物品

我们本次在Fabric中实现一个具有动画效果的物品,本次演示的模型代码均在文末给出 效果演示效果演示效果演示 首先,请确保你的开发包中引入了geckolib依赖,相关教程请参考:Minecraft 1.19.2 Fabric模组开发 03.动画生物实体 1.首先我们要使用…

nvidia显卡编码并发session限制破解

对于服务器型显卡(比如:Tesla T4、NVIDIA A100等),nvidia显卡编码并发session路数没有限制,对于消费型显卡(比如:GeForce RTX 3070、GeForce RTX 3080等),nvidia显卡编码并发session…

Odoo 16 企业版手册 - 财务管理之会计仪表板

会计仪表板 财务管理是任何类型业务不可避免的一部分。无论您经营的业务规模或类型如何,如果财务流程没有得到适当的管理和监控,您将在未来面临严重的财务失败。手动管理所有会计操作不是一个好主意,因为它需要大量的时间和精力。在人工会计管…

esp32 Python开发快速入门--环境配置以及点亮LED灯

esp32 Python开发快速入门--环境配置以及点亮LED灯1. 环境配置2. 固件的烧录3 下面开始点灯1. 环境配置 需要配置两个环境, 开发的IDE Thonny 链接如下 https://thonny.org/ 安装串口助手,芯片是通过串口来实现通信的,需要驱动,…

Openresty宏观概述笔记

最近由于项目需要学习了安全代理的相关知识,其实刚开始的时候是非常需要一个入门的介绍,大概说明下这个到底是个什么东西,能干啥,简单的原理是什么,为此我记录下我看完用完的心得,记录成笔记。 一般我们代码…

Nginx基础01:安装和基本使用

背景Nginx是一个高性能的Web服务器,几乎所有的Web服务都需要使用Nginx。关于Nginx的功能特性这里不再赘述,让我们从0开始,了解Nginx的基本用法,学习它在Web服务中都有哪些应用。本文主要介绍Nginx的安装以及基础的控制命令。Nginx…

讨论| 电视行业已是落日夕阳?

如今,随着移动设备、互联网技术的发展,电视似乎逐渐淡出人们的视野。近期,与电视相关的热门讨论似乎都是对于各大视频平台的会员投屏制度,这似乎更加减少了大众对于电视的使用欲望。那么电视领域是否真的趋于淘汰了呢?…

PASCAL VOC 数据集的标注格式

PASCAL VOC 数据集的标注格式 PASCAL VOC 挑战赛 ( **The PASCAL Visual Object Classes )是一个世界级的计算机视觉挑战赛。 PASCAL的全称是Pattern Analysis, Statistical Modelling and Computational Learning,很多优秀的计算机视觉模型…