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

目录

前言

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.hqwc.cn/news/700450.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2024年5月面试准备

2024年5月面试准备 资料来源Java基础泛型注解异常反射SPI机制Java集合CollectionMap 并发基础线程并发关键字并发集合Lock核心类并发集合核心类原子类核心类线程池核心类ScheduledThreadPoolExecutorForkJoinPoolFokJoinTask JUC原子类: CAS, Unsafe和原子类详解JUC 工具类 Jav…

鸿蒙内核源码分析(内核态锁篇) | 如何实现快锁Futex(下)

本篇为快锁下篇,说清楚快锁在内核态的实现,解答以下问题,它们在上篇的末尾被提出来。 鸿蒙内核进程池默认上限是64个,除去两个内核进程外,剩下的都归属用户进程,理论上用户进程可以创建很多快锁&#xff0…

Android开发,日志级别

5个日志级别 Verbose (VERBOSE): 这是最低的日志级别,用于输出最为详尽的信息,包括开发和调试过程中的各种细节。在Log类中对应的方法是Log.v()。Debug (DEBUG): 此级别用于输出调试信息,帮助开发者理解程序运行流程或状态。通过Log.d()方法…

保研机试之【文件描述符】

A选项: 一个文件描述符对应着系统级文件表中的一项 B选项 C选项 D选项 E选项 F选项 综上,我认为这道题选择B、C、E、F~

九、e2studio VS STM32CubeIDE之const修饰BSP函数的形参

目录 一、概述/目的 二、通过串口发送函数对比 2.1 stm32 hal库 VS renesas FSP 2.2 const修改函数形参的作用 2.2.1 值传递-副本 2.2.2 指针传递(就近原则) 2.2.2.1 const修饰:*P 2.2.2.2 const修饰:指针变量P 2.2.2.3 …

[牛客网]——C语言刷题day2

答案:B 解析: char *p[10] 是指针数组,数组里存放了10个指针,在64位系统下指针占8个字节,所以sizeof(p) 10 * 8 80. char (*p1)[10]是数组指针,p1是一个指向存放10个char类型的数组的指针,所以sizeof(p1) 8. 答案:B 解析&#xff1a…

Vue3组件库开发项目实战——03封装Button组件/输出vitePress文档

Vue3组件库开发项目实战——01组件开发必备知识导学-CSDN博客 Vue3组件库开发项目实战——02项目搭建(配置Eslint/Prettier/Sass/Tailwind CSS/VitePress/Vitest)-CSDN博客 在前面两篇博客中,我分别介绍了组件库开发必学知识,以及…

Oracle sqlnet.ora配置文件

一、作用 这里可以看官网解释Parameters for the sqlnet.ora File (oracle.com) 该文件是配置文件配置文件。它驻留在客户端计算机和数据库服务器上。配置文件使用此文件进行存储和实现。可以使用文件中的访问控制参数配置数据库服务器。这些参数根据协议.sqlnet.orasqlnet.o…

CVHub | CVPR 2024 | 英伟达发布新一代视觉基础模型: AM-RADIO = CLIP + DINOv2 + SAM

本文来源公众号“CVHub”,仅用于学术分享,侵权删,干货满满。 原文链接:CVPR 2024 | 英伟达发布新一代视觉基础模型: AM-RADIO CLIP DINOv2 SAM 标题:《AM-RADIO: Agglomerative Vision Foundation Model Reduce Al…

【从零开始实现stm32无刷电机foc】【理论】【1/6 电机旋转本质】

目录 电机旋转需要什么样的力?怎么产生力矢量?怎么产生任意的线圈磁矢量? 电机旋转需要什么样的力? 电机切向存在受力,电机就会旋转。 进一步查看电机结构,分为转子和定子,大部分情况下&#…

【opencv】图像拼接实验

实验环境:anaconda、jupyter notebook 实验用到的包:opencv、matplotlib、numpy 注:opencv在3.4.2之后sift就不是免费的了 我用的是3.4.1.15版本 实验使用到的图片 一、sift函数获取特征值 读入图片 book cv2.imread(book.png, cv2.IMRE…

产品品牌CRUD

文章目录 1.renren-generator生成CRUD1.数据库表设计1.数据表设计2.分析 2.代码生成器生成crud1.查看generator.properties(不需要修改)2.修改application.yml 连接的数据库修改为云数据库3.启动renren-generator模块4.浏览器访问 http://localhost:81/5…