GB∕T 33264-2016
基本信息
标准号:
GB∕T 33264-2016
中文名称:面向多核处理器的机器人实时操作系统应用框架
标准类别:国家标准(GB)
标准状态:现行
出版语种:简体中文
下载格式:.rar .pdf
下载大小:2689KB
相关标签:
面向
处理器
机器人
应用
框架
标准分类号
关联标准
出版信息
相关单位信息
标准简介
GB∕T 33264-2016 面向多核处理器的机器人实时操作系统应用框架
GB∕T33264-2016
标准压缩包解压密码:www.bzxz.net
标准内容
ICS 25.040.30
中华人民共和国国家标准
GB/T 33264--2016
面向多核处理器的机器人
实时操作系统应用框架
Framework of real-time robot operating system on multi-core processor2016-12-13发布
中华人民共和国国家质量蓝督检验检疫总局中国国家标准化管理委员会
2017-07-01实施
GB/T33264--2016
1范围
2术语和定义
缩略语
机器人实时操作系统的应用架设计原则4
4.1概述
跨平台原则
4.3结构分离原则
功能模块化设计原测
多核分布式管理原则
可扩慶原卿
5机器人实时操作系统的应用框架5.1
中断管理
分布式运行
通信接口
应用编程接口
实时操作系统的函数接口
非实时节点的应用编程接口
5.8实时节点的应用编程接口
5.9节点通信自定义消息
附录A(资料性附录)实时系统需要移植的关键函数和变量的相关功能附录B(资料性附录)非实时节点应用编程接参考文献
本标准按照GB/T1.1·2009给出的规则起草。本标摊由中国机械工业联合会提出。本标准由全国自动化系统与集成标准化技术委员会(SAC/TC159)归口。GB/T33264—2016
本标雅主要起草单位:北京航空航天大学、首都师范大学、北京化工大学、北京机械工业自动化研究所、中机生产力促进中心。
本标主要起草人:邵振洲、魏洪兴、谈金东、关永、张杰、陈友东、黄真、邹莹,王瑞、施智平、王振丽。-TYKAONIKAca
1范围
面向多核处理器的机器人
实时操作系统应用框架
GB/T 33264—2016
本标准规定了面向多核处理器的机器人实时操作系统的应用程序框架及其设计原则。本标准适用于机器人实时操作系统开发者、机器人应用软件开发者及机器人操作系统使用者。2术语和定义
下列术语和定义适用于本文件。2.1
机器人操作系统robotoperating system由底层操作系统层和软件应用层组成,为机器人提供硬件抵象描述、底层驱动程序管理和程序间的消息传递等类操作系统功能,以及定位绘图,任务规划,感郑与导航等上层应用功能。注:具体放用功能术语参照GB/T12643--2013。2.2
multi-coreprocessor
多核处理器
在一个处理器中集成两个或多个完整的计算号擎(内核),每个执行内核是独文的逻辑处理器,并占用相应的执行资源。
机器人实时操作系统real-tirnerobotoperatingsystem保证机器人在规定的时间内完成特定任务,并能够协调所有实时任务的操作系统。2.4
中断请求interruptrequest
向CPU发出命令请求,让CPU暂停正在执行的程序,保护现场后去执行相应的处理程序,处理完成后再继续热行之前的程序。
f niessage-signaled interrupt消息告知中断
在系统特定内存地趾写人中断数据,通知 CPU 中断。2.6
节点 node
查接执行运算任务的进程。
消息message
一种用于节点间通信的数据结构。2.8
主题topic
用于发布/订阔消息内容的特定标识。1
TYKAONiKAca
GB/T33264—2016
服务service
节点间的通信方式,由一个消息对组成,包括请求消息和间复消息,2.10
节点管理器nodemagter
为节点存储主题和服务的注册信息,用于管理节点间的消息交换和调用服务。2.11
包package
组织机器人操作系统软件的主要形式,包括节点、独立于机器人操作系统的库、数集、相关配置文件以及第三方软件等。
堆 stack
包的集合,能够提供-一个完整的功能。2.13
传输控制协议/因特网互联协议transmissiont 心nntrol protocol/internprotacol因特网最基术的协议,由传输层的TCP协议和网络层的IP协议组成,2.14
用户数据报协议userdatagramprotocol一种无连接的传输层协议,提供面向事务的简单不而靠信息传送服务。2.15
可扩展标记语言extensihlemarkop language用于标记电子文件使其具有结构性的标记语言。2.16
XML远程过程调用XMLremoteprocedurecall使用XML格式来传输命令和数据,使用HTTP作为传输机制。2.17
fvirtpal metvork
虚拟网络
一种不包含物现连接,通过网络虚拟化实现的计算机网络。3缩略语
下列缩略语适用于本文件。
GPOS:避用操作系统平台(GeneralPlatformforOperatingSystcm)IRQ:中断请求(InterruptRequest)MSI:消息告知中断(Mcssage-signaled Interrupt)ROS,机器人操作系统(Rabat Operating System)RTOS:实时操作系统(Rcal-timc Operating System)RGMP:混合操作系统软件框架(RTOsandGPOSonMulti-coreProcessor)TCP/IP:传输控制协议/因特网互联协议(Transmissiun Cotttol Frolocol/Internet Pratacol)UDP:用户数据报协议(User Datagram Protocol)VNET:虚拟网络(Virtual Netwark)XML,可扩展标记语声(Extensible Markup Language)XML-RPC,XML远程过程调用(XMLRemoteProcedureCall)2
TYKAONiKAca
4机器人实时操作系统的应用框架设计原则4.1概述
GB/T 33264—2016
面向多核处理器的机器人实时操作系统的应用框架设计遵循以下原则:跨平台原则、结构分离原则、功能模块化设计原则、多核分布式管理原则和可扩展原则。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),TrKAONiKAca
GB/T33264--2016
主节点
非实时
通信客户端
Linux网端F
Linix设备驱动程序
非将附
通信客户端
RTOS网络端口
RTOS设备驱动程序
图1机器人实时操作系统的应用框架RGMP机器人实时操作系统的应用框架为层次化结构模型,自下而上分别为:硬件层:主要是多核处理器运算内核,为操作系统提认个稳定的硬件平台,是RGMP正常运行的基础层。
底层操作系统层:在一个多核处现器的不同核上同时运行Linux和RTOS,为上层应用软件提供底层的运行环境,其中一个核运行RTOS,用于运行实时节点,其他核运行通用Linux。-设备驱动层:主要提供操作系统支持下的硬件设备驱动程序,设备协议程序和设备服务程序等。
网络接口层:为Linux和RTOS提供一个快速稳定的通信接口,传递节点运行必要的信息、系统运行状态信息等。
软件应用层,软件应用以实时节点与非实时节点的形式运行,通过协调组织各应用软件功能构件,实现机器人懋知、行动、想维、人机交互等基本功能。在层次化结构模型下,机器人实时操作系统应用框架规定了机器人操作系统研究和开发过程中中断管理、分布式运行、通信接口、应用编程接口以及节点通信自定义消息等相关内容,5.2中断管理
中断管理的原则是让不同类型的操作系统各自运行在不同的CPU核中,互不影响,即不同的CPU享有各自独立的外部设备以及外部中断,当几个外部设备共享一条IRQ总线的时候,RGMP会针对不同的情况有着各白的策略,具体如下:-所有外部设备都是非实时设备:RGMP在运行实时操作系统的CPU屏蔽该IRQ中断,让:Linux宪金接管整条中断线。
-所有外部设备都是实时设备:RGMP对I/OAPIC进行配置,采用静态分发的方式将此IRQ静态发送到实时操作系统所使用的CPUF中,最大限度地提高实时操作系统的响应速度,条IRQ线上同时有实时与非实时中断:如果实时设备不支持MSI,为了提高系统整体的实时性,无论是实时系统还是非实时系统,RGMP让一条总线上的IRQ全部路出到同一个操作系统使用的CPU中。
YKAONIKAca
5.3分布式运行
GB/T33264—2016
在RGMP应用框架中同时运行实时节点和非实时节点。如图2所示,节点的运行采用分布式架构,各个实时与非实时节点之间的功能都是彼此独立的,便于复杂系统中节点的管理,便于根据机器人应用场合的不同更改节点程序,实现对机器人的控制,提高机器人对不同外设的兼容性,并利用ROS丰富的软件资源,扩展机器人的功能。另外,根据不同的控制场合,所有存在于非实时节点上的功能节点可以被安装于远程计算机中,远程计算机通过以太网与本地机器人控制器相连接,实现对机器人的远程控制。
节点部署的原则是实时节点拥有相对较高的任务优先级与中断优先级,运行在RTOS操作系统上,非实时节点的运行方式与普通Linux程序相同,运行在Linux上。如图2所示,实时性要求高的节点运行在RTOS上,主要负责对机器人的各个关节进行闭环控制外加部分运动学解算,而非实时节点的主要功能包括机器人的三维动态仿真、人机交互、运动学解算等。非实时节点
云处理
机器人控制器软件
机器人本体
非实时设备
■实时节点
图例节点管理数据
节点间通信数据
实时设备
图2分布式应用软件框架
5.4通信接口
通信接口规定了三种不同类型,包括实时节点与非实时节点之间、ROS节点之间和实时ROS节点之间通信:
实时节点与非实时节点之间:使用标准的ROS节点通信传输协议。在实时与非实时节点之间创建一个以虚拟网络为接口,以提高通信效率同时保持程序的可移植性。底层用共享内存的方式实现的虚拟网桥“VNET”。在系统运行时,实时节点与任何种类的节点通信都首先要通过VNET虚拟网桥。
ROS节点间的通信:建立在TCP/IP标准协议之上,节点之间通过在网络层发送标准的TCP或者UDP包进行通信。通信协议封装成Topic与Message两种形式,便于使用ROS提供的标准C十十接口函数实现节点间的数据收发实时ROS节点之间的通信:使用XML-RPC协议。所有的消息在发送前以符合XML-RPC消息格式的方式进行打包。在接受消息的时候以相同的协议进行解包。这样的流程在分布式系统中便于节点间的数据通信的管理,降低应用程序开发人员的负担,增加程序的可移植性。在5
KAONiKAca
GB/T33264--2016
实时节点通信的网络层,使用标准的TCP网络通信协议。5.5应用编程接口
应用编程接口规定实时操作系统级函数接口、非实时节点、实时节点的应用编程接口规范,为机器人实时操作系统提供一个统-的标准规范。5.6实时操作系统的函数接口
机器人实时操作系统作为混合系统软件框架,为实时操作系统提供了良好的函数接口。为了方便用户开发,它提供满足操作系统基本功能的链接库librgtmp.a和与移植相关的头义件rtos.h,用户要移植实时操作系统,不需要再考虑实时操作系统对于CPU模式转换、CPU初始化等间题,甚至不需要再编写与实时操作系统启动相关的汇编代码,就可以实现对于实时操作系统的移植。实时系统需要移植的关键函数与变量的相关功能参见附录A表A.1。5.7非实时节点的应用编程接口
非实时节点运行以机器人操作系统ROS平台上,所有ROS的Node节点都是出不同ROS的Packages经过缩译产生的。根据面向对象编程的特点,ROS节点能够通过继承不同的Packages让系统拥有各种复杂功能。所有的ROS节点都需要继承几个ROS核心功能包,如roScorc,Toscpp,rslang 等。
编写ROS功能节点程序就必须调用ROS的相关资源库,ROS所使用的库除了Liux的标准系统调用以外,还有一些与C十十相关的模板库和与节点通信相关的函数库,主要包括:Boost,Libc,XMLRPC,Math等。具体非实时节点的应用编程接口参见B.1~B.l1 所示。5.8实时节点的应用编程接口
在实时系统上开发ROS实时节点的软件框架,其代码与操作系统无关,以应用程序的形式存在于实时系统当中。在标谁ROS中,依赖C十十语言的ROS功能节点都是基于ROSCPP核心节点包和XML-RPC通信协议栈。考虑到ROS实时节点的可移植性,将XML-RPC功能与ROSCPP的核心功能统封装在一个与系统无关的ROS功能节点包RTroscpp巾。利用RTroscpP提供的基本接口开发与ROS系统函数库无关但是符合ROS标准通信协设的ROS功能节点,5.9节点通信自定义消息
在实耐操作系统RTOS中,用户要编写白已的ROS节点,还需要定义相关的消息头文件。在标准ROS中,白定义ROS消息需要通过标准ROS的msg_gen工具生成关于自定义消息的相关C+十与Pytho头支件。在实文件中,节点消息是以类的方式现的,它继承ROs标催消息类,类巾包含有针对自定义消息的打包菌数。以下是ROS消息在传输过程中的要素:callcrid:发送消息的节点名字;topic:接收消息的节点接收的话题名字;.sorvice:客户端节点请求的服务名字:mdssum:针对此消息类型的md5sum值:….type:消息所包含的数据类型—message_delinition:完整的消息定义(基于C十十或者是Python语言);-error:在链接错误时的错误消息:persistent:由客户端节点发往服务器节点的字段,用于处理多重数据请求;tcp_nodelay:从消息接收端发往发送端的消息。KAOiKAca
GB/T 33264—2016
针对不同的消息定义,以上的人部分元素都是不同的,特别是md5sum校验码。由于在实时操作系统中没有相关的msg_gen工具,但是程序员可以把标准ROs中生成的消息头文件放置到实时节点头文件中,就可以使用相关的自定义节点。图3中是数据消息的格式。消总传输数据包格式
数期包头长度(4字节)
massage_definition字段长度(4字节)message_detinition学段
callerid字段长度(4字节)
callenid学段
白定义消息定义
类型1
类型2
奖型打
latching字段长度(学前)
latchin字段
md5sum字段长度(4字节)
mdsn段
lupic学段长度(4字节)
tapic段
message type段长度(4字节)
message lype学段
messagebedy学段K度(4字节)
类型1字段长度(4字节)
类型1字段
类型n字段长度(4节)
类型n字段
图3ROS自定文消息的转换
GB/T 33264—2016
附录A
(资料性附录)
实时系统需要移植的关键函数和变量的相关功能机器人实时操作系统为实时操作系统提供厂良好的驱数接口,便于用户移植实时操作系统。实时系统需要移植的关键函数与变量的相关功能如表A,1所示,表A.1实时系统需要移植的关键函数和变量的相关功能脑数名称
rtas_entry)
rtos_get_mem()
rtos.free_mom()
rtos_kmallor
rtos_kfree()
rios_enter_interrupt()
rtos_exi_intefrup()
rtos_timer_isr()
rtos_stop_running()
Itos_sem_ini
rtos_sem_up()
rtos_sem_dawn()
rtos_bridge_init()
rtoa_vnet_init()
rtas..vnet_recv()
主要功能
实时系统的启动入口函数
获得内存(物理地址)
释放内存页(物理地址)
动态获得内存空间(非连续)
动态释效内存空间非连续)
进入嵌套中断
巡出嵌套中断
实时系统定时器断处理
实时系统退出
信号量机制
实时与非实时系统间的通信
附录B
(资料性附录)
非实时节点应用编程接口
GB/T 33264--2016
ROS所使用的库除了Linux的标摊系统调用以外,还有一些与C十十相关的模板库和与节点通信相关的函数库,为非实时节点的应用提供了半富的接口。B,roscpp.RoS应用接口
为用户提供库,使C十十用户可以很快地链接到ROS的topics,scrvices和参数,如表B.1所示。表 B. 1关于应用接口的 C+ 十接口类型及说明C++接山类型
gcnmsg_cpp
genstv_cpp
msg_gen
ros +file_log
ros::init_aptions
ros: : master
ros::names
roa::network
ros::paratn
ros: :5ervice
ros: :thisnodeWww.bzxZ.net
ros::lopic
ros::mlrpe
rasepp
rosgraph
B.2common_msgs.基本数据类型接口说明
用于自动E成符合ROS接口规范的消息是义函数用于自动生成符合ROS接口规范的服务定义函数用于自动生成符合ROS接口规范的消息头文件用于自动生晨ROS 节点运行监控文件的相关数ROS节点启动方式初始化函数
包含充诈用户查询主机的函数
包含允许用户操作ROS空间的函数ROS 节点通信框架函数
包含允许用户在洲参数服务器的函数包含查阿服务和调用服务的函数当前进程使用的ROS节点的信息函数ROS标准话题发布教件框架函数
与ROS节点通信相关底层接口函数基于 C++的 ROS节点底层函数
R(S 节点调试信息打印输出痴数基本数据类型接口包含了ROS功能包广泛用到的消息类型,如表B.2所示。表 B.2关于基本数据类型接口的消意类型及说明消息类型
artionlib_msgs
diagaostic_msgs
动作消息
诊断消息
小提示:此标准内容仅展示完整标准里的部分截取内容,若需要完整标准请到上方自行免费下载完整标准文档。