技术分享 | 带你从不一样的角度来了解ROS

ROS是什么?相信每一个刚接触ROS的人,都会有这样一个疑问,也想要搞清楚ROS这三个字母代表的含义是什么?今天我们就来为大家讲解一下ROS是什么。

相信初次接触ROS的人都会用百度搜索一下“ROS”这个关键词,回忆起当初初学ROS时,百度ROS出来的结果都是活性氧簇,软件路由之类的东西,和机器人根本没有关系,随着近几年来,人工智能以及机器人的兴起,ROS被越来越多的人所接触,百度也知道了ROS是机器人操作系统(Robot Operation System)的英文简称。

ROS是Robot Operation System 的简称,其前身为斯坦福大学的STanford Artificial Intelligence Robot (STAIR) 和 Personal Robotics (PR)项目。距今已发展有十年之久……

相信很多人刚开始了解ROS都会看到类似于上面这段话的内容,不可否认,认识一个东西或事物,去了解它创造的初衷,发展的历史以及现在的成就是非常有必要的,但这并不能让我们学会如何使用它。

在这里,我们不再讲述ROS的由来,发展以及成就等内容,而是直接上干货,让大家能够在使用ROS时有更加实用的理解。

其实,本人认为,认识ROS应该从名字入手,也就是“机器人操作系统”。从字面意思中,就能够有一个对ROS的理解,也就是机器人的操作系统,机器人其实就是一个硬件设备,操作系统能让人们能够更加简易地操作硬件设备。如果不能很好地理解,我们可以用类比的手段去认识它。

相信大家都用过手机电脑吧,对于iOS、Android、 Windows、Mac这些操作系统也熟悉吧,手机的操作系统就是iOS、Android,当然还有HarmonyOS,我们自己的操作系统—鸿蒙系统,电脑的操作系统就是Windows、Mac,当然也有Linux,这些对大家来说,都是比较熟悉的,认识也是比较清晰的。你用同样的理解去认识ROS以及机器人,就能明白对机器人来说,ROS就是它的操作系统。

但需要注意,ROS对机器人来说它是操作系统,但对其他硬件设备来说它并不是,大家肯定对手机上的微信APP,电脑上的微信应用程序都很了解,前面我们提到了电脑的操作系统有Windows也有Linux,可能有些人对Linux操作系统并不熟悉,在这里可以不用深究,只需要对Linux有一个简单的了解,它也是一个电脑的操作系统,和Windows类似,至少在图形化界面上是类似的。

在Linux操作系统上,它也和Windows操作系统一样,有很多应用程序,像搜狗输入法,网易云音乐等等,在Linux系统上都是能够下载并使用的,而ROS也是Linux系统上的一个应用程序。在这里就需要对ROS有一个新的认识和理解,它是Linux操作系统当中的一个应用程序,那么ROS对于两个硬件设备,它就有两个理解,一个是机器人的操作系统,一个是电脑上的应用程序。有了这样一个理解之后,我们可以再通过下面的问题,去更加深入地理解ROS。

一.感觉ROS学习难度非常大

绝大部分人在学习ROS时,都会觉得ROS学习非常难,但学会之后往往又会觉得ROS学习简单,这是为什么呢?我们先来看一下大部分学习ROS的人一个情况。

目前来说,接触ROS的人大部分人都是大学生,可能是因为参加比赛,或者是兴趣爱好以及者职业规划等情况,从而开始接触学习ROS。于是开始通过身边的人或者百度搜索发现需要在电脑上安装Linux系统,开始捣鼓Linux系统安装,使用虚拟机安装装双系统,甚至于将Windows系统删除掉,只安装Linux系统。

在把Linux系统弄好之后,开始安装ROS,其中可能会遇到各种问题。在装好后学习ROS,在途中开始学习C++,Python等编程语言,其中不断地遇到问题,不断地解决……我相信很多学习ROS的人看到以上内容后都能引起共鸣,因为本人当初也是这样过来的。

其实大家仔细阅读上面的内容,会发现,你是奔著学习ROS的目的去的,但实际上你是在学习ROS的过程中会去学习Linux,C++,Python,而且这只是学习ROS必备的,还有一些同学会去学习嵌入式开发无人车、无人机等等内容。很多人以为自己只学习ROS,实际上需要学习更多相关的知识,只有当你对前面提到的事物有了一定的了解后,你才会清晰地认识到自己学习不只是ROS还有很多其他的东西。

