首页 / 专利库 / 电脑零配件 / 嵌入式系统 / 一种基于多核处理器架构的机器人混合系统应用框架

一种基于多核处理器架构的机器人混合系统应用框架

阅读:1029发布:2020-06-27

专利汇可以提供一种基于多核处理器架构的机器人混合系统应用框架专利检索,专利查询,专利分析的服务。并且本 发明 描述了一种基于 多核处理器 架构的 机器人 混合系统应用 框架 。在采用ARM/X86多核处理器作为 控制器 的机器人系统中,利用ARM/X86多核处理器的多核并行处理结构,在整个机器人控制器同时运行由实时 操作系统 、非实时操作系统、系统 支撑 框架组成的机器人混合系统应用框架,来提供改进的操作系统服务。在该应用框架中,一个实时操作系统单独运行在其中一个ARM/X86核中,同时若干个非实时操作系统运行在其它ARM/X86核中,操作系统间彼此单独占用处理器资源与外设,分别运行不同实时性要求的机器人应用程序,应用程序可以以统一的 机器人操作系统 (ROS)应用 节点 形式使用。,下面是一种基于多核处理器架构的机器人混合系统应用框架专利的具体信息内容。

1.一种基于多核处理器架构的机器人混合系统,其特征在于包括:
机器人操作系统(ROS)(12),其包含支持机器人操作系统的非实时操作系统(13),用于提供基本的机器人应用、相应服务和系统资源;
实时操作系统(17),用于提供机器人实时任务的服务和系统资源;
混合操作系统支撑框架(RGMP)(19),用于支撑机器人操作系统和实时操作系统的运行和协调,将非实时操作系统(13)与实时操作系统(17)同时运行在多核处理器平台上,其中:
所述多核处理器平台是基于ARM/X86架构的开放式多核处理器控制板、控制器和/或工控机,
混合操作系统支撑框架RGMP包括RGMP非实时部分框架(191)和RGMP实时部分框架(192),
非实时操作系统(13)是嵌入式系统,运行在RGMP非实时部分框架(191)之上,实时操作系统(17)运行在RGMP实时部分框架(192)之上,
非实时操作系统(13)包含操作系统基本的系统库SYS LIB(131)、C语言库LIBC(132)、网络协议NET(133)、BOOST库(134)、非实时操作系统内核(135)以及驱动程序(136),实时操作系统(17)中提供有符合POSIX标准的系统调用接口
实时操作系统(17)包含操作系统基本的系统库SYS LIB(171)、C语言库LIBC(172)、网络协议NET(173)、BOOST库(174)、实时操作系统内核(175)以及驱动程序(176),实时操作系统(17)和非实时操作系统(13)之间通过混合操作系统支撑框架RGMP(19)的VNET虚拟网络机制进行通信,
实时操作系统(17)和非实时操作系统(13)分别单独占用多核处理器的不同处理器核心来运行,它们同时维持各自的应用状态而不必针对混合操作系统架构进行优化,其运行、调试均相互独立,
在混合系统运行时,实时操作系统(17)和非实时操作系统(13)独立占有各自的硬件资源;
对于共享设备的调度,实时操作系统(17)和非实时操作系统(13)通过它们之间的所述通信来实现,
所述机器人混合系统进一步包括:
底层控制器部分,包括:语音传感器、视觉传感器、超声传感器、温度传感器、绝对编码器、相对编码器、电机驱动器、实时以太网口、无线网络Wifi网口,其中:
---绝对编码器与相对编码器存在于电机驱动器当中,所有的电机驱动器通过CAN接口的方式串联连接;
---语音传感器与视觉传感器通过USB接口与ARM/X86多核处理器(21)相连接,其中视觉传感器由实时操作系统(17)控制;
---实时以太网口与无线网络Wifi网口支持机器人的分布式运算与远程控制,用于通过有线与无线的方式与远端计算机相连,从而实现局域网或者是广域网的网络通信,形成分布式控制系统。
2.根据权利要求1的机器人混合系统,其特征在于:实时操作系统(17)和非实时操作系统(13)之间的所述通信通过混合操作系统支撑框架RGMP(19)的VNET虚拟网络机制进行,并使用机器人操作系统提供机器人操作系统的节点间通信协议,由混合操作系统支撑框架RGMP(19)为实时操作系统(17)和非实时操作系统(13)之间提供以共享内存为基础的上层通信接口,其中包括:
---实时与非实时系统之间的标准TCP/IP协议栈;
---实时系统调试信息打印管道;
---3个用户自定义接口,

