2016 面向多核处理器的机器人实时操作系统应用框架_第1页
2016 面向多核处理器的机器人实时操作系统应用框架_第2页
2016 面向多核处理器的机器人实时操作系统应用框架_第3页
2016 面向多核处理器的机器人实时操作系统应用框架_第4页
2016 面向多核处理器的机器人实时操作系统应用框架_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

GB/T33264—2016

目次

前言

…………………………Ⅰ

范围

1………………………1

术语和定义

2………………1

缩略语

3……………………2

机器人实时操作系统的应用框架设计原则

4……………3

概述

4.1…………………3

跨平台原则

4.2…………………………3

结构分离原则

4.3………………………3

功能模块化设计原则

4.4………………3

多核分布式管理原则

4.5………………3

可扩展原则

4.6…………………………3

机器人实时操作系统的应用框架

5………………………3

概述

5.1…………………3

中断管理

5.2……………4

分布式运行

5.3…………………………5

通信接口

5.4……………5

应用编程接口

5.5………………………6

实时操作系统的函数接口

5.6…………6

非实时节点的应用编程接口

5.7………………………6

实时节点的应用编程接口

5.8…………6

节点通信自定义消息

5.9………………6

附录资料性附录实时系统需要移植的关键函数和变量的相关功能

A()……………8

附录资料性附录非实时节点应用编程接口

B()………9

参考文献

……………………14

GB/T33264—2016

前言

本标准按照给出的规则起草

GB/T1.1—2009。

本标准由中国机械工业联合会提出

本标准由全国自动化系统与集成标准化技术委员会归口

(SAC/TC159)。

本标准主要起草单位北京航空航天大学首都师范大学北京化工大学北京机械工业自动化研究

:、、、

所中机生产力促进中心

、。

本标准主要起草人邵振洲魏洪兴谈金东关永张杰陈友东黄真邹莹王瑞施智平王振丽

:、、、、、、、、、、。

GB/T33264—2016

面向多核处理器的机器人

实时操作系统应用框架

1范围

本标准规定了面向多核处理器的机器人实时操作系统的应用程序框架及其设计原则

本标准适用于机器人实时操作系统开发者机器人应用软件开发者及机器人操作系统使用者

、。

2术语和定义

下列术语和定义适用于本文件

21

.

机器人操作系统robotoperatingsystem

由底层操作系统层和软件应用层组成为机器人提供硬件抽象描述底层驱动程序管理和程序间的

,、

消息传递等类操作系统功能以及定位绘图任务规划感知与导航等上层应用功能

,,,。

注具体应用功能术语参照

:GB/T12643—2013。

22

.

多核处理器multi-coreprocessor

在一个处理器中集成两个或多个完整的计算引擎内核每个执行内核是独立的逻辑处理器并

(),,

占用相应的执行资源

23

.

机器人实时操作系统real-timerobotoperatingsystem

保证机器人在规定的时间内完成特定任务并能够协调所有实时任务的操作系统

,。

24

.

中断请求interruptrequest

向发出命令请求让暂停正在执行的程序保护现场后去执行相应的处理程序处理完

CPU,CPU,,

成后再继续执行之前的程序

25

.

消息告知中断message-signaledinterrupt

在系统特定内存地址写入中断数据通知中断

,CPU。

26

.

节点node

直接执行运算任务的进程

27

.

消息message

一种用于节点间通信的数据结构

28

.

主题topic

用于发布订阅消息内容的特定标识

/。

1

GB/T33264—2016

29

.

服务service

节点间的通信方式由一个消息对组成包括请求消息和回复消息

,,。

210

.

节点管理器nodemaster

为节点存储主题和服务的注册信息用于管理节点间的消息交换和调用服务

,。

211

.

包package

组织机器人操作系统软件的主要形式包括节点独立于机器人操作系统的库数据集相关配置文

,、、、

件以及第三方软件等

212

.

堆stack

包的集合能够提供一个完整的功能

,。

213

.

传输控制协议/因特网互联协议transmissioncontrolprotocol/internetprotocol

因特网最基本的协议由传输层的协议和网络层的协议组成

,TCPIP。

214

.

用户数据报协议userdatagramprotocol

一种无连接的传输层协议提供面向事务的简单不可靠信息传送服务

