ROS介绍
前言
这里只是ROS的基础入门的开始,做一个非常简单的讲解。
一般建议直接看官方文档:http://wiki.ros.org/cn/ROS/Tutorials.
强烈建议看英文版:http://wiki.ros.org/en/ROS/Tutorials. 能够培养你阅读外的能力,毕竟大多数官方教程和写的好的教程是没有中文的。
什么是ROS,为什么要用ROS
ROS的全称是Robot Operating System,也就是指机器人操作系统。但什么才是一个操作系统呢?想想现在都有些什么操作系统,Windows,linux,mac,Android等等,甚至你可能听过DOS系统,一个操作系统的基本特征有些什么呢?为什么ROS可以称为一个操作系统。
分布式架构以及多进程
想想你的Windows系统,你可以一边打游戏,一边看qq,后台还可能挂着杀毒软件,这些都是一个一个进程。一个操作系统运行往往包含大量的进程,但想想你写出来的代码,他可能是按着顺序来的,可能你把它放一个while循环里让他来回跑,或者你也可以多开几个线程让他分别跑着,但是这样还不够。
一个机器人,可能和人一样,有着眼睛(摄像头取流以及视觉目标检测),有着手(机械臂模块),脚(不同的底盘),还有着很多东西。这些东西光通讯就是一个大问题,更不要说让他们之间尽量互不干扰,但ros可以做到。就像你聊qq不耽误你打游戏一样。也就是说,在ros上,你实际上是可以运行多个程序,并且能够做到让这些程序间的数据互传。
事实上,你也可以在其他的操作系统上做到这一点,例如通过SOCKER,管道,TCP协议等,但都没有ros方便快捷清晰。
功能的划分以及极强的可扩展性
在不用ros的时候,想想机器人是怎么控制的。冗长的代码,看不懂的结构,更是因为模块众多导致的代码量大,往往不知所措。然而有了ros,一切都不一样了。你可以把每个功能的模块分开,这里的分开不是简单的封装到一个个函数里。而是完全的分开,即多个不同的功能包,多个不同的代码,唯一的连接就是一些消息间的互传。这使得每一个模块结构清晰简单,代码可读性增强,且可扩展性极强。
良好的生态
由于ROS得到越来越多机器人制作者的青睐,越来越多的机器人相关硬件软件抖做了ros适配的相关工作。就和Windows上的游戏支持比mac上多的多一样,很多时候你买到游戏没有Windows寸步难行。同样由于很多硬件如激光雷达等对ROS的支持,没有ros寸步难行。良好的生态也决定促使ros愈发蓬勃发展,现如今,ros里集成的大量的库,你可以用它来做slam定位建图导航,也可以用它来做自动驾驶汽车,还有利用第三方软件Gazebo模拟仿真等。
- Post title:ROS新手介绍
- Post author:newsun-boki
- Create time:2021-11-18 01:21:42
- Post link:https://github.com/newsun-boki2021/11/18/ros-begin/
- Copyright Notice:All articles in this blog are licensed under BY-NC-SA unless stating additionally.