ROS2入门21讲__第03讲__ROS2安装方法

news2024/11/24 1:14:39

目录

前言

Linux系统简介

Ubuntu系统简介

Ubuntu虚拟机安装

1. 下载系统镜像

2. 在虚拟机中创建系统

3. 设置虚拟机硬盘大小

4. 设置Ubuntu镜像路径

5. 启动虚拟机

6. 设置用户名和密码

7. 等待系统安装

8. 完成安装

ROS2系统安装

1. 设置编码

2. 添加源

 3. 安装ROS2

4. 设置环境变量

ROS2示例测试

示例一:命令行示例

示例二:小海龟仿真示例


前言

本节,我们一起安装ROS2,安装前先要了解一下ROS2底层最重要的一种操作系统——Linux

Linux系统简介

时间回到1991年,一位热爱计算机的芬兰大学生林纳斯,在熟悉了操作系统原理和unix系统后,决定自己动手做一个,实践是检验真理的唯一标准,说干就干,他参考已有的一些通用标准,重新设计了一套操作系统内核,不仅可以实现多用户、多任务的管理,还可以兼容unix原有的应用程序。最重要的是,他把这套尚不成熟的操作系统分享到了互联网上,并用自己的名字命名了这套系统,也就是Linux

原本出于个人爱好的Linux系统通过互联网快速传播,更多爱好者看到Linux之后,也激发了乐于分享的热情,就把使用过程中的问题和修复方法做了反馈。

一石激起千层浪,越来越多人加入到了Linux维护的行列当中,一个原本功能有限、bug很多的操作系统,快速强大起来,伴随其中发扬光大的是开源精神

与Windows系统收费,或MacOS硬件绑定的模式不同,Linux是一套免费并且开放源代码的操作系统,任何人都可以使用或者提交反馈,这就吸引了大量的开发者、爱好者,甚至很多企业,现在,每年对Linux系统提交的代码量已经成为衡量一个大公司技术实力的重要指标之一。

Linux发展迅猛,已经成为了性能稳定的多用户操作系统,也是ROS2依赖的重要底层系统。虽然ROS2目前也支持Windows、MacOS,但对Linux系统的支持最好,在本教程中,我们主要讲解Linux之上的ROS2使用方法,其他系统原理也基本相同。

所以在使用ROS2之前,我们需要先安装Linux,此时会出现另外一个概念——发行版

什么叫发行版呢?准确来讲,我们提到的Linux应该叫做操作系统内核,并没有可视化界面,发行版就是给这个内核加上华丽的外衣,把操作界面和各种应用软件放到一起,打包成我们安装系统的镜像。

所以一般情况下,我们常用到的Linux系统,都是各种各样的发行版,比如Ubuntu、Fedora、RedHat等等,每一个发行版都有其适用的场景,比如RedHat适合商业应用、CentOS适合服务器、Ubuntu、Fedora适合个人使用等,每一个版本的界面不太一样,但核心都是Linux,操作方法基本相同。

Ubuntu系统简介

我们后续课程使用到的Linux发行版就是ubuntu系统

Ubuntu诞生于2004年10月份,每六个月发布一个新版本,用户可以一直免费升级使用,我们常用的浏览器、文件编辑器、通讯软件等一应俱全。在软件开发领域,无论是互联网开发,还是人工智能开发,还是大家关注的机器人开发,Ubuntu都占据绝对重要的位置。

Ubuntu的版本变动比较快,如何选择合适自己使用的版本很重要,因为其中各种软件版本不同会直接影响我们上层应用的移植效果。在选择版本的时候,大家可以关注一下紧随其后的编号,比如Ubuntu22.04。22代表2022年,04表示2022年的4月份发布,除了04还可能会出现的是10,就是10月份发布,所以从数字编号上就可以看出各个版本发布的顺序。

但是这样依然会有很多版本,为了让更多开发者有一个稳定的系统环境,Ubuntu每隔两年的4月份会发布一个长期支持版,后缀会加LTS,保证5年之内持续维护更新,比如Ubuntu20.04 LTS,Ubuntu22.04 LTS,除此之外的版本都是普通版,只维护18个月,所以大家在选择时,优先考虑长期支持版

在本教程中,我们以Ubuntu22.04为例进行讲解,大家也可以选择其他长期支持版本。

好了,大家一定已经摩拳擦掌想要试一试Ubuntu了,安装方法很多,如果你之前已经熟悉Linux,建议在电脑上硬盘安装Ubuntu,这样可以发挥出硬件最大的性能,如果你是第一次接触Linux,建议在已有的windows上通过虚拟机安装,未来熟悉之后再考虑硬盘安装。

这里我们主要介绍虚拟机中的安装方法,大家也可以参考课程资料或网络资料,自行考虑硬盘安装。

Ubuntu虚拟机安装

虚拟机是一个软件,可以在已有系统之上,构建另外一个虚拟的系统,让多个操作环境同时运行。

这里我们采用的虚拟机软件叫做vmware,下载地址如下,安装步骤和其他软件相同,请大家自行下载并安装:VMware Desktop Hypervisors for Windows, Linux, and Mac