,。

215

.

可扩展标记语言extensiblemarkuplanguage

用于标记电子文件使其具有结构性的标记语言

216

.

XML远程过程调用XMLremoteprocedurecall

使用格式来传输命令和数据使用作为传输机制

XML,HTTP。

217

.

虚拟网络virtualnetwork

一种不包含物理连接通过网络虚拟化实现的计算机网络

,。

3缩略语

下列缩略语适用于本文件

通用操作系统平台

GPOS:(GeneralPlatformforOperatingSystem)

中断请求

IRQ:(InterruptRequest)

消息告知中断

MSI:(Message-signaledInterrupt)

机器人操作系统

ROS:(RobotOperatingSystem)

实时操作系统

RTOS:(Real-timeOperatingSystem)

混合操作系统软件框架

RGMP:(RTOSandGPOSonMulti-coreProcessor)

传输控制协议因特网互联协议

TCP/IP:/(TransmissionControlProtocol/InternetProtocol)

用户数据报协议

UDP:(UserDatagramProtocol)

虚拟网络

VNET:(VirtualNetwork)

可扩展标记语言

XML:(ExtensibleMarkupLanguage)

远程过程调用

XML-RPC:XML(XMLRemoteProcedureCall)

2

GB/T33264—2016

4机器人实时操作系统的应用框架设计原则

41概述

.

面向多核处理器的机器人实时操作系统的应用框架设计遵循以下原则跨平台原则结构分离原

:、

则功能模块化设计原则多核分布式管理原则和可扩展原则

、、。

42跨平台原则

.

跨平台原则指的是机器人操作系统支持不同的硬件架构如和等在不同的硬件架构

,ArmX86。

下机器人实时操作系统可以稳定运行

,。

43结构分离原则

.

从机器人操作系统运行平台如和等角度结构分离原则考虑的是非实时和实时操作

(ArmX86),

系统运行内核的分离为非实时和实时节点提供不同的运行环境便于节点管理并提高节点运行的

,,,

效率

44功能模块化设计原则

.

节点按照功能划分进行模块化设计每个节点具有独立的与平台无关的功能提供机器人应用软件

,,

复用性的支持

45多核分布式管理原则

.

具有独立功能的节点采用拓扑分布式的管理模式便于操作系统应用软件层的集成和扩展多核

,。

分布式管理原则包括两方面核间的节点分布和单个内核上的节点分布

:。

46可扩展原则

.

可扩展原则是指机器人操作系统通过集成第三方如机器人操作系统应用软件开发者或操作系统

(

无关的第三方库的功能快速改进或增加现有软件应用功能功能模块化设计原则和多核分布式管理

),。

原则是可扩展原则实现的前提

5机器人实时操作系统的应用框架

51概述

.

机器人实时操作系统的应用框架反映的是面向多核处理器的操作系统各组件的功能划分和相互之

间的关系如图所示机器人实时操作系统是一种与相结合的混杂操作系统称为

。1,LinuxRTOS,

RGMP(RTOSandGPOSonMulti-coreProcessor)。

3

GB/T33264—2016

图1机器人实时操作系统的应用框架RGMP

机器人实时操作系统的应用框架为层次化结构模型自下而上分别为

,:

硬件层主要是多核处理器运算内核为操作系统提供一个稳定的硬件平台是正常运

———:,,RGMP

行的基础层

底层操作系统层在一个多核处理器的不同核上同时运行和为上层应用软件提

———:LinuxRTOS,

供底层的运行环境其中一个核运行用于运行实时节点其他核运行通用

。RTOS,,Linux。

设备驱动层主要提供操作系统支持下的硬件设备驱动程序设备协议程序和设备服务程

———:、

序等

网络接口层为和提供一个快速稳定的通信接口传递节点运行必要的信息系

———:LinuxRTOS,、

统运行状态信息等

软件应用层软件应用以实时节点与非实时节点的形式运行通过协调组织各应用软件功能构

———:,

件实现机器人感知行动思维人机交互等基本功能

,、、、。

在层次化结构模型下机器人实时操作系统应用框架规定了机器人操作系统研究和开发过程中中

,

断管理分布式运行通信接口应用编程接口以及节点通信自定义消息等相关内容

、、、。

52中断管理

.