另外,再加上很多人由于对这些Linux、c++、python、ros不了解,从而没有建立起正确的学习途径。比如说装好Linux系统后直接就开始学习ROS,这样其实是不对的,因为你对Linux系统不了解不清楚,所以很多操作是不对的,但是你并不清楚,在学习ROS过程中遇到的问题,你认为是ROS这边的问题,其实大部分是Linux操作不当或者有问题未处理导致的。想做ROS开发也是如此,也是需要C++或者Python编程语言的基础才行,有了这个基础之后再去学习ROS开发。

所以在这里,建议各位初学ROS的同学,希望这一篇文章能够给你们一个很好的指引。学会ROS的使用是需要有Linux基础的,学会ROS开发是需要有C++或者Python的基础。建议大家以这样一个流程去学习,先学习Linux操作系统,对这个操作系统认知比较全面。操作比较熟悉之后,再开始学习ROS基础,同步地学习C++或者Python,等到ROS基础和编程语言基础都比较好以后,开始尝试学习一些ROS开发相关的内容。

二.为什么我接触的一些机器人并没有使用ROS

人工智能,机器人等产业属于新兴行业,这个行业还处于萌芽初步发展阶段,没有规范化、标准化。可以看到手机、电脑、汽车这些成熟的行业,相关硬件制造商,软件开发商都是有标准和规范的。所以他们只要按照这套标准去做硬件制造,软件开发就行,做出来的东西都是通用的。而目前在机器人这样一个产业中,还没有一个完全通用的标准,目前,ROS是最有希望成为这样一个标准的,所以,一些机器人厂商自己设计操作系统也是正常的。

三.不知道该怎么去学习ROS或者学习ROS的哪些东西

初步学习ROS,肯定是推荐大家学习ROS21讲,这是ROS官方WIKI提供的基础教程。国内外也有很多基于ROS官方的21讲基础课程推出的其他基础课程,这些作为初步的学习都是可以的,学习ROS肯定是需要把这21讲熟练掌握的,可以采用以下方式去学习:

按照教程步骤先大概看一下,看不懂或者不理解没关系,先按照教程的步骤一步一步操作,自己先复现一遍。

将21讲中能复现的东西全部复现一遍后,再从头开始。此时应该去尽量理解每一个步骤的操作以及为什么要这样做,可以搜索一些其他相关学习资料学习一些知识点。通过对一些知识点的具体学习,加强理解,例如rosrun roslaunch这些命令的详细介绍等。遇到实在理解不了的,可以暂时跳过,并且重点学习这一块的知识点。重复地去学习这样一个基础教程,做到能够理解绝大部分的知识内容。

理解完大部分知识内容后,可以尝试去修改教程中的一些东西,看一下是否依然能够实现,加深对一些知识点的理解。有了这样一个基础之后,可以去使用一些ROS上的功能包配合仿真,将一些功能实现,例如建图、导航、机械臂路径规划等。在这个学习过程中,需要自行去查找学习相关资料。这一步完成后,相信ROS基础应该达到了一个比较好的程度,这个时候就应该使用ROS这样一个工具去实现你自己的目标了。

本期ROS基础讲解—ROS是什么?就到此结束了,希望各位在观看完这篇文章后有更加实用性的理解,也希望这篇文章能帮助大家更好地去学习ROS。

我们后续还会继续分享更多与ROS相关的内容,感兴趣的朋友可关注我们哦~

关注阿木实验室官网:https://www.amovlab.com/

发表回复

相关推荐

纬地用地图模板标注;手改用地线软件快速标注

关于任意点用地图绘制过程中相关模板及CAD命令的使用经验分享

· 9分钟前

苹果手机不开机的三种解决办法

苹果手机如果出现了不开机,一般有三种原因会导致:1、系统死机,苹果手机如果长时间不关机,手机偶尔可能会出现死机的情况 ...

· 9分钟前

山东省为什么简称鲁,而不是齐?

不久前,国历君曾给大家讲了《中国省份的简称都是怎么来的?》,篇幅有限,我们没有将中国全部省份简称的由来说个遍,所以很 ...

· 12分钟前

日本食品價格到底有多貴,我們在日本超市拍瞭50種商品

本文同步更新於微信公眾號阿佈旅行手記,ID:abyjapan。繼續我們的名古屋系列(具體點擊:和日本人搶五一假期),除瞭泡溫泉...

· 13分钟前

天津教师待遇(工资、公积金)汇总

以上数据系结合历年各区上岸考生反馈,具有相当高的可信度,但同区内个别学校间会有细微差异,每年也会有细微浮动,具体工资 ...

· 13分钟前