ROS介绍

前言

机器人操作系统(Robot Operating System, ROS)是一个应用于机器人上的操作系统,它操作
方便、功能强大,特别适用于机器人这种多节点多任务的复杂场景。 因此自ROS诞生以来,
受到了学术界和工业界的欢迎,如今已经广泛应用于机械臂、移动底盘、无人机、无人车等
许多种类的机器人上。

ROS起源与发展

本世纪开始,关于人工智能的研究进入了大发展阶段,包括全方位的具体的AI,例如斯坦福大
学人工智能实验室STAIR(Stanford Artificial Intelligence Robot)项目,该项目组创建了灵活
的、动态的软件系统的原型,用于机器人技术。在2007年,机器人公司Willow Garage和该项
目组合作,他们十分具有前瞻性的,提供了大量资源进一步扩展了这些概念,经过具体的研
究测试实现之后,无数的研究人员将他们的专业性研究贡献到ROS核心概念和其基础软件包,
这期间积累了众多的科学研究成果。ROS软件的开发自始至终采用开放的BSD协议,在
机器人技术研究领域逐渐成为一个被广泛使用的平台。
Willow Garage公司和斯坦福大学人工智能实验室合作以后,在2009年初推出了ROS0.4,这
是一个测试版的ROS,现在所用的系统框架在这个版本中已经具有了初步的雏形。之后的版
本才正式开启了ROS的发展成熟之路。

ROS常用版本

目前使用人数最多的是Kinect和Indigo这两个Long Term Support版本(长期支持版),因为
ROS是基于Linux(Ubuntu)系统的,所以与之兼容性最好的ubuntu版本分别是Ubuntu16.04,
Ubuntu14.04

ROS到底是什么

ROS是一个适用于机器人编程的框架,这个框架把原本松散的零部件耦合在了一起,为他们
提供了通信架构。ROS虽然叫做操作系统,但并非Windows、Mac那样通常意义的操作系
统,它只是连接了操作系统和你开发的ROS应用程序,所以它也算是一个中间件,基于ROS
的应用程序之间建立起了沟通的桥梁,所以也是运行在Linux上的运行时环境,在这个环境
上,机器人的感知、决策、控制算法可以更好的组织和运行。

ROS特点

分布式 点对点

ROS采用了分布式的框架,通过点对点的设计让机器人的进程可以分别运行,便于模块
化的修改和定制,提高了系统的容错能力。

多种语言支持

ROS支持多种编程语言。C++、Pyhton和已经在ROS中实现编译,是目前应用最广的
ROS开发语言,Lisp、C#、Java等语言的测试库也已经实现。为了支持多语言编程,
ROS采用了一种语言中立的接口定义语言来实现各模块之间消息传送。通俗的理解就
是,ROS的通信格式和用哪种编程语言来写无关,它使用的是自身定义的一套通信接
口。

开源社区

ROS具有一个庞大的社区ROS WIKI(http://wiki.ros.org/ ),这个网站将会始终伴随着你
ROS开发,无论是查阅功能包的参数、搜索问题还是。当前使用ROS开发的软件包已经
达到数千万个,相关的机器人已经多达上千款。此外,ROS遵从BSD协议,对个人和商
业应用及修改完全免费。这也促进了ROS的流行。

ROS前景

ROS的发展逐渐的趋于成熟,近年来也逐步是面对着Ubuntu的更新而更新,这说明ROS已经
初步进入一种稳定的发展状态,每年进行一次更新的频率同时还保留着长期支持的版本,这
使得ROS在稳步的前进发展同时,也有着开拓创新的方向。目前越来越多的机器人、无人机
甚至无人车都开始采用ROS作为开发平台,尽管ROS在实用方面目前还存在一些限制,但前
途非常光明。
2018年ROS2 1.0版将发布,未来ROS2将如何影响机器人领域,我们拭目以待。相信在人工
智能的大发展、人机交互越来越密切、互联网+的大时代,ROS会发挥出越来越重要的作用。

**注:以上大部分内容为笔者摘抄中国大学MOOC———《机器人操作系统入门》讲义所得,
如有侵权,请联系删稿**## 标题 ##

猜你喜欢

转载自blog.csdn.net/qq_27885507/article/details/81530760
ROS
今日推荐