CN106444490A - 基于嵌入式实时操作系统的机器人操作系统 - Google Patents
基于嵌入式实时操作系统的机器人操作系统 Download PDFInfo
- Publication number
- CN106444490A CN106444490A CN201610815926.5A CN201610815926A CN106444490A CN 106444490 A CN106444490 A CN 106444490A CN 201610815926 A CN201610815926 A CN 201610815926A CN 106444490 A CN106444490 A CN 106444490A
- Authority
- CN
- China
- Prior art keywords
- operating system
- module
- embedded
- robot
- ros
- 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.)
- Pending
Links
- 238000004891 communication Methods 0.000 claims abstract description 52
- 238000000034 method Methods 0.000 claims description 25
- 230000006870 function Effects 0.000 claims description 21
- 230000008569 process Effects 0.000 claims description 16
- 230000026676 system process Effects 0.000 claims description 7
- 230000009471 action Effects 0.000 claims description 6
- 230000003993 interaction Effects 0.000 claims description 4
- 230000006378 damage Effects 0.000 claims description 3
- 238000005538 encapsulation Methods 0.000 claims 2
- 230000004044 response Effects 0.000 abstract description 4
- 238000004806 packaging method and process Methods 0.000 abstract 1
- 230000005540 biological transmission Effects 0.000 description 5
- 238000012544 monitoring process Methods 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 239000000203 mixture Substances 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 2
- 230000003542 behavioural effect Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 239000008280 blood Substances 0.000 description 1
- 210000004369 blood Anatomy 0.000 description 1
- 238000005314 correlation function Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 239000004744 fabric Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/04—Programme control other than numerical control, i.e. in sequence controllers or logic controllers
- G05B19/042—Programme control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
- G05B19/0423—Input/output
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/20—Pc systems
- G05B2219/25—Pc structure of the system
- G05B2219/25257—Microcontroller
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Automation & Control Theory (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明提供了一种基于嵌入式实时操作系统的机器人操作系统,其包括用于对嵌入式操作系统相关接口进行封装的操作系统兼容层模块、用于与原生ROS的节点间通讯的核心通信模块、用于为在此嵌入式节点上的应用构件提供运行支撑的应用层处理模块。本发明具有对外部中断的实时响应能力,满足机器人中控制和通讯的实时性需求,所需要的系统硬件资源少,能够使ROS软件系统直接运行在机器人资源受限的小型传感器和执行器等节点之上,具有良好的扩展性和通用性。
Description
技术领域
本发明涉及一种机器人技术,具体地,涉及一种基于嵌入式实时操作系统的机器人操作系统。
背景技术
机器人系统由执行机构、驱动装置、检测装置和控制系统和复杂机械以及后台的决策系统组成,所有设备通过相互协同和相互影响,共同决定机器人的功能和行为特征。机器人领域快速发展和日益复杂,对机器人软件模块化和代码复用的需求越来越强烈。同时,机器人系统越来越多的运行在多个不同的异构的硬件节点上,各个传感器和执行器由不同的计算机控制,运行进程节点之间需要相互实时可靠的交换信息。为了满足机器人软件日益复杂的需求,许多机器人软件开发平台应运而生。
机器人软件平台当前最为活跃的是机器人操作系统(Robot Operating System,ROS)项目。ROS运行于基于Linux内核的Ubuntu(乌班图)本地操作系统之上,由通信基础设施、机器人相关的软件包、开发和运行工具集等组成,能够为机器人应用开发提供驱动程序、硬件抽象、资源管理、通信管理、实用工具等类似操作系统的功能。ROS可看成使用ROS特定消息连接的多个节点组成的系统。目前,ROS包含了2000多个针对不同机器人平台的常用软件节点包,已经应用于上百种地面、空中、水面和水下无人系统,成为机器人应用软件平台的事实标准。
ROS本身集成了实时的代码,但是由于运行在本地端的分时Linux操作系统上的原因,ROS不再具有实时性,无法满足机器人运动的实时控制的需求。另外,而机器人系统中的传感器节点、控制器节点等通常使用小型的嵌入式芯片和嵌入式实时操作系统,并不支持复杂的对系统资源要求较高的Linux操作系统,因此ROS软件框架不能直接运行在嵌入式机器人节点之上。
发明内容
针对现有技术中的缺陷,本发明的目的是提供一种基于嵌入式实时操作系统的机器人操作系统,其涉及的嵌入式ROS软件系统基于嵌入式实时操作系统,具有对外部中断的实时响应能力,满足机器人中控制和通讯的实时性需求,此系统既拥有ROS的通讯框架和应用程序构件,又解决了基于Linux操作系统的ROS的非实时性问题;其涉及的嵌入式ROS软件系统不依赖于Linux操作系统,不需要python解释器,不使用面向对象的C++语言,ROS软件框架直接运行在任意一款嵌入式实时操作系统之上,基于C语言开发,对系统资源需求量极低,这样ROS软件系统能直接运行在机器人的资源受限的小型传感器和执行器等节点之上;其涉及的嵌入式ROS软件系统兼容原生ROS的节点通讯协议,支持远程过程调用通信和数据发布订阅通信,能够和在Linux操作系统上运行的原生ROS节点互联互通。
根据本发明的一个方面,提供一种基于嵌入式实时操作系统的机器人操作系统,其特征在于,其包括:
操作系统兼容层模块,用于对嵌入式操作系统相关接口进行封装;
核心通信模块,用于与原生ROS的节点间通讯;
应用层处理模块,用于为在此嵌入式节点上的应用构件提供运行支撑。
优选地,所述操作系统兼容层模块包括:
操作系统内存操作模块,用于对操作系统内存空间申请、释放、堆栈区域管理等功能进行封装;
操作系统进程管理模块,用于对操作系统进程创建、销毁、进程间通信、同步等功能进行封装;
网络协议栈通信模块,用于对网络通信创建、连接、监听、发送、接收、关闭等功能进行封装。
优选地,所述核心通信模块包括:
核心管理模块,用于对本框架启动后的系统资源、网络连接、通信时序等进行统一管理调度;
XMLRPC(XML是可扩展标记语言,RPC是Remote Procedure Call,“远程过程调用”)通信模块,用于对XMLRPC协议的远程过程调用进行协议解析和动作执行;
TCPROS(TCP是Transmission Control Protocol传输控制协议)通信模块,用于对TCPROS协议的解析和动作执行。
优选地,所述应用层处理模块包括:
节点管理模块,用于对ROS计算网络中的节点信息进行管理,主要包括本地节点信息管理和远端节点信息管理。
消息句柄管理模块,用于调用所述TCPROS通信模块进行数据的交互;
数据类型解析模块,可以支持原生数据类型和用户自定义数据类型。
与现有技术相比,本发明具有如下的有益效果:一、满足了系统实时性的需求:机器人的很多处理和交互必须在一定时限内完成,有严格的时间要求,而原生的基于Linux操作系统的ROS不能满足实时性。本发明涉及的嵌入式ROS软件系统基于嵌入式实时操作系统,具有对外部中断的实时响应能力,满足机器人中控制和通讯的实时性需求;二、需要的系统硬件资源少:本发明涉及的嵌入式ROS软件系统不需要python解释器,不使用面向对象的C++语言,直接运行在嵌入式操作系统之上,基于C语言开发,对系统资源需求量低;三、具有良好的扩展性和通用性:本发明涉及的嵌入式ROS软件系统能运行在任意一款嵌入式实时操作系统之上,且兼容原生ROS的节点间通讯协议和通讯方式,能够和原生的ROS节点互联互通,形成完整的分布式机器人系统。
附图说明
通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
图1为本发明框架的模块结构图。
具体实施方式
下面结合具体实施例对本发明进行详细说明。以下实施例将有助于本领域的技术人员进一步理解本发明,但不以任何形式限制本发明。应当指出的是,对本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进。这些都属于本发明的保护范围。
如图1所示,本发明基于嵌入式实时操作系统的机器人操作系统包括操作系统兼容层模块1、核心通信模块2、应用层处理模块3。
所述操作系统兼容层模块主要对嵌入式操作系统相关接口进行封装,主要包括内存管理、进程管理、网络通信相关功能,需要使用到依赖于操作系统的功能时,该框架内部模块以及上层应用程序直接调用该模块提供的接口,框架内各模块不需要关心操作系统的具体接口及使用方法,可以使本框架以非常小的代码修改代价,运行在大部分嵌入式实时操作系统上,使本框架可以支持多种嵌入式实时操作系统;所述核心通信模块为本框架系统接入ROS计算网络、进行节点间通信的核心模块,主要包括与ROS的主节点通信的功能以及节点间通信的功能,同时集成了遵循XMLRPC(可扩展标记语言远程过程调用)标准的远程调用功能以及TCPROS(机器人操作系统传输控制协议)协议的解析功能;所述应用层处理模块主要对应用部署的节点信息,发布订阅的主题消息,同步调用的远程服务等进行管理,本框架提供了一个代码生成工具,在基于本框架进行应用开发时,只需要在配置文件中配置节点名称,订阅发布的主题名称、数据类型等信息,代码生成工具会帮助用户自动生成主题发布订阅相关的数据类型、处理函数、API等代码,代码生成工具的引入降低了本框架的使用难度,提高了本框架的易用性。
所述操作系统兼容层模块1包括操作系统内存操作模块、操作系统进程管理模块、网络协议栈通信模块,所述操作系统内存操作模块用于对操作系统内存空间申请、释放、堆栈区域管理等功能进行封装,基于该框架的所有模块在有内存操作需要时调用该模块,该模块从操作系统接口中获取内存相关数据与资源;所述操作系统进程管理模块用于对操作系统进程创建、销毁、进程间通信、同步等功能进行封装,基于该框架的所有模块在有进程操作需求时调用该模块,该模块从操作系统接口中获取进程相关数据与资源;所述网络协议栈通信模块用于对网络通信创建、连接、监听、发送、接收、关闭等功能进行封装,本框架的核心通信模块在有网络通信需求时调用该模块,该模块从网络协议栈中获取网络通信相关数据与资源。
所述核心通信模块2包括核心管理模块、XMLRPC通信模块、TCPROS通信模块。所述核心管理模块用于对本框架启动后的系统资源、网络连接、通信时序等进行统一管理调度,XMLRPC通信模块以及TCPROS模块的时序均由该模块进行调度;所述XMLRPC通信模块用于对XMLRPC协议的远程过程调用进行协议解析和动作执行,XMLRPC协议为节点与ROS主节点之间进行通信的协议,该模块启动后根据应用层处理模块的请求与ROS主节点进行通信,并启动监听等待被ROS主节点调用;所述TCPROS通信模块用于对TCPROS协议的解析和动作执行,TCPROS协议为原生ROS定义和使用的节点间通信协议,该模块启动后根据应用层处理模块的请求进行节点间通信,并启动监听,解析其他节点发送的TCPROS数据。
所述应用层处理模块3包括节点管理模块、消息句柄管理模块、数据类型解析模块,所述节点管理模块用于对ROS计算网络中的节点信息进行管理,主要包括本地节点信息管理和远端节点信息管理,本地节点信息在框架启动时从配置文件中读取,当本框架对外进行网络通信时从该模块读取本地节点信息,远端节点信息通过调用XMLRPC通信模块从ROS主节点中获得,提供给TCPROS通信模块进行节点间通信时使用;所述消息句柄管理模块的代码由代码生成工具根据配置文件自动生成,包括接收已订阅主题的消息回调函数、发布主题消息的API(应用程序接口)函数、服务的实现函数、调用服务的API函数等,应用层代码根据业务逻辑调用本模块,本模块调用TCPROS通信模块进行数据的交互;所述数据类型解析模块的代码由代码生成工具根据配置文件自动生成,包括所有发布订阅的主题消息、远程服务调用中,涉及到的数据类型,以及针对该数据类型的数据声明、数据拷贝、数据清理、数据校验等功能,该模块可以支持原生数据类型和用户自定义数据类型。
本发明涉及的嵌入式ROS软件系统基于嵌入式实时操作系统,具有对外部中断的实时响应能力,满足机器人中控制和通讯的实时性需求,此系统既拥有ROS的通讯框架和应用程序构件,又解决了基于Linux操作系统的ROS的非实时性问题;其涉及的嵌入式ROS软件系统不依赖于Linux操作系统,不需要python解释器,不使用面向对象的C++语言,ROS软件框架直接运行在任意一款嵌入式实时操作系统之上,基于C语言开发,对系统资源需求量极低,这样ROS软件系统能直接运行在机器人的资源受限的小型传感器和执行器等节点之上;其涉及的嵌入式ROS软件系统兼容原生ROS的节点通讯协议,支持远程过程调用通信和数据发布订阅通信,能够和在Linux操作系统上运行的原生ROS节点互联互通。
本发明通过操作系统兼容层模块调用底层功能;通过核心通信模块完成与原生ROS的节点间通讯;使用应用层处理模块为在此嵌入式节点上的应用构件提供运行支撑。因为嵌入式实时操作系统能够对外部中断等进行实时的响应,因此基于此框架的应用构件能够满足机器人中控制和通讯的实时性需求。
以上对本发明的具体实施例进行了描述。需要理解的是,本发明并不局限于上述特定实施方式,本领域技术人员可以在权利要求的范围内做出各种变形或修改,这并不影响本发明的实质内容。
Claims (4)
1.一种基于嵌入式实时操作系统的机器人操作系统,其特征在于,包括:
操作系统兼容层模块,用于对嵌入式操作系统相关接口进行封装;
核心通信模块,用于与原生ROS的节点间通讯;
应用层处理模块,用于为在此嵌入式节点上的应用构件提供运行支撑。
2.根据权利要求1所述的基于嵌入式实时操作系统的机器人操作系统,其特征在于,所述操作系统兼容层模块包括:
操作系统内存操作模块,用于对操作系统内存空间申请、释放、堆栈区域管理功能进行封装;
操作系统进程管理模块,用于对操作系统进程创建、销毁、进程间通信、同步功能进行封装;
网络协议栈通信模块,用于对网络通信创建、连接、监听、发送、接收、关闭功能进行封装。
3.根据权利要求1所述的基于嵌入式实时操作系统的机器人操作系统,其特征在于,所述核心通信模块包括:
核心管理模块,用于对本框架启动后的系统资源、网络连接、通信时序进行统一管理调度;
XMLRPC通信模块,用于对XMLRPC协议的远程过程调用进行协议解析和动作执行;
TCPROS通信模块,用于对TCPROS协议的解析和动作执行。
4.根据权利要求1所述的基于嵌入式实时操作系统的机器人操作系统,其特征在于,所述应用层处理模块包括:
节点管理模块,用于对ROS计算网络中的节点信息进行管理,主要包括本地节点信息管理和远端节点信息管理。
消息句柄管理模块,用于调用所述TCPROS通信模块进行数据的交互;
数据类型解析模块,可以支持原生数据类型和用户自定义数据类型。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610815926.5A CN106444490A (zh) | 2016-09-08 | 2016-09-08 | 基于嵌入式实时操作系统的机器人操作系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610815926.5A CN106444490A (zh) | 2016-09-08 | 2016-09-08 | 基于嵌入式实时操作系统的机器人操作系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106444490A true CN106444490A (zh) | 2017-02-22 |
Family
ID=58168562
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610815926.5A Pending CN106444490A (zh) | 2016-09-08 | 2016-09-08 | 基于嵌入式实时操作系统的机器人操作系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106444490A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106774352A (zh) * | 2017-03-27 | 2017-05-31 | 东莞市松迪智能机器人科技有限公司 | 自动导引运输车的机器人控制系统及单驱双向自动导引运输车 |
CN108594810A (zh) * | 2018-04-08 | 2018-09-28 | 百度在线网络技术(北京)有限公司 | 数据处理的方法、装置、存储介质、终端设备和自动驾驶车辆 |
CN109471435A (zh) * | 2018-11-09 | 2019-03-15 | 福州大学 | 一种多异构移动机器人控制系统 |
CN109557854A (zh) * | 2018-12-07 | 2019-04-02 | 江西洪都航空工业集团有限责任公司 | 一种基于发布订阅模式的电机控制器 |
CN111124700A (zh) * | 2018-10-31 | 2020-05-08 | 百度在线网络技术(北京)有限公司 | 仿真软件模型的接入方法和装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030014560A1 (en) * | 2001-07-16 | 2003-01-16 | Antonio Mugica | Multidimensional advanced adaptive software architecture |
CN102523225A (zh) * | 2011-12-22 | 2012-06-27 | 浙江国自机器人技术有限公司 | 分布式松耦合构架中的解耦方法及分布式松耦合构架平台 |
CN104820418A (zh) * | 2015-04-22 | 2015-08-05 | 遨博(北京)智能科技有限公司 | 一种针对机械臂的嵌入式视觉系统及其使用方法 |
CN105278940A (zh) * | 2014-07-08 | 2016-01-27 | 北京航空航天大学 | 一种基于多核处理器架构的机器人混合系统应用框架 |
CN105824292A (zh) * | 2016-05-23 | 2016-08-03 | 威海明达创新科技有限公司 | 一种机器人分布式控制器及控制方法 |
-
2016
- 2016-09-08 CN CN201610815926.5A patent/CN106444490A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030014560A1 (en) * | 2001-07-16 | 2003-01-16 | Antonio Mugica | Multidimensional advanced adaptive software architecture |
CN102523225A (zh) * | 2011-12-22 | 2012-06-27 | 浙江国自机器人技术有限公司 | 分布式松耦合构架中的解耦方法及分布式松耦合构架平台 |
CN105278940A (zh) * | 2014-07-08 | 2016-01-27 | 北京航空航天大学 | 一种基于多核处理器架构的机器人混合系统应用框架 |
CN104820418A (zh) * | 2015-04-22 | 2015-08-05 | 遨博(北京)智能科技有限公司 | 一种针对机械臂的嵌入式视觉系统及其使用方法 |
CN105824292A (zh) * | 2016-05-23 | 2016-08-03 | 威海明达创新科技有限公司 | 一种机器人分布式控制器及控制方法 |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106774352A (zh) * | 2017-03-27 | 2017-05-31 | 东莞市松迪智能机器人科技有限公司 | 自动导引运输车的机器人控制系统及单驱双向自动导引运输车 |
CN108594810A (zh) * | 2018-04-08 | 2018-09-28 | 百度在线网络技术(北京)有限公司 | 数据处理的方法、装置、存储介质、终端设备和自动驾驶车辆 |
CN111124700A (zh) * | 2018-10-31 | 2020-05-08 | 百度在线网络技术(北京)有限公司 | 仿真软件模型的接入方法和装置 |
CN109471435A (zh) * | 2018-11-09 | 2019-03-15 | 福州大学 | 一种多异构移动机器人控制系统 |
CN109471435B (zh) * | 2018-11-09 | 2021-07-13 | 福州大学 | 一种多异构移动机器人控制系统 |
CN109557854A (zh) * | 2018-12-07 | 2019-04-02 | 江西洪都航空工业集团有限责任公司 | 一种基于发布订阅模式的电机控制器 |
CN109557854B (zh) * | 2018-12-07 | 2021-07-30 | 江西洪都航空工业集团有限责任公司 | 一种基于发布订阅模式的电机控制器 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106444490A (zh) | 基于嵌入式实时操作系统的机器人操作系统 | |
Rozier et al. | The Chorus distributed operating system: some design issues | |
Cao et al. | Mobile agents and applications in networking and distributed computing | |
CN113268319A (zh) | 基于微服务架构的业务流程定制与分布式流程调度方法 | |
CN101741904B (zh) | 一种分布式空间计算服务节点的构建方法及网关装置 | |
CN104579792A (zh) | 多适配方式实现多种类型虚拟资源集中管理架构及方法 | |
CN104317661A (zh) | 嵌入式双系统的系统间通信方法及装置 | |
CN113703772A (zh) | 基于ice的异构平台高效智能计算应用架构及其构建方法 | |
CN104035768B (zh) | Android平台兼容本地代码OpenGL程序的系统及方法 | |
WO2023142062A1 (zh) | 工作流生成方法、系统、介质及程序产品 | |
Chaimowicz et al. | ROCI: A distributed framework for multi-robot perception and control | |
JPH11312079A (ja) | 携帯形情報処理装置の制御方法 | |
CN105930181A (zh) | 基于插件机制的运行时界面集成方法 | |
CN110162381B (zh) | 一种容器内代理执行方法 | |
CN104978170A (zh) | 一种基于图形化表示的多智能体系统生成方法 | |
Obdržálek | Mobile agents in multi-agent UAV/UGV system | |
CN106557386A (zh) | 基于kvm部署备份虚拟网卡虚拟机的方法、装置及系统 | |
CN113064737B (zh) | 使软件通信体系结构的组件在多核处理器并行运行的方法 | |
CN108769087B (zh) | 一种交互式系统的开发方法及服务器 | |
CN106371892B (zh) | 一种深度整合gis框架的虚拟机模板性能优化方法及装置 | |
CN114816754A (zh) | 一种基于4diac的实时容器编排调度框架 | |
Thramboulidis et al. | Field device specification for the development of function block oriented engineering support systems | |
WO2023164835A1 (zh) | 工作流执行方法、装置、存储介质及程序产品 | |
CN113157251B (zh) | 一种面向人机物融合应用的资源服务化与定制化方法 | |
WO2023164844A1 (zh) | 工作流执行方法、系统、介质及程序产品 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20170222 |
|
RJ01 | Rejection of invention patent application after publication |