该学习笔记参考ROS官方wiki的内容,见:http://wiki.ros.org/ROS/Introduction
- 什么是ROS
ROS的全称是Robot Operating System,即机器人操作系统,他能提供类似操作系统的一些功能:硬件抽象、底层设备控制、通用功能的实现、进程间消息传递和包管理等。
同时提供了工具来获取、编译、编写并在不同计算机上运行代码。ROS不同于通用的操作系统Windows或Linux这些,他更像一个通用的机器人软件框架。
ROS在运行时通过进程间的对等(Peer2Peer)网络通信使节点之间进行松耦合,ROS支持多种不同调用方式,包括基于服务(Service)的RPC方式通信(远程过程调用)、通过主题(Topic)进行异步数据流通信以及通过参数服务器(Parameter Server)进行数据存储,ROS不是一个实时框架,但是可以和实时代码进行集成。 - ROS的目标
ROS的主要目标是为了代码共享和协作,本质是方便独立开发和代码重用。目标详述如下:- 轻薄(Thin):不会对main()函数进行封装,这样可以使ROS中使用的代码便于集成到其它软件框架中。
- 不可知(agnostic)ROS库:合适的开发方式是使用干净的接口编写功能代码作为ROS库。
- 语言无关:ROS框架可以在任何现代语言中实现,已经在Python,C++和LISP中实现,也有在Java和Lua中写的实验库。
- 易于测试:ROS有内建的测试框架rostest便于进行测试。
- 不同尺度:ROS也适合与大规模的实时系统和进程的开发。
- 操作系统
ROS当前只支持基于Unix的操作系统,例如Linux和Mac OS,以后也有可能移植到Windows,但是现在还没有做这部分工作。