实时操作系统(17)和非实时操作系统(13)分别使用计算机内存中不同的内存地址段,实时操作系统(17)和非实时操作系统(13)之间外部设备中断相互独立,无共享,中断通过所述ARM/X86多核处理器中提供的中断路由器进行独立分配,
实时操作系统(17)和非实时操作系统(13)均使用标准的机器人操作系统编程与通信接口,在整个机器人系统中应用和控制程序都是以标准机器人操作系统节点的形式运行,可以由机器人操作系统统一管理,节点之间通过机器人操作系统标准通信接口进行通信,原来运行在机器人操作系统(12)上的不依赖第三方函数库的节点程序可被直接放置到实时操作系统(17)运行,
实时应用在实时操作系统(17)上被编写,通过实时总线连接电机驱动器等实时外设,完成包括复杂电机运动控制在内的实时性要求高的任务。
3.根据权利要求1所述的机器人混合系统,其特征在于:
非实时操作系统(13)与实时操作系统(17)分别占用独立的内存空间,
所述多核处理器平台连接的外设包含非实时硬件部分(14)和实时硬件部分(18),所述非实时操作系统(13)是Linux,所述实时操作系统(17)是Yuqix。
4.根据权利要求1所述的机器人混合系统,其特征在于:
在机器人操作系统(12)之上是使用机器人操作系统标准接口与机器人操作系统工具编写的非实时机器人操作系统应用程序节点(11);
在实时操作系统(17)之上是供用户直接编写或通过RTroscpp软件框架(16)编写的实时机器人操作系统应用节点(15)。
5.根据权利要求1所述的机器人混合系统,其特征在于:
在实时操作系统(17)之上是供用户使用标准的机器人操作系统函数接口编写机器人操作系统实时节点程序(15)的RTroscpp软件框架(16)。
6.根据权利要求1所述的机器人混合系统,其特征在于:
非实时操作系统(13)根据不同的机器人控制应用需求,运行不同功能的机器人操作系统实时节点,包括:位置闭环控制单元(2408)、电流控制单元(2410)、插补解算单元(2409)、位置控制单元(2411),以及不同功能的机器人操作系统非实时节点,包括:语音处理单元(2401)、图像处理单元(2403)、语音识别单元(2402)、三维建模单元(2404)、物体识别单元(2405)、建图导航单元(2406),
实时操作系统(17)中的运动控制以不同的线程进行功能区分,其中,
主线程(31)为实时机器人操作系统节点线程,负责建立符合机器人操作系统通信协议的实时节点,负责机器人电机的初始化以及实时操作系统(17)与非实时操作系统(13)上运行的机器人操作系统节点之间的通信,负责实时与非实时节点之间的通信,并把消息分发到其余的各个线程,
CAN总线收发线程(34)用于发送和读取从CAN总线设备描述符中获得的CAN总线(23)的数据,并把相关的数据实时发布到其它线程(36),
运动控制线程(32)用于设置机器人的初始位置姿态,同时实现针对运动单元动作的精细插补,
在发送运动控制指令之后,闭环控制线程(33)读取目前机器人各个运动关节的状态,若运动单元节没有到达控制指令所要求到达的位置,闭环控制线程(33)会重发并修正当前运动单元的位置姿态,
实时系统中具有监控线程(35)负责在CAN总线(23)空闲时读取机器人的运行姿态,以保证运动控制的正常运行,同时读取各个运动单元上的传感器数据信息,以及控制板上的任务状态标志。
7.根据权利要求1所述的机器人混合系统,其特征在于进一步包括:
全局中断路由模(45),
其中,
支撑非实时应用节点组(41)的非实时操作系统内核(135)与支撑实时应用节点组(42)的实时操作系统内核(175)利用共享内存(43)通信,并分别通过全局中断路由模块(45)获得各自的外部设备(44和46)的中断,
外部设备(44和46)的中断号分别通过配置的方式控制全局中断路由模块(45)将固定的中断号路由到相应的所述ARM/X86多核处理器中,从而有效地保证中断的响应的实时性。