准备工作完成后,就可以开始系统安装啦,安装步骤如下:

1. 下载系统镜像

下载链接:https://ubuntu.com/download/desktop

2. 在虚拟机中创建系统

3. 设置虚拟机硬盘大小

4. 设置Ubuntu镜像路径

5. 启动虚拟机

6. 设置用户名和密码

7. 等待系统安装

8. 完成安装

如果安装过程中出现无法上网或者无法复制粘贴的情况请参考我的文档写文章-CSDN创作中心全网最全,VMware 虚拟机安装 Ubuntu 完整步骤及需要注意的问题-CSDN博客写文章-CSDN创作中心

ROS2系统安装

接下来,我们就可以把ROS2安装到Ubuntu系统中了。安装步骤如下:

1. 设置编码

$ sudo apt update && sudo apt install locales
$ sudo locale-gen en_US en_US.UTF-8
$ sudo update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 
$ export LANG=en_US.UTF-8

2. 添加源

$ sudo apt update && sudo apt install curl gnupg lsb-release 
$ sudo curl -sSL https://raw.githubusercontent.com/ros/rosdistro/master/ros.key -o /usr/share/keyrings/ros-archive-keyring.gpg 
$ echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/ros-archive-keyring.gpg] http://packages.ros.org/ros2/ubuntu $(source /etc/os-release && echo $UBUNTU_CODENAME) main" | sudo tee /etc/apt/sources.list.d/ros2.list > /dev/null

 如遇报错“Failed to connect to raw.githubusercontent.com”,可参考解决”Failed to connect to raw.githubusercontent.com“报错-CSDN博客

 3. 安装ROS2

$ sudo apt update
$ sudo apt upgrade
$ sudo apt install ros-humble-desktop

4. 设置环境变量

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

至此,ROS2就已经在系统中安装好了。

ROS2示例测试

为了验证ROS2安装成功,我们可以通过以下示例进行测试。

示例一:命令行示例

先来试试ROS2最为重要的底层通信系统DDS是否正常吧。

启动第一个终端,通过以下命令启动一个数据的发布者节点:

$ ros2 run demo_nodes_cpp talker

启动第二个终端,通过以下命令启动一个数据的订阅者节点:

$ ros2 run demo_nodes_py listener

如果“Hello World”字符串在两个终端中正常传输,说明通信系统没有问题。

示例二:小海龟仿真示例

再来试一试ROS中的经典示例——小海龟仿真器。

启动两个终端,分别运行如下指令:

$ ros2 run turtlesim turtlesim_node
$ ros2 run turtlesim turtle_teleop_key

第一句指令将启动一个蓝色背景的海龟仿真器,第二句指令将启动一个键盘控制节点,在该终端中点击键盘上的“上下左右”按键,就可以控制小海龟运动啦。

关于小海龟中蕴藏的ROS奥义,我们在后续教程中将持续探索。

至此,ROS2安装成功。

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

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

相关文章

利用香港多IP服务器进行大数据分析的潜在优势?

利用香港多IP服务器进行大数据分析的潜在优势? 在当今数据驱动的时代,大数据分析已经成为企业获取竞争优势的不二选择。而香港作为一个拥有世界级通信基础设施的城市,提供了理想的环境来部署多IP服务器,从而为大数据分析提供了独特的优势。…

文档解析与向量化技术加速多模态大模型训练与应用

前言 随着人工智能技术的不断发展,多模态大模型作为一种新型的机器学习技术,逐渐成为人工智能领域的热点话题。多模态大模型能够处理多种媒体数据,如文本、图像、音频和视频等,并通过学习不同模态之间的关联,实现更加…

Mac安装jadx

1、使用命令brew安装 : brew install jadx 输入完命令,等待安装完毕 备注(关于Homebrew ): Homebrew 是 MacOS 下的包管理工具,类似 apt-get/apt 之于 Linux,yum 之于 CentOS。如果一款软件发布时支持了 homebrew 安…

[Linux][网络][协议技术][DNS][ICMP][ping][traceroute][NAT]详细讲解

目录 1.DNS1.DNS背景2.域名简介 2.ICMP协议1.ICMP功能2.ICMP两类报文 3.ping命令4.traceroute5.NAT技术1.NAT技术背景2.NAT IP转换过程3.静态地址NAT && 动态地址NAT4.网络地址端口转换NAPT5.NAT技术的缺陷6.NAT和代理服务器 6.总结1.数据链路层2.网络层3.传输层4.应用…

如何给远程服务器配置代理

目录 前言 正文 更换镜像源 开始之前 安装过程 遇到的问题 尾声 🔭 Hi,I’m Pleasure1234🌱 I’m currently learning Vue.js,SpringBoot,Computer Security and so on.👯 I’m studying in University of Nottingham Ningbo China&#x1f4…

使用Git管理github的代码库-上

1、下载安装Git https://download.csdn.net/download/notfindjob/11451730?spm1001.2014.3001.5503 2、注册一个github的账号(已经注册的,可略过这一步) 3、打开git命令行,配置github账号 git config --global user.name &quo…

