CN111745651B - 一种智能机器人操作系统结构及其运作方法 - Google Patents
一种智能机器人操作系统结构及其运作方法 Download PDFInfo
- Publication number
- CN111745651B CN111745651B CN202010545552.6A CN202010545552A CN111745651B CN 111745651 B CN111745651 B CN 111745651B CN 202010545552 A CN202010545552 A CN 202010545552A CN 111745651 B CN111745651 B CN 111745651B
- Authority
- CN
- China
- Prior art keywords
- real
- operating system
- time
- node
- kernel
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000011017 operating method Methods 0.000 title claims abstract description 7
- 238000000034 method Methods 0.000 claims abstract description 54
- 238000004891 communication Methods 0.000 claims abstract description 48
- 230000008569 process Effects 0.000 claims abstract description 34
- 230000006870 function Effects 0.000 claims description 25
- 230000015654 memory Effects 0.000 claims description 22
- 230000005059 dormancy Effects 0.000 claims description 3
- 230000003068 static effect Effects 0.000 claims description 3
- 208000025697 familial rhabdoid tumor Diseases 0.000 claims 1
- 238000010586 diagram Methods 0.000 description 8
- 238000004422 calculation algorithm Methods 0.000 description 7
- 230000003993 interaction Effects 0.000 description 3
- 101100016034 Nicotiana tabacum APIC gene Proteins 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 238000012805 post-processing Methods 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 238000012356 Product development Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000002054 transplantation Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/545—Interprogram communication where tasks reside in different layers, e.g. user- and kernel-space
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1602—Programme controls characterised by the control system, structure, architecture
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1656—Programme controls characterised by programming, planning systems for manipulators
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4812—Task transfer initiation or dispatching by interrupt, e.g. masked
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/544—Buffers; Shared memory; Pipes
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Robotics (AREA)
- Mechanical Engineering (AREA)
- Automation & Control Theory (AREA)
- Manipulator (AREA)
- Stored Programmes (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种智能机器人操作系统结构及其运作方法。智能机器人操作系统结构包括通用操作系统内核、实时操作系统内核以及处理器间中断接口。通用操作系统内核运行一通用操作系统,以执行非实时进程。实时操作系统内核运行一实时操作系统,以执行实时进程。处理器间中断接口连接于通用操作系统内核跟实时操作系统内核之间,用于支持非实时进程和实时进程之间的通信。本发明的IRT‑ROS智能机器人操作系统结构,允许Linux和RTERS操作系统分别执行非实时进程和实时进程;分别响应非实时设备中断请求和实时设备中断请求;支持非实时进程和实时进程之间通信;集成了Linux众多驱动,极大的减轻了驱动通用外部设备的工作量。
Description
技术领域
本发明涉及了一种智能机器人操作系统(IRT-ROS,Intelligence real-timerobot operating system)的技术领域,具体的是一种实现AMP架构的多核双操作系统的机器人操作系统及其运作方法。
背景技术
本部分的描述仅提供与本发明公开相关的背景信息,而不构成现有技术。
目前,国内的大多数工业机器人设计都是针对特定的场景、特定的功能与环境进行设计与开发。不同的机器人平台由于底层的接口不同,开发者往往需要根据用户的新需求去编写新的应用程序,这样做带来的维护成本较高,而且用户如果想要对机器人的功能做二次开发的难度也不小。
传统机器人产品研发过程中,所有软件都是基于专门的控制器和控制目标所编写的。如果在开发过程中改变了控制器等硬件设备,设计者就需要把实时操作系统移植到新的硬件设备上并更改控制算法。虽然现在的实时操作系统都支持跨平台,但是在实际应用中会产生不小的工作量。
因此,有必要提出一种IRT-ROS智能机器人操作系统来解决机器人控制需要同时满足控制算法的实时性及兼容多种硬件的需求,减少底层平台移植实时运动控制、通信算法的巨大工作量,统筹多模态人机交互与机器人行为控制。
发明内容
为了克服现有技术中的缺陷,本发明实施例提供了一种智能机器人操作系统结构及其运作方法,来解决机器人控制需要同时满足控制算法的实时性及兼容多种硬件的需求。
本申请实施例公开了:一种智能机器人操作系统结构。智能机器人操作系统结构包括通用操作系统内核、实时操作系统内核以及处理器间中断接口。通用操作系统内核,用于运行一通用操作系统,以执行非实时进程。实时操作系统内核,用于运行一实时操作系统,以执行实时进程。处理器间中断接口,连接于所述通用操作系统内核跟所述实时操作系统内核之间,用于支持非实时进程和实时进程之间的通信。
进一步地,所述智能机器人操作系统结构另包括一外部高级程序中断控制器(I/OAPIC,I/O Advanced Programmable Interrupt Controller);所述通用操作系统内核另包括一第一本地高级程序中断控制器(LAPIC,Local Advanced Programmable InterruptController),连接至所述外部高级程序中断控制器,用于透过所述外部高级程序中断控制器响应一非实时设备的中断请求;以及所述实时操作系统内核另包括一第二本地高级程序中断控制器,连接至所述外部高级程序中断控制器,用于透过所述外部高级程序中断控制器来响应一实时设备的中断请求。
进一步地,当连接至所述智能机器人操作系统结构的所有外部设备都是非实时设备时,所述智能机器人操作系统结构会在所述实时操作系统内核屏蔽来自所述实时设备的中断请求,让所述通用操作系统内核完全接管整条中断总线(IRQ Line,InterruptRequest Line);当连接至所述智能机器人操作系统结构的所有外部设备都是实时设备时,所述智能机器人操作系统结构会对所述外部高级程序中断控制器进行配置,让其采用静态分发的方式将中断请求(IRQ,Interrupt Request)静态发送到所述实时操作系统内核中;以及当所述中断线上同时有实时中断请求与非实时中断请求时,所述智能机器人操作系统结构会让所述中断总线上的所有中断请求全部路由到同一个操作系统内核中,其中该操作系统内核是所述通用操作系统内核或者所述实时操作系统内核。
进一步地,所述通用操作系统是Linux,以及所述实时操作系统是RTERS (Real-Time Executive for Robotic Systems)。
本申请实施例还公开了一种智能机器人操作系统的运行方法,智能机器人操作系统结构包括用于运行一通用操作系统的一通用操作系统内核以及用于运行一实时操作系统的一实时操作系统内核,运行方法包括以下步骤:智能机器人操作系统结构的RTROSCPP与ROS节点进行通信,并在所述通用操作系统内核和所述实时操作系统内核上分别运行ROS节点、核心服务、roslog话题;ROS节点间通过快速实时发布-订阅协议(Fast-RTPS)发布/订阅消息;以及在RTROSCPP实现roslog,将roslog作为所述智能机器人操作系统的标准输出,所有的ROS节点都可以通过调用ROS的标准log服务来输出ROS节点的信息。
进一步地,运行方法另包括以下步骤:在实时系统节点启动的时候,所述实时系统节点会通过虚拟网络共享内存(VNET shared memory)与运行于所述通用操作系统内核上的ROS节点通信。其中通信场景包括:当所述实时系统节点启动和停止时,需要向所述通用操作系统内核上的其他ROS节点发布状态消息;以及当所述实时系统节点与非实时系统节点通信时,发布/订阅话题,并交换消息。
进一步地,运行方法另包括RTERS虚拟设备驱动的步骤,包括以下子步骤:在所述通用操作系统下输出RTERS状态信息的字符设备管道驱动;以及在所述通用操作系统和所述实时操作系统间应用程序通信的虚拟网络共享内存驱动。
进一步地,运行方法另包括由RTROSCPP实现在RTERS中移植ROS的步骤,包括以下子步骤:roscpp负责向应用层提供针对ROS标准节点通信接口,包括标准的节点处理器(NodeHandler)对象构造函数与相关功能函数,节点的消息发布器/订阅器对象(Publisher/Subscriber Object),节点初始化,定时休眠等标准ROS函数接口;从基于C++语言编写的Xmlrpc标准协议代码中移植产生Xmlrpc,使得实时节点能够建立起基于Xmlrpc通信协议的网络服务节点;以及Network将roscpp与Xmlrpc两者相结合所编写的一组通用接口函数,让Xmlrpc与roscpp两个部分以统一的函数调用方式使用标准网络通讯接口。
进一步地,所述ROS节点是用来管理在所述智能机器人操作系统上运行的节点,包括节点的启动注册、节点状态、节点之间的通讯请求、节点消息路由;其中所述ROS节点使用XML-RPC协议与其他ROS节点通信。
进一步地,所述通用操作系统是Linux,以及所述实时操作系统是RTERS(Real-Time Executive for Robotic Systems)。
借由以上的技术方案,本发明的有益效果如下:基于AMP(Asymmetric Multi-Processing)将整个硬件平台资源分核分区,并且同时又支持子系统间稳定可靠通信,两个子系统其中一个为GPOS(General-Purpose OS)类型的Linux,另一个为RTOS(real-timeOS)类型的RTERS(Real-Time Executive for Robotic Systems)。本发明提出的IRT-ROS智能机器人操作系统结构中,允许Linux和RTERS操作系统分别执行非实时进程和实时进程;分别响应非实时设备中断请求和实时设备中断请求;支持非实时进程和实时进程之间通信;集成了Linux众多驱动,极大的减轻了驱动通用外部设备的工作量。
为让本发明的上述和其他目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附图式,作详细说明如下。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例中的一种智能机器人操作系统的结构示意图。
图2是本发明实施例中的智能机器人操作系统中的ROS节点通信框架示意图。
图3是本发明实施例中的RTROSCPP类间关系及数据通信的示意图。
图4是本发明实施例中的一种智能机器人操作系统的启动流程的示意图。
图5是本发明实施例中的一种智能机器人操作系统的运行方法的流程图。
图6是本发明实施例中的RTERS虚拟设备驱动的流程图。
图7是本发明实施例中的由RTROSCPP实现在RTERS中移植ROS的流程图。
以上附图的附图标记:10、智能机器人操作系统结构;110、通用操作系统内核;111、第一本地高级程序中断控制器;120、实时操作系统内核;121、第二本地高级程序中断控制器;130、处理器间中断接口;140、外部高级程序中断控制器;150、虚拟网络共享内存;20、非实时设备;30、实时设备;S510、S520、S530、S540、S610、S620、S710、S720、S730、步骤。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,在本发明的描述中,术语“第一”、“第二”等仅用于描述目的和区别类似的对象,两者之间并不存在先后顺序,也不能理解为指示或暗示相对重要性。此外,在本发明的描述中,除非另有说明,“多个”的含义是两个或两个以上。
请参考图1。图1是本发明实施例中的一种智能机器人操作系统的结构示意图。智能机器人操作系统结构10包括通用操作系统内核110、实时操作系统内核120以及处理器间中断接口130。通用操作系统内核110用于运行一通用操作系统,以执行非实时进程。实时操作系统内核120用于运行一实时操作系统,以执行实时进程。处理器间中断接口130,连接于通用操作系统内核110跟实时操作系统内核120之间,用于支持非实时进程和实时进程之间的通信。
值得注意的是,智能机器人操作系统结构10中实时进程对实时操作系统内核120及算法执行的时间有严格的时间截点,包括:闭环控制、插补解算、电流控制、位置控制。非实时进程对通用操作系统内核110及算法执行的时间没有严格的时间截点,包括:语音识别、三维建模、物体识别、建图导航。
通用操作系统内核110和实时操作系统内核120之间通过处理器间中断接口130通信,当实时操作系统内核120要给通用操作系统内核110发消息时,其通过处理器间中断接口130发起中断请求,通用操作系统内核110得到中断信号后处理。当通用操作系统内核110要给实时操作系统内核120发消息时,其通过处理器间中断接口130发起中断请求,实时操作系统内核120得到中断信号后处理。实时操作系统内核120与通用操作系统内核110之间需要交互的消息被写入虚拟网络共享内存(VENT shared memory,Virtual Networkshared memory)150。两个核间通信首先由一个核发起IPI中断,告诉对方核到虚拟网络共享内存150读取数据,然后由另一个核去虚拟网络共享内存150读取数据。
于一实施例中,智能的机器人操作系统结构10可另包括一外部高级程序中断控制器(I/O APIC,I/O Advanced Programmable Interrupt Controller)140。通用操作系统内核110另包括一第一本地高级程序中断控制器(LAPIC,Local Advanced ProgrammableInterrupt Controller)111,连接至外部高级程序中断控制器140,用于透过外部高级程序中断控制器140响应一非实时设备20的中断请求。实时操作系统内核120另包括一第二本地高级程序中断控制器121,连接至外部高级程序中断控制器140,用于透过外部高级程序中断控制器140来响应一实时设备30的中断请求。
智能的机器人操作系统结构10中,实时ROS节点通过实时总线与实时设备30相连接,根据机器人控制需求的不同运行不同功能的ROS实时节点,包括位置闭环控制、电流控制、插补解算等等。标准ROS节点部分运行通过各种接口与机器人上的各种摄像头或者传感器相连接,以采集信息并进行物体识别、建图导航等功能。实时节点与非实时节点能够通过交互完成协同功能。为了能够充分发挥多核双系统特性,引入外部高级程序中断控制器140来控制外部设备,外部高级程序中断控制器140是一个多核CPU的中断路由器。每个内核都有自己的本地高级程序中断控制器111、121,所有的本地高级程序中断控制器111、121都连接到外部高级程序中断控制器140,形成一个多APIC的系统。外部高级程序中断控制器140的主要作用就是为多个内核分配外围设备和内核之间的中断请求。
应注意的是,当几个外部设备共享一条中断总线(IRQ Line,Interrupt RequestLine)的时候,智能机器人操作系统结构10会针对不同的情况选用如下策略:1)当连接至智能机器人操作系统结构10的所有外部设备都是非实时设备20时,智能机器人操作系统结构10会在实时操作系统内核120屏蔽来自实时设备30的中断请求,让通用操作系统内核110完全接管整条中断总线;2)当连接至智能机器人操作系统结构10的所有外部设备都是实时设备30时,智能机器人操作系统结构10会对外部高级程序中断控制器140进行配置,让其采用静态分发的方式将中断请求(IRQ,Interrupt Request)静态发送到实时操作系统内核120中;以及3)当中断总线上同时有实时中断请求与非实时中断请求时,智能机器人操作系统结构10会让所述中断线上的所有中断请求全部路由到同一个操作系统内核中,其中该操作系统内核可以是通用操作系统内核110或者实时操作系统内核120。
于一实施例中,通用操作系统是Linux,而实时操作系统是RTERS(Real-TimeExecutive for Robotic Systems)。但此仅为范例说明,并非本发明的限制条件。
请参考图2。图2是本发明实施例中的智能机器人操作系统中的ROS节点(Node)通信框架示意图。于本实施例中,描述在RTERS中实现的RTROSCPP的ROS节点通信框架。IRT-ROS机器人操作系统在RTERS中实现RTROSCPP,使得RTERS实时系统中可方便调用ROS中封装的机器人控制算法。1)用户在RTERS上能够通过使用标准的ROS编程接口,编写出符合用户要求且具有实时性的ROS节点;2)运行在RTERS上的ROS实时节点能够与标准ROS节点通过快速实时发布-订阅协议(Fast-RTPS,Fast Real-time Publish/Subscribe protocol)进行直接通信,而不需代理节点转发数据。
在RTERS实时操作系统中,对于网络通信的操作都会转化为对于系统文件描述符(file descriptor)的操作。智能机器人操作系统的ROS节点通讯分为三种场景:标准ROS节点间的通信、实时ROS节点之间的通信、标准ROS节点与实时ROS节点之间的通信。智能机器人操作系统的设计目标是让所有ROS节点间的所有通信均使用ROS及RTROSCPP完成。如图2所示,IRT-ROS机器人操作系统的实时ROS节点和非实时ROS节点通过关注话题(Topic)建立彼此间的联系,通过发布器(Publisher)发布话题(Topic),通过订阅器(Subscriber)订阅话题(Topic),由数据编写器(Data Writer)完成向话题(Topic)中写入消息,由数据读取器(Data Reader)完成从话题(Topic)中读取消息。
标准ROS节点间的通讯包括两个部分:一部分是XML-RPC通信协议,另一部分是由roscpp与roscpplight核心功能包封装的通信接口函数。这两部分是相互独立的,在RTERS上实现Fast-RTPS通信协议,通过将XML-RPC的核心功能融合到RTROSCPP中,实现标准化通信接口并且直接以系统调用的方式在实时系统中运行。并且RTERS支持消息定义脚本(message definition script)直接生成C++头文件代码(header file code)。IRT-ROS的实时部分消息定义也可在标准ROS部分进行的,然后将产生的C++头文件代码放置到实时系统部分直接使用。
请参考图3。图3是本发明实施例中的RTROSCPP类间关系及数据通信的示意图。实时ROS节点与标准ROS节点的通信方式与标准ROS节点之间的通讯方式类似:1)实时节点通过定义一个节点处理器(NodeHandler)类型的节点对象(node obiect)与运行在服务器的主节点(main node)进行通信,其主要功能是在服务器注册节点名称(node name)、网络地址(network address)、域名(Domain name)、通信端口(communication port)等必要的网络信息。2)实时节点通过建立发布器对象(Publisher object)的方式建立服务,向其它节点提供连接服务。任何在相同域(Domain)的节点,都能够申请对实时节点的连接,从而获得实时节点特定的话题(Topic)消息。3)实时节点还可以通过建立订阅器对象(SubscriberObject)的方式,来建立消息接收客户端(message receiving client),以网络插座(socket)阻塞的方式接收从其他外部节点发送来的指定话题(Topic)消息。
ROS节点间的所有话题(Topic)消息通信都是符合XML-RPC协议的。所有的消息都需要在发送前以符合XML-RPC消息格式的方式进行打包。在接受消息的时候以相同的协议进行解包,使得节点间的数据通信变得更加容易管理,降低了应用程序开发人员的负担,也增加了程序的可移植性。
请参考图4。图4是本发明实施例中的一种智能机器人操作系统的启动流程的示意图。智能机器人操作系统的启动流程可分为三个阶段:第一阶段为完成Linux启动,第二阶段为完成HRGMP引导,第三阶段为完成启动RTERS启动,智能机器人操作系统启动完毕,整个启动过程如图4所示。
于第一阶段中,系统上电,Linux系统启动,Linux将会初始化系统的所有资源,这时所有的硬件资源都会被Linux系统接管,包括所有的CPU与内存以及外围设备,Linux将会完成对于所有设备的初始化。当然Linux操作系统启动还包括Linux内核、软件库与用户交互软件等。
于第二阶段中,启动IRT-ROS的gpos.ko模块。gpos.ko模块作为IRT-ROS的核心模块,存在于IRT-ROS软件包的bin目录下,启动混合操作系统,首先启动gpos模块,它的作用是从Linux中得到实时系统所需要的所有硬件资源。因为在系统上电后,所有的硬件资源都已经交由Linux管理,运行新的实时操作系统RTERS,就必须从Linux中分离RTERS需要的资源,然后再把这些资源交由RTERS实时系统管理。gpos在Linux内核中使用一段独立的物理地址连续的内存(physical address-continuous memory),Linux将这段内存标记成已使用。为了能够让实时系统与非实时系统进行通讯,开辟一小段虚拟网络共享内存,这一小段虚拟网络共享内存称之为IRT-ROS Vnet。IRT-ROS Vnet可以根据需要访问串行设备、块设备、管道、以太网端口等等。除了获得内存,gpos还将调用cpu_down()函数禁用某几个CPU,将本来在其上运行的任务和中断都合并到其它CPU,而且以后Linux也不将新的任务交给这些CPU运行。Linux会继续占用剩余的CPU运行程序。
于第三阶段中,启动RTERS实时操作系统内核,将移植好的实时操作系统内核编译成img镜像(image),在启动时用IRT-ROS的rgmp_mount工具挂载相应的内核镜像(kernelimage),就可以将RTERS实时操作系统加载到独立的内存中,这段内存将会交由实时系统管理。RTERS实时操作系统加载将要控制的硬件驱动。至此,整个IRT-ROS的启动完成。
请参考图5。图5是本发明实施例中的一种智能机器人操作系统的运行方法的流程图。
运作方法包括以下步骤:
步骤S510:智能机器人操作系统结构的RTROSCPP与ROS节点(Node)进行通信,并在所述通用操作系统内核和所述实时操作系统内核上分别运行ROS节点、核心服务、roslog话题。
步骤S520:ROS节点间通过快速实时发布-订阅协议(Fast-RTPS)发布/订阅消息。
步骤S530:在RTROSCPP实现roslog,将roslog作为所述智能机器人操作系统的标准输出,所有的ROS节点都可以通过调用ROS的标准log服务输出节点的信息。
步骤S540:在实时系统节点启动的时候,所述实时系统节点会通过虚拟网络共享内存与运行于所述通用操作系统内核上的ROS节点通信。
请注意,于步骤S540中,通信场景包括:当所述实时系统节点启动和停止时,需要向所述通用操作系统内核上的其他ROS节点发布状态消息;以及当所述实时系统节点与非实时系统节点通信时,发布/订阅主题,并交换消息。
请注意,ROS节点是用来管理在所述智能机器人操作系统上运行的节点,包括节点的启动注册、节点状态、节点之间的通讯请求、节点消息路由;其中所述ROS节点使用XML-RPC协议与其他ROS节点通信。
于一实施例中,运行方法另包括RTERS虚拟设备驱动的步骤以及由RTROSCPP实现在RTERS中移植ROS的步骤。
请参考图6。图6是本发明实施例中的RTERS虚拟设备驱动的流程图。RTERS虚拟设备驱动的步骤包括以下步骤:
步骤S610:在所述通用操作系统下输出RTERS状态信息的字符设备管道驱动。
步骤S620:在所述通用操作系统和所述实时操作系统间应用程序通信的虚拟网络共享内存驱动。
请参考图7。图7是本发明实施例中的由RTROSCPP实现在RTERS中移植ROS的流程图。由RTROSCPP实现在RTERS中移植ROS的方法包括以下步骤:
步骤S710:roscpp负责向应用层提供针对ROS标准节点通信接口,包括标准的节点处理器(NodeHandler)对象构造函数与相关功能函数,节点的消息发布器/订阅器对象(Publisher/Subscriber Obiect),节点初始化,定时休眠等标准ROS函数接口。
步骤S720:从基于C++语言编写的Xmlrpc标准协议代码中移植产生Xmlrpc,使得实时节点能够建立起基于Xmlrpc通信协议的网络服务节点。
步骤S730:Network将roscpp与Xmlrpc两者相结合所编写的一组通用接口函数,让Xmlrpc与roscpp两个部分以统一的函数调用方式使用标准网络通讯接口。
借由以上的技术方案,本发明的有益效果如下:基于AMP(Asymmetric Multi-Processing)将整个硬件平台资源分核分区,并且同时又支持子系统间稳定可靠通信,两个子系统其中一个为GPOS(General-Purpose OS)类型的Linux,另一个为RTOS(real-timeOS)类型的RTERS(Real-Time Executive for Robotic Systems)。本发明提出的IRT-ROS智能机器人操作系统结构中,允许Linux和RTERS操作系统分别执行非实时进程和实时进程;分别响应非实时设备中断请求和实时设备中断请求;支持非实时进程和实时进程之间通信;集成了Linux众多驱动,极大的减轻了驱动通用外部设备的工作量。
本发明中应用了具体实施例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (6)
1.一种智能机器人操作系统结构的运行方法,其特征在于,所述智能机器人操作系统结构包括用于运行一通用操作系统以执行非实时进程的一通用操作系统内核、用于运行一实时操作系统以执行实时进程的一实时操作系统、用于支持所述非实时进程和所述实时进程之间的通信的一内核处理器间中断接口以及一外部高级程序中断控制器,所述运行方法包括以下步骤:
将 所述通用操作系统内核的一第一本地高级程序中断控制器连接至所述外部高级程序中断控制器,并 透过所述外部高级程序中断控制器响应非实时设备的中断请求;
将 所述实时操作系统内核的一第二本地高级程序中断控制器连接至所述外部高级程序中断控制器,并 透过所述外部高级程序中断控制器来响应实时设备的中断请求;
当连接至所述智能机器人操作系统结构的所有外部设备都是非实时设备时,所述智能机器人操作系统结构会在所述实时操作系统内核屏蔽来自所述实时设备的中断请求,让所述通用操作系统内核完全接管一中断总线;
当连接至所述智能机器人操作系统结构的所有外部设备都是实时设备时,所述智能机器人操作系统结构会对所述外部高级程序中断控制器进行配置,让其采用静态分发的方式将中断请求静态发送到所述实时操作系统内核中;
当所述中断总线上同时有实时中断请求与非实时中断请求时,所述智能机器人操作系统结构会让所述中断总线上的所有中断请求全部路由到同一个操作系统内核中,其中该操作系统内核是所述通用操作系统内核或者所述实时操作系统内核;
所述智能机器人操作系统结构的RTROSCPP与ROS节点(Node)进行通信,并在所述通用操作系统内核和所述实时操作系统内核上分别运行ROS节点、核心服务、roslog话题;
ROS节点间通过快速实时发布-订阅协议(Fast-RTPS,Fast Real-TimePublish/Subscribe protocol)发布/订阅消息;以及
在RTROSCPP实现roslog,将roslog作为所述智能机器人操作系统的标准输出,所有的ROS节点都可以通过调用ROS的标准log服务来输出ROS节点的信息。
2.如权利请求1所述的智能机器人操作系统结构的运行方法,其特征在于,另包括以下步骤:
在实时系统节点启动的时候,所述实时系统节点会通过虚拟网络共享内存(VNETshared memory,Virtual network shared memory)与运行于所述通用操作系统内核上的ROS节点通信;
其中通信场景包括:当所述实时系统节点启动和停止时,需要向所述通用操作系统内核上的其他ROS节点发布状态消息;以及当所述实时系统节点与非实时系统节点通信时,发布/订阅话题(Topic),并交换消息。
3.如权利请求2所述的智能机器人操作系统结构的运行方法,其特征在于,另包括以下步骤:
RTERS虚拟设备驱动,包括以下子步骤:
在所述通用操作系统下输出RTERS状态信息的字符设备管道驱动;以及
在所述通用操作系统和所述实时操作系统间应用程序通信的虚拟网络共享内存驱动。
4.如权利请求1所述的智能机器人操作系统结构的运行方法,其特征在于,另包括以下步骤:
由RTROSCPP实现在RTERS中移植ROS,包括以下子步骤:
roscpp负责向应用层提供针对ROS标准节点通信接口,包括标准的节点处理器(NodeHandler)对象构造函数与相关功能函数,节点的消息发布器/订阅器对象(Publisher/Subscriber object),节点初始化,定时休眠等标准ROS函数接口;
从基于C++语言编写的Xmlrpc标准协议代码中移植产生Xmlrpc,使得实时节点能够建立起基于Xmlrpc通信协议的网络服务节点;以及
Network将roscpp与Xmlrpc两者相结合所编写的一组通用接口函数,让Xmlrpc与roscpp两个部分以统一的函数调用方式使用标准网络通讯接口。
5.如权利请求1所述的智能机器人操作系统结构的运行方法,其特征在于,所述ROS节点是用于管理在所述智能机器人操作系统上运行的节点,包括节点的启动注册、节点状态、节点之间的通讯请求、节点消息路由;其中所述ROS节点使用XML-RPC协议与其他ROS节点通信。
6.如权利请求1所述的智能机器人操作系统结构的运行方法,其特征在于,所述通用操作系统是Linux,以及所述实时操作系统是RTERS(Real-Time Executive for RoboticSystems)。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010545552.6A CN111745651B (zh) | 2020-06-15 | 2020-06-15 | 一种智能机器人操作系统结构及其运作方法 |
US17/016,396 US11216319B2 (en) | 2020-06-15 | 2020-09-10 | Intelligent real-time robot operating system architecture and operation method thereof |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010545552.6A CN111745651B (zh) | 2020-06-15 | 2020-06-15 | 一种智能机器人操作系统结构及其运作方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111745651A CN111745651A (zh) | 2020-10-09 |
CN111745651B true CN111745651B (zh) | 2022-04-05 |
Family
ID=72675221
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010545552.6A Active CN111745651B (zh) | 2020-06-15 | 2020-06-15 | 一种智能机器人操作系统结构及其运作方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US11216319B2 (zh) |
CN (1) | CN111745651B (zh) |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020220245A1 (en) * | 2019-04-30 | 2020-11-05 | Dow Global Technologies Llc | Ethylene/propylene/nonconjugated diene interpolymer composition |
CN112445728B (zh) * | 2020-11-30 | 2023-07-21 | 中科院软件研究所南京软件技术研究院 | 一种支持多种硬件接口的机器人开发板ros通讯系统 |
CN112559190B (zh) * | 2020-12-23 | 2022-01-11 | 科东(广州)软件科技有限公司 | 异构系统间的资源分配方法、系统、装置、设备及介质 |
CN112732183B (zh) * | 2020-12-30 | 2022-01-11 | 科东(广州)软件科技有限公司 | 异构系统存储设备的访问方法、装置、设备及存储介质 |
CN112667420B (zh) * | 2021-01-18 | 2022-03-25 | 科东(广州)软件科技有限公司 | 实现异构系统内部通信的方法、装置、设备及存储介质 |
CN112882987A (zh) * | 2021-03-12 | 2021-06-01 | 北京小米移动软件有限公司 | 多核通信方法、装置、电子设备及存储介质 |
CN113391821B (zh) * | 2021-05-11 | 2023-03-10 | 中国电力科学研究院有限公司 | 一种非对称多处理器嵌入式操作系统 |
CN113867988A (zh) * | 2021-09-29 | 2021-12-31 | 展讯通信(深圳)有限公司 | 通用远程通信调用架构及方法 |
CN113664839B (zh) * | 2021-10-25 | 2022-01-18 | 武汉瀚迈科技有限公司 | 一种非实时与实时混合的工业机器人插补计算方法 |
CN114237221A (zh) * | 2021-11-16 | 2022-03-25 | 山东大学 | 基于中心映射的低延迟组合体机器人运动控制系统及方法 |
CN114167719A (zh) * | 2021-11-30 | 2022-03-11 | 广东亿嘉和科技有限公司 | 一种机器人实时控制系统 |
CN114443428B (zh) * | 2022-01-19 | 2024-08-30 | 山东新一代信息产业技术研究院有限公司 | 一种基于iros的程序内部运行状态监测方法和装置 |
CN115473863B (zh) * | 2022-07-25 | 2023-08-08 | 山东新一代信息产业技术研究院有限公司 | 一种ros与iros的消息桥接方法及系统 |
CN115958600A (zh) * | 2022-12-28 | 2023-04-14 | 上海新时达机器人有限公司 | 一种机器人控制系统 |
CN116244229B (zh) * | 2023-05-12 | 2023-08-04 | 苏州浪潮智能科技有限公司 | 硬件控制器的访问方法、装置、存储介质和电子设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2009095812A1 (en) * | 2008-01-28 | 2009-08-06 | Nxp B.V. | Dual operating systems on a single processor |
CN108136577A (zh) * | 2015-09-21 | 2018-06-08 | 株式会社虹之机器 | 通用操作系统联动式实时机器人控制系统及利用其的实时设备控制系统 |
CN109344112A (zh) * | 2014-07-08 | 2019-02-15 | 北京航空航天大学 | 一种基于多核处理器架构的机器人混合系统应用框架 |
CN109558174A (zh) * | 2018-11-28 | 2019-04-02 | 江苏艾萨克机器人股份有限公司 | 基于zynq双核处理器的rtos-gpos双操作系统机器人控制器 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6957432B2 (en) * | 2000-03-21 | 2005-10-18 | Microsoft Corporation | Real-time scheduler |
US20050251806A1 (en) * | 2004-05-10 | 2005-11-10 | Auslander Marc A | Enhancement of real-time operating system functionality using a hypervisor |
US7730248B2 (en) * | 2007-12-13 | 2010-06-01 | Texas Instruments Incorporated | Interrupt morphing and configuration, circuits, systems and processes |
WO2013147817A1 (en) * | 2012-03-29 | 2013-10-03 | Intel Corporation | Architecture and method for managing interrupts in a virtualized environment |
WO2016004587A1 (zh) * | 2014-07-08 | 2016-01-14 | 北京航空航天大学 | 一种基于多核处理器架构的机器人混合系统应用框架 |
WO2019084793A1 (en) * | 2017-10-31 | 2019-05-09 | Nokia Shanghai Bell Co., Ltd. | A method, apparatus and system for real-time virtual network function orchestration |
-
2020
- 2020-06-15 CN CN202010545552.6A patent/CN111745651B/zh active Active
- 2020-09-10 US US17/016,396 patent/US11216319B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2009095812A1 (en) * | 2008-01-28 | 2009-08-06 | Nxp B.V. | Dual operating systems on a single processor |
CN109344112A (zh) * | 2014-07-08 | 2019-02-15 | 北京航空航天大学 | 一种基于多核处理器架构的机器人混合系统应用框架 |
CN108136577A (zh) * | 2015-09-21 | 2018-06-08 | 株式会社虹之机器 | 通用操作系统联动式实时机器人控制系统及利用其的实时设备控制系统 |
CN109558174A (zh) * | 2018-11-28 | 2019-04-02 | 江苏艾萨克机器人股份有限公司 | 基于zynq双核处理器的rtos-gpos双操作系统机器人控制器 |
Non-Patent Citations (3)
Title |
---|
A Lightweight Message-based Inter-Component Communication Infrastructure;Tobias Simon等;《2013 Fifth International Conference on Computational Intelligence》;20130801;第145-152页 * |
Hongxing Wei等.RGMP-ROS: a Real-time ROS Architecture of Hybrid RTOS and GPOS on Multi-core Processor.《2014 IEEE International Conference on Robotics & Automation》.2014,第2482-2487页. * |
RGMP-ROS: a Real-time ROS Architecture of Hybrid RTOS and GPOS on Multi-core Processor;Hongxing Wei等;《2014 IEEE International Conference on Robotics & Automation》;20140929;第2482-2487页 * |
Also Published As
Publication number | Publication date |
---|---|
US20200409774A1 (en) | 2020-12-31 |
US11216319B2 (en) | 2022-01-04 |
CN111745651A (zh) | 2020-10-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111745651B (zh) | 一种智能机器人操作系统结构及其运作方法 | |
US10265848B2 (en) | Robotic hybrid system application framework based on multi-core processor architecture | |
CN110620712B (zh) | Window平台的实时EtherCAT主站实现方法 | |
CN110609730B (zh) | 一种实现虚拟处理器间中断透传的方法及设备 | |
WO2017177695A1 (zh) | 一种数控系统中应用的开发与集成方法及系统 | |
CN113641413B (zh) | 目标模型加载更新方法及装置、可读介质和电子设备 | |
CN110658751B (zh) | 一种EtherCAT现场总线控制系统的实现方法 | |
CN112166428A (zh) | 用于系统的基于事件的模拟的方法 | |
WO2024140416A1 (zh) | 一种工业控制程序开发平台及方法 | |
US20230229497A1 (en) | Transparent and remote kernel execution in a heterogeneous computing system | |
CN116932130A (zh) | 一种基于OpenStack的仿真实验环境部署方法 | |
US7953916B2 (en) | Dynamic, local retriggered interrupt routing discovery method | |
CN117519908B (zh) | 一种虚拟机热迁移方法、计算机设备及介质 | |
CN113296979B (zh) | 一种虚幻引擎与外部程序的数据通信方法 | |
CN113448650A (zh) | 直播功能插件加载方法、装置、设备及存储介质 | |
WO2021223744A1 (zh) | 实现热迁移的方法、芯片、板卡和存储介质 | |
JP2001290665A (ja) | プロセッサシステム | |
CN116954830A (zh) | jailhouse下使虚拟机实现msi/x中断的方法 | |
CN114564241B (zh) | 硬件设备的访问方法、装置、计算机设备和存储介质 | |
US10635625B2 (en) | Plug connector component, plug connector, plug connector system and method for assembling and operating a plug connector | |
CN109962788B (zh) | 多控制器调度方法、装置和系统及计算机可读存储介质 | |
CN102004667A (zh) | 基于Linux的SOPC软硬件协同工作系统 | |
CN111195919A (zh) | 一种机器人示教平台及其架构方法 | |
CN118331687B (zh) | 用户态半虚拟化数据路径加速方法、设备、集群以及介质 | |
CN113176928B (zh) | 一种异构虚拟机的运行方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20221014 Address after: Room 316, Building 3, Zone C, Intelligent Science Park, No. 3963, Susong Road, Hefei Economic and Technological Development Zone, Anhui Province, 230051 Patentee after: Hefei Hagong Xuanyuan Intelligent Technology Co.,Ltd. Address before: 230000 Intelligent Technology Park 100m north of the intersection of Susong road and Guanhai Road, Shushan District, Hefei City, Anhui Province Patentee before: HRG INTERNATIONAL INSTITUTE FOR RESEARCH & INNOVATION |