说明书全文

一种基于多核处理器架构的机器人混合系统应用框架

[0001] 本申请是中国专利申请第201410324304.3号的分案申请。

技术领域

[0002] 本发明属于机器人领域,涉及一种基于多核处理器架构的机器人混合系统应用框架。

背景技术

[0003] 机器人控制是机器人研究的一个重要领域,其对应用程序的需求日趋复杂,并伴随着使用各种实时与非实时操作系统来提供系统支持。程序员需要使用操作系统提供的丰富编程资源编写机器人控制程序,同时也需要操作系统提供的实时性支持。基于Linux的机器人操作系统(Robotic Operating System,ROS)就是为了提高机器人开发效率所诞生的开源操作系统,但Linux的非实时特性限制了机器人操作系统ROS在机器人实时控制领域的应用。而目前市场上有众多的实时操作系统,由于相对通用操作系统来说,它们大多都是功能单一,系统应用资源少,难以方便实现复杂的应用。机器人开发者需要在满足实时性的同时能够高效地开发出机器人应用程序。

发明内容

[0004] 为了解决现有的技术问题,本发明提供一种基于多核处理器架构的机器人混合系统应用框架。该框架可以应用于各种基于ARM/X86多核架构的机器人控制器中,在保证实时性要求的同时,能够大幅度提高机器人控制软件的开发效率,并降低集成开发成本。
[0005] 此应用框架主要由三个部分组成,机器人操作系统ROS,实时操作系统,混合操作系统支撑框架RGMP(RTOS and GPOS on Multi-Processor)。
[0006] --机器人操作系统ROS(含支持机器人操作系统ROS的非实时操作系统,通常是Linux),用于提供基本的机器人应用、相应服务和系统资源。
[0007] --实时操作系统,用于提供机器人实时任务的服务和系统资源。
[0008] --混合操作系统支撑框架RGMP,用于支撑机器人操作系统ROS和实时操作系统的运行和协调。
[0009] RGMP是一个在多核处理器上支持实时操作系统和非实时操作系统并行运行的开源支撑框架,它利用SMP(对称多核体系结构)计算机的中断路由器独立分配实时操作系统和非实时操作系统的中断资源,可以自然地将这些操作系统分别并行运行在各处理器核心上,合理分配处理资源,减小系统耦合,并避免了传统的共享式混合操作系统因同处一个处理器核心而带来的资源竞争和切换问题。RGMP开源源码及文档见【1】,即:
[0010] http://rgmp.sourceforge.net/wiki/index.php/Main_Page
[0011] 混合操作系统支撑框架RGMP包括以下四个系统布置内容部分:
[0012] ---用户通过实时应用框架RTroscpp实现快速开发实时机器人控制程序(可选)。
[0013] ---非实时系统与实时系统分别单独占用多核处理器的不同CPU核心,它们可同时维持各自的应用状态而不必针对混合操作系统架构进行优化,其运行、调试均相互独立。
[0014] ---在混合系统运行时,实时与非实时操作系统独立占有各自的硬件资源。
[0015] ---对于共享设备的调度通过它们之间的通信来实现。
[0016] 本发明中,实时系统与非实时系统之间使用机器人操作系统提供ROS的节点间通信协议,由RGMP为两个系统之间提供以共享内存为基础的上层通信接口,其中包括:
[0017] ---实时与非实时系统之间的标准TCP/IP协议栈;
[0018] ---实时系统调试信息打印管道;
[0019] ---3个用户自定义接口。
[0020] 本发明中应用框架的几个特征包括:
[0021] ---实时与非实时系统分别使用计算机内存中不同的内存地址段。
[0022] ---系统间外部设备中断相互独立,无共享,中断通过ARM/X86多核中提供的中断路由器进行独立分配。
[0023] ---实时系统与非实时系统均使用标准的ROS编程与通信接口,在整个机器人系统中应用和控制程序都是以标准ROS节点的形式运行,可以由ROS统一管理,节点之间通过ROS标准通信接口进行通信。
[0024] ---用户可以将原来运行在ROS上的不依赖第三方函数库的节点程序直接放置到实时系统运行。用户使用ROS机器人操作系统编写的机器人应用程序可以在实时或者非实时设备上运行。
[0025] ---用户可以利用ROS提供的应用资源,使用本发明对ROS应用进行的有效扩展。其中:
[0026] 对于高复杂度的,同时对实时性要求较低的功能节点,通过以太网的方式将其运行在装有ROS标准机器人操作系统的服务器当中。
[0027] 运行在非实时系统上的应用程序与运行在实时系统上的机器人控制程序使用ROS提供的标准通信接口进行信息交互。
[0028] 在使用本发明时,应用程序在非实时操作系统部分可直接利用ROS本身的相关软件资源,如人机交互语音识别三维建模、建图导航等任务,也可以独立编写程序;在实时系统部分编写实时应用,通过采用实时总线(如CAN(控制器局域网Controller Area Network)总线、倍孚公司EtherCAT总线等)连接电机驱动器,完成复杂电机运动控制和其他实时性要求较高的任务。
[0029] 根据本发明的一个方面,提供了一种基于多核处理器架构的机器人混合系统,其特征在于包括:
[0030] 机器人操作系统,其包含含支持机器人操作系统的非实时操作系统,用于提供基本的机器人应用、相应服务和系统资源;
[0031] 实时操作系统,用于提供机器人实时任务的服务和系统资源;
[0032] 混合操作系统支撑框架(RGMP),用于支撑机器人操作系统和实时操作系统的运行和协调,将非实时操作系统与实时操作系统同时运行在多核处理器平台上。
[0033] 根据一个进一步的方面,在上述机器人混合系统中,非实时操作系统与实时操作系统分别占用独立的内存空间,所述多核处理器平台是基于ARM/X86架构多核处理器的控制板、控制器和/或工控机等,所述非实时操作系统可以是 Linux,所述实时操作系统可以是Yuqix。附图说明
[0034] 图1为本发明的总体组成结构图。
[0035] 图2为本发明的典型控制应用示例的连接图。
[0036] 图3为本发明的典型应用示例中运动控制部分的流程图
[0037] 图4为本发明基于Cortex-A9双核处理器平台的中断资源分配图。

