1.机器人操作系统简介
1.1 ROS简介
- ROS定义:ROS是一个开放源代码的机器人元操作系统;ROS提供了包括硬件抽象、低级设备控制、常用功能的实现、进程间的消息传递及功能包管理;还提供了用于在多台计算机间获取、构建、编写和运行代码的工具和库;
- ROS是一个元操作系统(Meta-operating System);元操作系统是一个利用应用程序和分布式计算资源间的虚拟化层来运用分布式计算资源来执行调度、加载、监视、错误处理等任务的系统;
- 使用ROS前需要安装如Ubuntu的Linux发行版操作系统,然后再安装ROS,以使用进程管理系统、文件系统、用户界面、实用程序(编译器、线程模型等);
- ROS以库的形式提供了机器人应用程序所需的多数不同类型的硬件之间的数据传输/接收、调度和错误处理等功能;这个概念称为中间件(Middleware)或软件框架(Software framework);
- ROS在实用现有的操作系统的同时,通过使用硬件抽象概念来控制机器人应用程序所必需的机器人和传感器,同时也是开发用户的机器人应用程序的支持系统;
- ROS数据通信可以在一个操作系统中进行,同时适用于适用多种硬件的机器人开发,因为可以在不同的操作系统、硬件和程序间交换数据;
1.2 ROS的特征
-
分布式进程;
ROS以可执行进程的最小单位(节点:Node)的形式进行编程,每个进程独立运行,并有机地收发数据; -
功能包单位管理;
ROS以功能包的形式管理多个具有相同目的的进程,因此开发和使用起来容易,且容易共享、修改、重新发布; -
公共存储库;
每个功能包都将其功能包公开给开发人员首选的公共存储库(如:Github),并标识许可证; -
API类型;
ROS被设计为可以简单通过调用API将其加载到其使用的代码中; -
支持多种编程语言;
ROS程序提供客户端库(Client Library)以支持各种语言;可以使用Python、C++、Java等语言进行开发;
1.3 ROS组件
ROS的组成:
- 支持多种编程语言的客户端库;
- 用于控制硬件的硬件接口;
- 数据通信通道;
- 帮助编写各种机器人应用程序的机器人应用框架(Robotics Application Framework);
- 基于应用框架的服务应用程序(Robotics Application);
- 在虚拟空间中控制机器人的仿真(Simulation)工具;
- 软件开发工具(Software Development Tool);