
ICS 25.040.30 J 28
中华人民共和国国家标准
GB/T 33264—2016
面向多核处理器的机器人实时操作系统应用框架
Framework of real-time robot operating system on multi-core processor
2017-07-01实施
2016-12-13 发布
中华人民共和国国家质量监督检验检疫总局
中国国家标准化管理委员会 发布
GB/T 33264-2016
目 次
前言 1° 范围 2 术语和定义 3
缩略语机器人实时操作系统的应用框架设计原则 4.1 概述 4.2 跨平台原则 4.3 结构分离原则 4.4 功能模块化设计原则 4.5 多核分布式管理原则 4.6 可扩展原则 5机器人实时操作系统的应用框架
4
Y
Y
Y
Y
Y
5.1 概述 5.2 中断管理 5.3 分布式运行 5.4 通信接口 5.5 应用编程接口 5.6 实时操作系统的函数接口 5.7 非实时节点的应用编程接口 5.8 实时节点的应用编程接口 5.9 节点通信自定义消息附录A(资料性附录) 实时系统需要移植的关键函数和变量的相关功能附录B(资料性附录)非实时节点应用编程接口参考文献
Y
..........o..
6
8
14
GB/T 33264—2016
前 言
本标准按照 GB/T 1.1一2009给出的规则起草。 本标准由中国机械工业联合会提出。 本标准由全国自动化系统与集成标准化技术委员会(SAC/TC 159)归口。 本标准主要起草单位:北京航空航天大学、首都师范大学、北京化工大学、北京机械工业自动化研究
所、中机生产力促进中心。
本标准主要起草人:邵振洲、魏洪兴、谈金东、关永、张杰、陈友东、黄真、邹莹、王瑞、施智平、王振丽。
GB/T 33264—2016
2.9
服务service 节点间的通信方式,由一个消息对组成,包括请求消息和回复消息。
2.10
节点管理器node master 为节点存储主题和服务的注册信息,用于管理节点间的消息交换和调用服务。
2.11
包package 组织机器人操作系统软件的主要形式,包括节点、独立于机器人操作系统的库、数据集、相关配置文
件以及第三方软件等。 2.12
堆 stack 包的集合,能够提供一个完整的功能。
2.13
传输控制协议/因特网互联协议transmission control protocol/internet protocol 因特网最基本的协议,由传输层的 TCP协议和网络层的 IP协议组成。
2.14
用户数据报协议user datagram protocol -种无连接的传输层协议,提供面向事务的简单不可靠信息传送服务。
2.15
可扩展标记语言extensible markup language 用于标记电子文件使其具有结构性的标记语言。
2.16
XML 远程过程调用XML remote procedure call 使用XML格式来传输命令和数据,使用HTTP作为传输机制。
2.17
虚拟网络 yirtual network 一种不包含物理连接,通过网络虚拟化实现的计算机网络。
3缩略语
下列缩略语适用于本文件。 GPOS:通用操作系统平台(General Platform for Operating System ) IRQ:中断请求(Interrupt Request) MSI:消息告知中断(Message-signaled Interrupt) ROS:机器人操作系统(Robot Operating System) RTOS:实时操作系统(Real-time Operating System) RGMP:混合操作系统软件框架(RTOS and GPOS on Multi-core Processor) TCP/IP:传输控制协议/因特网互联协议(Transmission Control Protocol/Internet Protocol) UDP:用户数据报协议(User Datagram Protocol) VNET:虚拟网络(Virtual Network) XML:可扩展标记语言(Extensible Markup Language) XML-RPC:XML 远程过程调用(XML Remote Procedure Call) 2
GB/T 33264—2016
4机器人实时操作系统的应用框架设计原则
4.1概述
面向多核处理器的机器人实时操作系统的应用框架设计遵循以下原则:跨平台原则、结构分离原则、功能模块化设计原则、多核分布式管理原则和可扩展原则。 4.2跨平台原则
跨平台原则指的是机器人操作系统支持不同的硬件架构,如Arm 和X86 等。在不同的硬件架构下,机器人实时操作系统可以稳定运行。 4.3结构分离原则
从机器人操作系统运行平台(如 Arm 和 X86 等)角度,结构分离原则考虑的是非实时和实时操作系统运行内核的分离,为非实时和实时节点提供不同的运行环境,便于节点管理,并提高节点运行的效率。 4.4功能模块化设计原则
节点按照功能划分进行模块化设计,每个节点具有独立的与平台无关的功能,提供机器人应用软件复用性的支持。 4.5多核分布式管理原则
具有独立功能的节点采用拓扑分布式的管理模式,便于操作系统应用软件层的集成和扩展。多核分布式管理原则包括两方面:核间的节点分布和单个内核上的节点分布。 4.6可扩展原则
可扩展原则是指机器人操作系统通过集成第三方(如机器人操作系统应用软件开发者或操作系统无关的第三方库)的功能,快速改进或增加现有软件应用功能。功能模块化设计原则和多核分布式管理原则是可扩展原则实现的前提。
5机器人实时操作系统的应用框架
5.1概述
机器人实时操作系统的应用框架反映的是面向多核处理器的操作系统各组件的功能划分和相互之间的关系。如图 1所示,机器人实时操作系统是一种 Linux 与 RTOS相结合的混杂操作系统,称为 RGMP(RTOS and GPOS on Multi-core Processor).
3
GB/T 33264—2016
实时节点
非实时节点
非实时
实时节点
正小
主节点
节点
节点
通信客户端
通信客户端
VNET
RTOS网络端口
Linux网络端口
RTOS 设备驱动程序
Linux设备驱动程序
Linux
RTOS
核C
核B
核A
核D
图1机器人实时操作系统的应用框架RGMP
机器人实时操作系统的应用框架为层次化结构模型,自下而上分别为:
硬件层:主要是多核处理器运算内核,为操作系统提供一个稳定的硬件平台,是RGMP正常运行的基础层。 -底层操作系统层:在一个多核处理器的不同核上同时运行Linux和 RTOS,为上层应用软件提供底层的运行环境。其中一个核运行 RTOS,用于运行实时节点,其他核运行通用 Linux。 设备驱动层:主要提供操作系统支持下的硬件设备驱动程序、设备协议程序和设备服务程序等。 网络接口层:为Linux和RTOS提供一个快速稳定的通信接口,传递节点运行必要的信息、系统运行状态信息等。 软件应用层:软件应用以实时节点与非实时节点的形式运行,通过协调组织各应用软件功能构件,实现机器人感知、行动、思维、人机交互等基本功能。
在层次化结构模型下,机器人实时操作系统应用框架规定了机器人操作系统研究和开发过程中中断管理、分布式运行、通信接口、应用编程接口以及节点通信自定义消息等相关内容。 5.2中断管理
中断管理的原则是让不同类型的操作系统各自运行在不同的 CPU核中,互不影响,即不同的 CPU 享有各自独立的外部设备以及外部中断,当几个外部设备共享一条IRQ总线的时候,RGMP会针对不同的情况有着各自的策略,具体如下:
-所有外部设备都是非实时设备:RGMP在运行实时操作系统的 CPU屏蔽该 IRQ中断,让 Linux 完全接管整条中断线。 所有外部设备都是实时设备:RGMP对I/OAPIC进行配置,采用静态分发的方式将此IRQ 静态发送到实时操作系统所使用的CPU中,最大限度地提高实时操作系统的响应速度。 -条 IRQ线上同时有实时与非实时中断:如果实时设备不支持MSI,为了提高系统整体的实时性,无论是实时系统还是非实时系统,RGMP让一条总线上的IRQ全部路由到同一个操作系统使用的 CPU中。
GB/T 33264—2016
5.3分布式运行
在RGMP应用框架中同时运行实时节点和非实时节点。如图2所示,节点的运行采用分布式架构,各个实时与非实时节点之间的功能都是彼此独立的,便于复杂系统中节点的管理,便于根据机器人应用场合的不同更改节点程序,实现对机器人的控制,提高机器人对不同外设的兼容性,并利用ROS丰富的软件资源,扩展机器人的功能。另外,根据不同的控制场合,所有存在于非实时节点上的功能节点可以被安装于远程计算机中,远程计算机通过以太网与本地机器人控制器相连接,实现对机器人的远程控制。
节点部署的原则是实时节点拥有相对较高的任务优先级与中断优先级,运行在RTOS操作系统上,非实时节点的运行方式与普通 Linux程序相同,运行在 Linux上。如图 2所示,实时性要求高的节点运行在RTOS上,主要负责对机器人的各个关节进行闭环控制外加部分运动学解算,而非实时节点的主要功能包括机器人的三维动态仿真、人机交互、运动学解算等。
非实时节点 !实时节点 图例一节点管理数据
节点间通信数据
ANI
3D建模(交互)
外开
衣互)
机器人控制器软件机器人本体
-
实时设备
非实时设备
图2分布式应用软件框架
5.4通信接口
通信接口规定了三种不同类型,包括实时节点与非实时节点之间、ROS节点之间和实时ROS节点之间通信:
实时节点与非实时节点之间:使用标准的ROS节点通信传输协议。在实时与非实时节点之间创建一个以虚拟网络为接口,以提高通信效率同时保持程序的可移植性。底层用共享内存的方式实现的虚拟网桥“VNET”。在系统运行时,实时节点与任何种类的节点通信都首先要通过VNET虚拟网桥。 ROS节点间的通信:建立在TCP/IP标准协议之上,节点之间通过在网络层发送标准的TCP 或者UDP包进行通信。通信协议封装成Topic与Message两种形式,便于使用ROS提供的标准C十十接口函数实现节点间的数据收发。 实时ROS节点之间的通信:使用XML-RPC协议。所有的消息在发送前以符合XML-RPC消息格式的方式进行打包。在接受消息的时候以相同的协议进行解包。这样的流程在分布式系统中便于节点间的数据通信的管理,降低应用程序开发人员的负担,增加程序的可移植性。在
5