中断管理的原则是让不同类型的操作系统各自运行在不同的核中互不影响即不同的

CPU,,CPU

享有各自独立的外部设备以及外部中断当几个外部设备共享一条总线的时候会针对不

,IRQ,RGMP

同的情况有着各自的策略具体如下

,:

所有外部设备都是非实时设备在运行实时操作系统的屏蔽该中断让

———:RGMPCPUIRQ,

完全接管整条中断线

Linux。

所有外部设备都是实时设备对进行配置采用静态分发的方式将此

———:RGMPI/OAPIC,IRQ

静态发送到实时操作系统所使用的中最大限度地提高实时操作系统的响应速度

CPU,。

一条线上同时有实时与非实时中断如果实时设备不支持为了提高系统整体的实

———IRQ:MSI,

时性无论是实时系统还是非实时系统让一条总线上的全部路由到同一个操作

,,RGMPIRQ

系统使用的中

CPU。

4

GB/T33264—2016

53分布式运行

.

在应用框架中同时运行实时节点和非实时节点如图所示节点的运行采用分布式架

RGMP。2,

构各个实时与非实时节点之间的功能都是彼此独立的便于复杂系统中节点的管理便于根据机器人

,,,

应用场合的不同更改节点程序实现对机器人的控制提高机器人对不同外设的兼容性并利用丰

,,,ROS

富的软件资源扩展机器人的功能另外根据不同的控制场合所有存在于非实时节点上的功能节点

,。,,

可以被安装于远程计算机中远程计算机通过以太网与本地机器人控制器相连接实现对机器人的远程

,,

控制

节点部署的原则是实时节点拥有相对较高的任务优先级与中断优先级运行在操作系统

,RTOS

上非实时节点的运行方式与普通程序相同运行在上如图所示实时性要求高的节

,Linux,Linux。2,

点运行在上主要负责对机器人的各个关节进行闭环控制外加部分运动学解算而非实时节点

RTOS,,

的主要功能包括机器人的三维动态仿真人机交互运动学解算等

、、。

图2分布式应用软件框架

54通信接口

.

通信接口规定了三种不同类型包括实时节点与非实时节点之间节点之间和实时节点

,、ROSROS

之间通信

:

实时节点与非实时节点之间使用标准的节点通信传输协议在实时与非实时节点之间

———:ROS。

创建一个以虚拟网络为接口以提高通信效率同时保持程序的可移植性底层用共享内存的

,。

方式实现的虚拟网桥在系统运行时实时节点与任何种类的节点通信都首先要通

“VNET”。,

过虚拟网桥

VNET。

节点间的通信建立在标准协议之上节点之间通过在网络层发送标准的

———ROS:TCP/IP,TCP

或者包进行通信通信协议封装成与两种形式便于使用提供的

UDP。TopicMessage,ROS

标准接口函数实现节点间的数据收发

C++。

实时节点之间的通信使用协议所有的消息在发送前以符合消

———ROS:XML-RPC。XML-RPC

息格式的方式进行打包在接受消息的时候以相同的协议进行解包这样的流程在分布式系

。。

统中便于节点间的数据通信的管理降低应用程序开发人员的负担增加程序的可移植性在

,,。

5

GB/T33264—2016

实时节点通信的网络层使用标准的网络通信协议

,TCP。

55应用编程接口

.

应用编程接口规定实时操作系统级函数接口非实时节点实时节点的应用编程接口规范为机器

、、,

人实时操作系统提供一个统一的标准规范

56实时操作系统的函数接口

.

机器人实时操作系统作为混合系统软件框架为实时操作系统提供了良好的函数接口为了方便

,。

用户开发它提供满足操作系统基本功能的链接库和与移植相关的头文件用户要移

,librgmp.artos.h。

植实时操作系统不需要再考虑实时操作系统对于模式转换初始化等问题甚至不需要再

,CPU、CPU,

编写与实时操作系统启动相关的汇编代码就可以实现对于实时操作系统的移植实时系统需要移植

,。

的关键函数与变量的相关功能参见附录表

AA.1。

57非实时节点的应用编程接口

.

非实时节点运行以机器人操作系统平台上所有的节点都是由不同的

ROS,ROSNodeROS

经过编译产生的根据面向对象编程的特点节点能够通过继承不同的让系