CCleaner系统优化与隐私保护工具,中文绿色便携版 v6.23.11010

01 软件介绍 CCleaner 是一款高级的系统优化工具,其设计宗旨在于彻底清理 Windows 操作系统中积累的无用文件和冗余的注册表项。此举旨在显著提升计算机的运行效率并回收磁盘空间。该软件拥有高效的能力,可以清除包括临时文件、浏览器缓存及其历史记录在…

Java入门——继承和多态(中)

组合 和继承类似, 组合也是一种表达类之间关系的方式, 也是能够达到代码重用的效果. public class Student { ... } public class Teacher { ... } public class School { public Student[] students; public Teacher[] teachers; } 组合并没有涉及到特殊的语法(诸如 ex…

如何通过香港站群服务器高效实现网站内容的快速更新?

如何通过香港站群服务器高效实现网站内容的快速更新? 在当今激烈的数字市场竞争中,网站内容的快速更新对于吸引用户和保持竞争优势至关重要。而利用香港站群服务器实现这一目标,则具备诸多优势。下面将详细探讨如何通过香港站群服务器高效实现网站内容…

【CSP CCF记录】数组推导

题目 过程 思路 每次输入一个Bi即可确定一个Ai值,用temp记录1~B[i-1],的最大值分为两种情况: 当temp不等于Bi时,则说明Bi值之前未出现过,Ai必须等于Bi才能满足Bi是Ai前缀最大的定义。当temp等于Bi时,则说…

树莓派nmap扫描

debian系统安装nmap: sudo apt install nmap安装nmap完成后,输入 ip route 来查看当前Wi-Fi路由器的ip地址。 第一行的default via后显示的便是网关地址,也就是路由器地址。 获取到路由器ip地址后,在终端中输入: …

【产品经理必会知识点】马斯洛需求理论

马斯洛需求理论👓从7个层次洞察人心 ❓你是否常在挑选晚餐时感到纠结,不知道到底想吃什么? ❓你是否在购物时被某些商品深深吸引,明明没那么需要却难以抗拒? ❓你是否常常感到迷失于用户五花八门的需求之中不得要领…

5. 分布式链路追踪TracingFilter改造增强设计

前言 在4. 分布式链路追踪客户端工具包Starter设计一文中,我们实现了基础的Starter包,里面提供了我们自己定义的Servlet过滤器和RestTemplate拦截器,其中Servlet过滤器叫做HoneyTracingFilter,仅提供了提取SpanContext&#xff0…

瞬息全宇宙——穿越之旅终极教程,手把手教你做出百万点赞视频

最近一种叫“瞬息全宇宙”的视频火了,抖音一期视频百万赞,各个博主视频都在带瞬息全宇宙这个标签,于是就有很多朋友催我出教程了,在琢磨了几天之后,终于整出来了 教程包含了插件的安装,界面的讲解&#xff…

MySQL——创建存储过程函数_createProcedure_name(in p1;p2)_call

DDL CREATE TABLE student (id int(11) NOT NULL AUTO_INCREMENT COMMENT 学号,createDate datetime DEFAULT NULL,userName varchar(20) DEFAULT NULL,pwd varchar(36) DEFAULT NULL,phone varchar(11) DEFAULT NULL,age tinyint(3) unsigned DEFAULT NULL,sex char(2) DEFAU…

【静态分析】软件分析课程实验A2-常量传播和Worklist求解器

Tai-e官网: 概述 | Tai-e 参考: https://www.cnblogs.com/gonghr/p/17979609 -------------------------------------------------------- 1 作业导览 为 Java 实现常量传播算法。实现一个通用的 worklist 求解器,并用它来解决一些数据…

CCF-GESP青少年编程考级报名流程及照片要求的处理方法

随着编程教育的普及,越来越多的青少年开始接触并学习编程。中国计算机学会(CCF)推出的GESP(Grade Examination of Software Programming)认证,为青少年提供了一个专业的编程能力认证平台。以下是关于GESP认…

python微信小程序 uniapp高校打印店预约服务系统

本系统是针对校园自助打印开发的工作管理系统,包括到所有的工作内容。可以使自助打印的工作合理化和流程化。本系统包括手机端设计和电脑端设计,有界面和数据库。本系统的使用角色分为管理员和用户、店长三个身份。管理员可以管理系统里的所有信息。店长…

ICode国际青少年编程竞赛- Python-5级训练场-综合练习7

ICode国际青少年编程竞赛- Python-5级训练场-综合练习7 1、 for i in range(6):while not Flyer[i].disappear():wait()Spaceship.step(2 2 * i)Spaceship.turnRight()2、 def get(a, b, c, d):for i in (a, b, c, d):Dev.step(i)if i ! 0:Dev.turnRight() get(3, 3, 5, -4)…

数据结构-树概念基础知识

根结点:非空树中无前驱节点的结点 结点度:结点拥有的子树数或子节点数或后继节点数 树的度:树内各结点的度的最大值 叶子:终端节点,度为0 祖先:从根到该节点所经分支上的所有结点 子孙:以某结点…