具体实施方式

[0038] 下面结合附图用示例详细说明本发明技术方案中所涉及的各个细节问题,应指出的是,所描述的实例仅旨在便于对本发明的理解,而对其不起任何限定作用。
[0039] 虽然本申请对具体实施例的说明,主要是结合Linux非实时操作系统和 Yuqix实时操作系统进行描述的,但可应用本发明的非实时操作系统与实时操作系统,不仅限于Linux非实时操作系统和Yuqix实时操作系统,而是可以适用于任何其他的非实时操作系统和/或实时操作系统。
[0040] 请参阅图1所示的本发明的一种基于多核处理器架构的机器人混合系统应用框架的总体组成结构图,该机器人混合系统应用框架通过混合操作系统框架 RGMP 19将Linux系统13与Yuqix实时系统17这两种不同系统同时运行在基于ARM架构的、包含非实时设备14和实时设备18的多核处理器平台上;Linux 系统13与Yuqix实时系统17分别占用独立的内存空间。
[0041] Linux系统13是嵌入式系统,包含操作系统基本的系统库SYS LIB 131、C 语言库LIBC 132、网络协议NET 133、BOOST库134、Linux内核135以及驱动程序136等必要模,运行在RGMP(非实时部分)框架191之上,在Linux 系统13上层运行的是机器人操作系统ROS 12。在ROS 12之上是使用ROS标准接口与ROS工具编写的非实时ROS应用程序节点11。
[0042] 另一方面,Yuqix实时操作系统17中提供了大量符合POSIX标准的系统调用接口,它也包含操作系统基本的系统库SYS LIB 171、C语言库LIBC 172、网络协议NET 173、BOOST库174、Yuqix内核175以及驱动程序176等必要模块。在Yuqix实时系统17之上,用户可以直接编写实时ROS应用节点15,也可以依赖RTroscpp软件框架16使用标准的ROS函数接口编写ROS实时节点程序 15,或者也可将原本运行在非实时系统上的ROS程序节点11放置到Yuqix上运行。Yuqix运行在RGMP(实时部分)框架192之上。
[0043] 两个操作系统17和13之间通过RGMP 19的VNET虚拟网络机制进行通信。
[0044] 图2显示了根据本发明的机器人混合系统应用框架的典型控制应用示例的连接图。图2的示例中,基于多核处理器的机器人控制器运行本发明的机器人混合操作系统的应用框架,非实时系统Linux 13与实时系统Yuqix 17分别利用 RGMP 19运行在多核的不同CPU上组成了机器人系统。其中实时系统Yuqix 17 运行在处理器核2上并通过CAN总线23与实时设备(驱动单元2407)相连接。 Linux系统13(包含机器人操作系统ROS)运行在处理器核1上,并根据机器人控制应用需求的不同,运行不同功能的ROS实时节点,包括位置闭环控制2408、电流控制2410、插补解算2409、位置控制2411等等,以及不同功能的ROS非实时节点,包括语音处理单元2401、图像处理单元2403、语音识别2402、三维建模2404、物体识别2405、建图导航2406等等(机器人操作系统ROS上的应用节点可运行在系统网络中的各个位置,因此图中所示为方便起见将软硬件模块24放置在一起)。实时系统Yuqix 17与Linux系统13分别通过各种总线接口与机器人上的各种摄像头或者传感器相连接,其中实时系统通过CAN总线23 与电机控制器(驱动单元2407)相连接,以保证电机运动控制的实时性与稳定性,完成的功能主要是对于机器人的运动控制。同时实时系统Yuqix 17也可以通过USB总线
22或其他总线去驱动其他外围设备,以根据需要完成相关的任务。非实时系统Linux 13通过USB总线22、以太网总线25等与外部的设备相连接,负责针对整个机器人在视觉、声音、人机处理、任务决策等任务,连接的外围设备包括语音传感器2412,视觉(摄像头)传感器2413等等。
[0045] 如图3的运动控制流程图所显示的,本发明对机器人的运动控制通过向 CAN总线23的接口发送针对控制器的控制命令实现。实时系统Yuqix 17中的运动控制主要以不同的线程进行功能区分。主线程31为实时ROS节点线程,它负责建立符合ROS通信协议的实时节点,负责机器人电机的初始化以及Yuqix 内核175与Linux内核135上运行的ROS节点之间的通信。由主线程31负责实时与非实时节点之间的通信,并且把消息分发到其余的各个线程。
CAN总线收发线程34是为了发送和读取从CAN总线设备描述符中获得的CAN总线23 的数据,并能够把相关的数据实时发布到其它线程36。
[0046] 运动控制线程32主要负责设置机器人的初始位置姿态,同时实现针对运动单元动作的精细插补。在发送运动控制指令之后,闭环控制线程33以1ms为周期读取目前机器人各个运动关节的状态,在运动单元节没有到达控制指令所要求到达的位置时,闭环控制线程33会修正当前运动单元的位置姿态。
[0047] 为了保证运动控制的正常运行,实时系统中具有监控线程35负责在CAN 总线23空闲时读取机器人的运行姿态,同时读取各个运动单元上的传感器数据信息,以及控制板上的任务状态标志。例如,当运动单元温度过高时应停止运动,当包含错误信息时,需要根据错误的不同采用相关的错误处理函数进行机器人异常行为处理。
[0048] 图4显示了根据本发明中机器人混合系统的支撑框架RGMP的基本原理 (见:Qiang Yu,Hongxing Wei,Miao Liu,Tianmiao Wang:A novel multi-OS architecture for robot application[C].ROBIO 2011:2301-2306)。机器人混合系统支撑框架RGMP利用SMP处理器的特点将不同类型的(实时、非实时)外部设备,分类划归到不同的操作系统(实时系统Yuqix 17、非实时系统Linux 13)所运行的处理器核心,分别接管这些外部设备的设备中断,并通过建立各核心之间的协调通信,实现混合系统处理器资源的合理分配。
[0049] 在图4的基于双核处理器平台的一个实施例的中断资源分配图中,两个操作系统的内核即非实时系统Linux内核135(支撑非实时ROS应用节点11)与实时系统Yuqix内核175(支撑实时ROS应用节点15)利用共享内存43通信,并分别通过全局中断路由模块(GIC)45获得各自的外部设备14和18的中断,相应的操作系统完成对各自控制设备的独立中断响应。实时系统Yuqix内核175 一般连接的是实时设备18(一般是多个独立的设备),非实时系统Linux内核135 连接非实时设备14(一般是多个独立的设备),设备14和18的中断号分别通过配置的方式控制全局中断路由器模块(GIC)45将固定的中断号路由到相应的 CPU核(处理器核1或处理器核2)中。由于实时设备46的中断都被映射至实时操作系统Yuqix进行处理,因而采用本方法能有效地保证中断的响应的实时性。
[0050] 在RGMP中,实时系统Yuqix17和非实时系统Linux 13之间的底层通信通过处理器核心之间的共享内存来实现,并且将该通信过程映射为虚拟网络 VNET,在实时系统Yuqix17和非实时系统Linux13中分别创建虚拟网络设备,由他们各自的设备管理器统一管理。而非实时ROS应用节点11与实时ROS应用节点15之间的通信可以通过直接操作对应的虚拟网络设备来完成。在这种 VNET机制中,每建立一条通信链路即在实时系统Yuqix17和非实时系统 Linux13的共享内存池中创建一个动态循环队列。即由一个操作系统从内存池中分配一块内存,通过循环队列传递给另一个操作系统,而另一个操作系统在使用后释放回同一个内存池。两个操作系统之间通信的内容包括数据和状态。
[0051] 在本发明示例中,Yuqix是业界常见的开源操作系统(见【1】),支持C语言与C++两种编程语言,同时还支持BOOST库与高精度定时器,用户通过使用相关系统资源,可以根据不同的需求进行实时系统裁剪。Yuqix上集成了浮点运算库,XML-RPC协议,UIP协议栈等主流软件协议,用户可以通过自己编程,也可以通过调用机器人操作系统ROS的标准接口使用这些系统调用函数。
[0052] RTroscpp是业界常见的一个与操作系统平台无关的开发框架,它的作用是让程序员能够编写与操作系统无关的但是符合标准接口的ROS节点程序,它的作用是让用户开发的程序能够在多个实时系统中正常运行。大幅度提高了用户的开发效率,同时也增加了系统代码的安全性。程序员通过RTroscpp编写的程序可以直接在标准的ROS系统上运行。
[0053] 本发明的优点及有益效果
[0054] 本发明充分利用了多核处理器的架构与机器人系统应用的特点,提供了简便灵活的机器人应用框架,其优点包括:
[0055] --与机器人操作系统ROS可以进行无缝配合使用,完全符合ROS的网络化节点应用结构设计,本发明的提出是对ROS功能的良好补充;
[0056] --机器人操作系统ROS的应用程序资源可以大量得到应用,加速了机器人的整机设计速度;
[0057] --对操作系统的选择没有耦合性,可以适用于多种市面上广泛应用的实时操作系统、非实时操作系统(需支持ROS);
[0058] --本发明中系统实时部分与系统的非实时部分之间没有耦合,具有很好的模块化可替换性,因而提高了整个系统的可扩展性;
[0059] --本发明的提出,规范了机器人实时应用程序的设计,降低了系统复杂性,进而提高系统的可维护性。
[0060] 以上所述,仅为本发明中的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉该技术的人在本发明所揭露的技术范围内,可理解想到的变换或替换,都应涵盖在本发明的包含范围之内,因此,本发明的保护范围应该以权要求书的保护范围为准。
[0061] 参考文献:
[0062] 【1】http://rgmp.sourceforge.net/wiki/index.php/Main_Page.
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