Packages。,ROSPackages

统拥有各种复杂功能所有的节点都需要继承几个核心功能包如

。ROSROS,roscore,roscpp,

roslang。

编写功能节点程序就必须调用的相关资源库所使用的库除了的标准系统

ROSROS,ROSLinux

调用以外还有一些与相关的模板库和与节点通信相关的函数库主要包括

,C++,:Boost,Libc,XML-

等具体非实时节点的应用编程接口参见所示

RPC,Math。B.1~B.11。

58实时节点的应用编程接口

.

在实时系统上开发实时节点的软件框架其代码与操作系统无关以应用程序的形式存在于

ROS,,

实时系统当中在标准中依赖语言的功能节点都是基于核心节点包和

。ROS,C++ROSROSCPP

通信协议栈考虑到实时节点的可移植性将功能与的核心功

XML-RPC。ROS,XML-RPCROSCPP

能统一封装在一个与系统无关的功能节点包中利用提供的基本接口开发

ROSRTroscpp。RTroscpp

与系统函数库无关但是符合标准通信协议的功能节点

ROSROSROS。

59节点通信自定义消息

.

在实时操作系统中用户要编写自己的节点还需要定义相关的消息头文件在标准

RTOS,ROS,。

中自定义消息需要通过标准的工具生成关于自定义消息的相关与

ROS,ROSROSmsg_genC++

头文件在头文件中节点消息是以类的方式呈现的它继承标准消息类类中包含有针

Python。,,ROS,

对自定义消息的打包函数以下是消息在传输过程中的要素

。ROS:

发送消息的节点名字

———callerid:;

接收消息的节点接收的话题名字

———topic:;

客户端节点请求的服务名字

———service:;

针对此消息类型的值

———md5sum:md5sum;

消息所包含的数据类型

———type:;

完整的消息定义基于或者是语言

———message_definition:(C++Python);

在链接错误时的错误消息

———error:;

由客户端节点发往服务器节点的字段用于处理多重数据请求

———persistent:,;

从消息接收端发往发送端的消息

———tcp_nodelay:。

6

GB/T33264—2016

针对不同的消息定义以上的大部分元素都是不同的特别是校验码由于在实时操作

,,md5sum。

系统中没有相关的工具但是程序员可以把标准中生成的消息头文件放置到实时节点

msg_gen,ROS

头文件中就可以使用相关的自定义节点图中是数据消息的格式

,。3。

图3ROS自定义消息的转换

7

GB/T33264—2016

附录A

资料性附录

()

实时系统需要移植的关键函数和变量的相关功能

机器人实时操作系统为实时操作系统提供了良好的函数接口便于用户移植实时操作系统实时

,。

系统需要移植的关键函数与变量的相关功能如表所示

A.1。

表A1实时系统需要移植的关键函数和变量的相关功能

.

函数名称主要功能

实时系统的启动入口函数

rtos_entry()

获得内存物理地址

rtos_get_mem()()

释放内存页物理地址

rtos_free_mem()()

动态获得内存空间非连续

rtos_kmalloc()

动态释放内存空间非连续

rtos_kfree()()

进入嵌套中断

rtos_enter_interrupt()

退出嵌套中断

rtos_exit_interrupt()

实时系统定时器中断处理

rtos_timer_isr()

实时系统退出

rtos_stop_running()

rtos_sem_init()

信号量机制

rtos_sem_up()

rtos_sem_down()

rtos_bridge_init()

实时与非实时系统间的通信

rtos_vnet_init()

rtos_vnet_recv()

8

GB/T33264—2016

附录B

资料性附录

()

非实时节点应用编程接口

所使用的库除了的标准系统调用以外还有一些与相关的模板库和与节点通信

ROSLinux,C++

相关的函数库为非实时节点的应用提供了丰富的接口

,。

B1roscppROS应用接口

..

为用户提供库使用户可以很快地链接到的和参数如表所示

,C++ROStopics,services,B.1。

表B1关于应用接口的C++接口类型及说明

.

接口类型说明

C++

用于自动生成符合接口规范的消息定义函数

genmsg_cppROS

用于自动生成符合接口规范的服务定义函数

gensrv_cppROS

用于自动生成符合接口规范的消息头文件

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论