CN111474897A - 一种基于组件的机器人编程方法和计算机可读存储介质 - Google Patents
一种基于组件的机器人编程方法和计算机可读存储介质 Download PDFInfo
- Publication number
- CN111474897A CN111474897A CN202010264186.7A CN202010264186A CN111474897A CN 111474897 A CN111474897 A CN 111474897A CN 202010264186 A CN202010264186 A CN 202010264186A CN 111474897 A CN111474897 A CN 111474897A
- Authority
- CN
- China
- Prior art keywords
- component
- robot
- real
- corba
- thread
- 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.)
- Granted
Links
Images
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/18—Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form
- G05B19/4093—Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form characterised by part programming, e.g. entry of geometrical information as taken from a technical drawing, combining this with machining and material information to obtain control information, named part programme, for the NC machine
-
- 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/30—Nc systems
- G05B2219/32—Operator till task planning
- G05B2219/32161—Object oriented control, programming
Landscapes
- Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Geometry (AREA)
- Human Computer Interaction (AREA)
- Manufacturing & Machinery (AREA)
- General Physics & Mathematics (AREA)
- Automation & Control Theory (AREA)
- Stored Programmes (AREA)
Abstract
本发明提供了一种基于组件的机器人编程方法和计算机可读介质,本发明使得机器人程序的各个模块,不论是实时模块还是非实时模块都以组件的方式给出,每个组件对外提供接口和服务,组件间的关系采用动态部署的方式进行创建和连接,即解决了用户对实时环境的要求,也通过类似分布式编程的方式将机器人各个代码模块解耦到不同的组件下,减少了代码的耦合度。
Description
技术领域
本发明涉及机器人领域,具体涉及一种基于组件的机器人编程方法和计算机可读存储介质。
背景技术
目前,市面上的机器人编程框架分为两种:实时嵌入式编程:控制器采用传统的编程策略,用嵌入式实时系统满足用户的实时要求;分布式节点编程:采用节点进程间通信的方式进行编程,节点间通过网络传输信息。然而,实时嵌入式编程虽然解决了用户对实时系统的要求,但是软件开发采用传统的编程模式(所有的代码在一个应用程序下),造成业务的代码耦合度高,每次的改动甚至要编译整个工程,不利于团队协同开发。分布式节点编程是典型的代表系统ROS(机器人操作系统),提供了分布式的编程策略,将代码解耦到各个节点中去,每个节点对外提供接口或服务,但是这种编程方式本身不具备实时的条件,无法满足用户对机器人开发需要的实时环境。
发明内容
本发明的目的在于提供一种实时性更好耦合度更少的基于组件的机器人编程方法和计算机可读存储介质。为实现本发明的目的,本发明的技术方案如下。
一种基于组件的机器人编程方法包括:
创建机器人组件,所述机器人组件包括端口、服务、属性、线程;
创建进程,所述进程包括若干机器人组件;进程之间采用消息队列机制进行数据交换;
将机器人组件和机器人组件的端口、服务、属性、线程代理到Corba服务器上;
创建脚本部署组件;
通过脚本部署组件操控代理到Corba服务器上的机器人组件。
优选的,基于组件的机器人编程方法还包括:
创建数据捕获组件;
通过数据捕获组件捕获代理到Corba服务器上的机器人组件信息。
优选的,基于组件的机器人编程方法还包括:
创建外部扩展组件;
将外部扩展组件与代理到Corba服务器上的机器人组件进行通信。
优选的,所述通过脚本部署组件操控代理到Corba服务器上的机器人组件包括:
创建Corba客户端;
通过Corba客户端访问机器人组件;
配置机器人组件的线程的属性;
连接同一进程的若干机器人组件,和/或,连接不同进程的若干机器人组件。
优选的,所述创建机器人组件包括将机器人组件的线程配置为实时模式或非实时模式,以及配置线程的优先级;实时线程与非实时线程采用无锁线程进行数据交换。
优选的,所述通过数据捕获组件捕获代理到Corba服务器上的机器人组件信息包括:
获取并显示端口、服务、属性、线程的信息。
优选的,所述机器人组件的以动态链接库的形式发布。
优选的,所述端口采用消息队列机制进行封装。
优选的,所述服务配置为使得机器人组件以阻塞调用,和/或,非阻塞调用的方式被调用。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述方法。
相对于现有技术,本发明的有益技术效果在于:本发明提供了一种组件化的编程方式,机器人的各个模块,不论是实时模块还是非实时模块都以组件的方式给出,每个组件对外提供接口和服务,组件间的关系采用动态部署的方式进行创建和连接,即解决了用户对实时环境的要求,也通过类似分布式编程的方式(组件化)将机器人各个代码模块解耦到不同的组件下,减少了代码的耦合度。本发明具有如下有益技术效果:将软件中常用的端口、服务、属性等概念封装到组件中,通过组件的连接配置相互访问,提供一种类似分布式编程的方法,减少了代码的耦合。每个组件即可以是非实时运行,也可以实时运行,解决了用户对实时环境的要求。每个组件的编写完全独立,发布采用动态链接库的形式,通过部署工具动态部署,减少了程序编写环境和运行环境的耦合。通过Corba技术,将进程下的各个组件及组件的port、service、property等全部代理到Corba上,任何连接到Corba上的其他程序都可以远程访问组件的所有信息,像操作本地组件一样操控远程组件,大大提升了代码的可扩展程度。运用Corba技术开发的数据捕获工具能够自动捕获Corba上的所有组件信息,并可以对关心的数据进行图形绘制,方便了用户的调试,减少代码调试时间。
为使本申请的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为组件创建示意图;
图2为进程创建示意图;
图3为组件在corba上的结构示意图;
图4为数据捕获示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
实施例一
本实例的机器人编程方法,包括:
创建机器人组件。
示例性的,如图1所示,一个机器人组件包含4个部分,端口Port、服务Service、属性Property、线程RunThread。
Port(端口):负责和其他组件进行数据传输;
Service(组件服务):组件对外提供的组件服务,其他组件可以调用
Property(属性):组件可以添加额外的属性
RunThread(线程):每一个组件拥有一个线程,可配置成实时模式,或者非实时模式,并可配置线程优先级,线程是用来进行服务响应或者进行额外的用户操作。
具体的,Port(端口),在一个进程下,Port为进程间组件间数据传输的通道,进程内组件的Port采用无锁线程安全机制,能够保证实时-实时组件,实时-非实时组件,非实时-非实时组件下的数据传输,保证了实时组件的实时性要求;同时,对于不同进程下的组件,Port采用POSIX下的消息队列机制进行封装,保证了进程间的组件数据通信的实时性,Port编程伪代码如下所示:
Service(组件服务):一个组件A能够对外提供接口和服务,其他组件B通过定义相同的接口并连接,就可以调用A中的服务,调用过程分为阻塞调用和非阻塞调用,函数真正的执行端在A端,伪代码如下所示:
int data=com.getProperty(“proA”);//组件获取Property,存入data
RunThread(线程):每个组件所包含的可配置线程,具有实时或者非实时配置,优先级属性配置,周期配置等接口,实时配置主要用来进行实时组件的周期控制,非实时配置主要用来执行其他非实时用户程序,比如io操作,日志读写,网络配置、传输等等操作,伪代码如下:
组件的连接:组件定义好了端口和服务后,需要将组件A和组件B的端口及服务连接起来,伪代码如下:
Component comA;
Component comB;
comA.connect(comB);//组件A和组件B进行连接,端口和服务会根据名称和类型自动匹配并连接起来,这样,组件A和组件B的端口就可以进行数据传输,接口服务的互相调用,属性的互相访问等。
组件的启动:组件中的RunThread属性有周期线程和非周期线程,周期线程运行后伪代码如下:
非周期组件运行时没有周期循环,仅仅运行一次RunThread的代码。
组件的打包形式:组件为了实现代码的解耦,提升代码的可维护性,所以组件的发布和程序的运行是完全独立的,每一个组件都以动态链接库的形式发布(.so文件),部署程序通过动态加载动态链接库的形式获取每个组件,构建程序运行环境。
创建进程。
示例性的,如图2所示,创建了5个进程,分别为:
进程1:机器人A的控制器代码程序;
进程2:机器人B的控制器代码程序;
进程3:脚本部署工具,远程控制机器人A和机器人B的程序环境部署;
进程4:数据捕获,远程捕获机器人A和机器人B下的组件中的数据定义及交互,包括Service、Port和Property。
进程5:外部扩展程序,用户可以通过组件结构封装自己的上层应用程序,比如机器人示教器界面,其他额外的调试工具等等。
将机器人组件和机器人组件的端口、服务、属性、线程代理到Corba服务器上。
Corba是一种远程对象代理技术,主要应用在分布式框架下,能够将一个进程下的对象代理到Corba服务器上,不同进程下的程序能够像访问本地对象方一样访问这个对象,为了方便说明,以伪代码的形式表示:
进程1:
Component com(“comA”);//创建对象com
CorbaService corbaserver(“server”);//创建Corba服务器
corbaserver.proxy(com);//Corba代理com对象
进程2:
CorbaClient corbaclient;//创建Corba客户端
corbaclient.connect(“server”);//连接服务器
Component com=corbaclient.getComponent(“comA”);//从Corba中获取com组件
com.test()//在进程2下调用com的接口函数
如图3所示,通过Corba技术,将进程下的各个组件及组件的port、service、property等全部代理到Corba上,这样,脚本部署工具和数据捕获程序可以远程的对机器人A和机器人B部署软件环境和进行数据的捕获,外部扩展程序也可以通过Corba调用机器人控制器的服务或者进行数据通信。
创建脚本部署组件;通过脚本部署组件操控代理到Corba服务器上的机器人组件。
脚本部署工具是一个以脚本程序为入口的,通过远程控制组件的连接、断开、运行、停止等功能,能够远程操控所有机器人组件提供的服务,控制端口行为等功能,能够很方便的实现远程机器人的部署及控制功能,伪代码如下:
CorbaClient corbaclient;//创建Corba客户端
corbaclient.connect(“controller”);//客户端连接底层控制器
Component comA_1=corbaclient.getComponent(“comA_1”);//通过Corba获得comA_1组件
Component comA_2=corbaclient.getComponent(“comA_2”);//通过Corba获得comA_2组件
Component comA_3=corbaclient.getComponent(“comA_3”);//通过Corba获得comA_3组件
Component comB_1=corbaclient.getComponent(“comB_1”);//通过Corba获得comB_1组件
Component comB_2=corbaclient.getComponent(“comB_2”);//通过Corba获得comB_2组件
Component comB_3=corbaclient.getComponent(“comB_3”);//通过Corba获得comB_3组件
//配置组件线程属性
comA_1.run_thread.setRealTimeStrategy(rt);//设置实时策略(实时)
comA_1.run_thread.setPriority(95);//设置优先级95
comA_1.run_thread.setPeriod(0.001);//设置运行周期1ms
comA_3.run_thread.setRealTimeStrategy(nort);//设置实时策略(实时)
comA_3.run_thread.setPriority(95);//设置优先级95,非周期运行
……
//以下程序部署组件的运行连接环境
comA_1.connect(comA_2);//组件comA_1和组件comA_2连接
comA_1.connect(comA_3);//组件comA_1和组件comA_3连接
comA_2.connect(comA_3);//组件comA_2和组件comA_3连接
comB_1.connect(comB_2);//组件comB_1和组件comB_2连接
comB_1.connect(comB_3);//组件comB_1和组件comB_3连接
comB_2.connect(comB_3);//组件comB_2和组件comB_3连接
comA_3.connect(comB_3);//跨进程的组件comA_3和组件comB_3连接
//组件配置
comA_1.config();
comA_2.config();
……
//开启所有组件
comA_1.start();
comA_2.start();
……
//组件其他操作
int data=comA_1.getProperty(“proA”);
………
do others
//关闭组件
comA_1.stop();
comA_2.stop();
……
创建数据捕获组件;通过数据捕获组件捕获代理到Corba服务器上的机器人组件信息。
数据捕获作为一个非实时组件,能够自动捕获其他所有挂载到Corba服务器上的组件信息,包括Port、Service、Property、RunThread等信息,并通过界面显示出来。如图4所示,选中其中某一行拥有数值属性的项目,比如ComA_1的port(dataport),点击绘图中的添加,将会根据port中的数值动态绘制出实时变化的曲线图像。
实施例二
本实施例提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现实施例一所述方法。
本发明编程方法通过对Linux打实时补丁,使Linux内核具有实时的能力。将编程中常用的端口、服务、属性、线程等封装在组件中,通过组件的编程实现代码的解耦。每个组件可以与其他组件进行配置连接,连接后的组件能够相互访问端口、服务和组件属性。通过对组件线程属性的配置能够配置组件运行环境(实时/非实时,周期/非周期等)。每个组件发布时都是以动态链接库的形式发布。部署工具加载每个组件,在部署工具中完成组件的初始化、配置连接、启动等工作。通过Corba技术,将进程下的各个组件及组件的port、service、property等全部代理到Corba上,这样,脚本部署工具和数据捕获程序可以远程的对机器人A和机器人B部署软件环境和进行数据的捕获,外部扩展程序也可以通过Corba调用机器人控制器的服务或者进行数据通信。数据捕获工具通过Corba服务器能够自动捕获挂载到服务器上的组件及组件的端口、服务等,通过显示工具动态的显示组件的所有信息,并可以选取所关心的信息进行图形显示绘制。
为了满足线程编程下的实时性策略,采用了以下方法
1.为了使实时线程下内存分配/释放的执行时间可预期,采用tlsf算法技术和内存池技术管理内存分配,同时也解决了内存分配的碎片化问题。
2.为了能够让实时线程与非实时线程进行数据交换,采用无锁线程安全技术,保证:
a.数据的安全访问;
b.实时线程的优先级不发生翻转;
3.为了满足进程间的实时通信问题,在进程间进行数据交换时,采用进程间POSIX下的消息队列机制来保证进程间通信的实时性。
组件的所有对外接口(端口、组件服务、属性、线程配置)的内部底层均采用以上方法实现,保证了组件能够在实时环境下实时周期运行。
上面是解决组件在实时环境和非实时环境下使用的方式。
本申请实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请提供的实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释,此外,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
最后应说明的是:以上所述实施例,仅为本申请的具体实施方式,用以说明本申请的技术方案,而非对其限制,本申请的保护范围并不局限于此,尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本申请实施例技术方案的精神和范围。都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
Claims (10)
1.一种基于组件的机器人编程方法,其特征在于,包括:
创建机器人组件,所述机器人组件包括端口、服务、属性、线程;
创建进程,所述进程包括若干机器人组件;进程之间采用消息队列机制进行数据交换;
将机器人组件和机器人组件的端口、服务、属性、线程代理到Corba服务器上;
创建脚本部署组件;
通过脚本部署组件操控代理到Corba服务器上的机器人组件。
2.根据权利要求1所述的机器人编程方法,其特征在于,包括:
创建数据捕获组件;
通过数据捕获组件捕获代理到Corba服务器上的机器人组件信息。
3.根据权利要求2所述的机器人编程方法,其特征在于,包括:
创建外部扩展组件;
将外部扩展组件与代理到Corba服务器上的机器人组件进行通信。
4.根据权利要求3所述的机器人编程方法,其特征在于,所述通过脚本部署组件操控代理到Corba服务器上的机器人组件包括:
创建Corba客户端;
通过Corba客户端访问机器人组件;
配置机器人组件的线程的属性;
连接同一进程的若干机器人组件,和/或,连接不同进程的若干机器人组件。
5.根据权利要求1-4任一所述的机器人编程方法,其特征在于,所述创建机器人组件包括将机器人组件的线程配置为实时模式或非实时模式,以及配置线程的优先级;实时线程与非实时线程采用无锁线程进行数据交换。
6.根据权利要求5所述的机器人编程方法,其特征在于,所述通过数据捕获组件捕获代理到Corba服务器上的机器人组件信息包括:
获取并显示端口、服务、属性、线程的信息。
7.根据权利要求6所述的机器人编程方法,其特征在于,所述机器人组件的以动态链接库的形式发布。
8.根据权利要求7所述的机器人编程方法,其特征在于,所述端口采用消息队列机制进行封装。
9.根据权利要8所述的机器人编程方法,其特征在于,所述服务配置为使得机器人组件以阻塞调用,和/或,非阻塞调用的方式被调用。
10.一种计算机可读存储介质,其特征在于,其上存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1-9任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010264186.7A CN111474897B (zh) | 2020-04-07 | 2020-04-07 | 一种基于组件的机器人编程方法和计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010264186.7A CN111474897B (zh) | 2020-04-07 | 2020-04-07 | 一种基于组件的机器人编程方法和计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111474897A true CN111474897A (zh) | 2020-07-31 |
CN111474897B CN111474897B (zh) | 2021-07-06 |
Family
ID=71749970
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010264186.7A Active CN111474897B (zh) | 2020-04-07 | 2020-04-07 | 一种基于组件的机器人编程方法和计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111474897B (zh) |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1472047A (zh) * | 2003-06-26 | 2004-02-04 | 上海交通大学 | 开放式网络机器人通用控制系统 |
CN1614527A (zh) * | 2003-10-02 | 2005-05-11 | 国际商业机器公司 | 在制造执行与物料控制系统中自动解决问题的方法和系统 |
CN101286058A (zh) * | 2008-04-24 | 2008-10-15 | 上海交通大学 | 机器人模块化分布式自适应控制系统及方法 |
CN101502960A (zh) * | 2009-03-12 | 2009-08-12 | 上海交通大学 | 基于corba接口的模块化机器人 |
TW200943179A (en) * | 2008-04-01 | 2009-10-16 | Chunghwa Telecom Co Ltd | Integrated-type software component management architecture |
CN103902283A (zh) * | 2014-03-03 | 2014-07-02 | 华东师范大学 | 在corba中利用模型转换实现实时异步通信的方法 |
CN104169871A (zh) * | 2011-09-23 | 2014-11-26 | 艾买提·拉扎 | 软件开发方法和装置 |
CN104965802A (zh) * | 2015-06-11 | 2015-10-07 | 哈尔滨工程大学 | 基于corba标准的多功能射频综合一体化装置和系统 |
US20150339589A1 (en) * | 2014-05-21 | 2015-11-26 | Brain Corporation | Apparatus and methods for training robots utilizing gaze-based saliency maps |
CN105844020A (zh) * | 2016-03-23 | 2016-08-10 | 中国电子科技集团公司第十研究所 | 复杂电子系统的抽象集成设计方法 |
CN107239305A (zh) * | 2017-05-22 | 2017-10-10 | 哈尔滨工程大学 | 用于现场可编程门阵列芯片文件加载的系统及方法 |
-
2020
- 2020-04-07 CN CN202010264186.7A patent/CN111474897B/zh active Active
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1472047A (zh) * | 2003-06-26 | 2004-02-04 | 上海交通大学 | 开放式网络机器人通用控制系统 |
CN1614527A (zh) * | 2003-10-02 | 2005-05-11 | 国际商业机器公司 | 在制造执行与物料控制系统中自动解决问题的方法和系统 |
TW200943179A (en) * | 2008-04-01 | 2009-10-16 | Chunghwa Telecom Co Ltd | Integrated-type software component management architecture |
CN101286058A (zh) * | 2008-04-24 | 2008-10-15 | 上海交通大学 | 机器人模块化分布式自适应控制系统及方法 |
CN101502960A (zh) * | 2009-03-12 | 2009-08-12 | 上海交通大学 | 基于corba接口的模块化机器人 |
CN104169871A (zh) * | 2011-09-23 | 2014-11-26 | 艾买提·拉扎 | 软件开发方法和装置 |
CN103902283A (zh) * | 2014-03-03 | 2014-07-02 | 华东师范大学 | 在corba中利用模型转换实现实时异步通信的方法 |
US20150339589A1 (en) * | 2014-05-21 | 2015-11-26 | Brain Corporation | Apparatus and methods for training robots utilizing gaze-based saliency maps |
CN104965802A (zh) * | 2015-06-11 | 2015-10-07 | 哈尔滨工程大学 | 基于corba标准的多功能射频综合一体化装置和系统 |
CN105844020A (zh) * | 2016-03-23 | 2016-08-10 | 中国电子科技集团公司第十研究所 | 复杂电子系统的抽象集成设计方法 |
CN107239305A (zh) * | 2017-05-22 | 2017-10-10 | 哈尔滨工程大学 | 用于现场可编程门阵列芯片文件加载的系统及方法 |
Non-Patent Citations (3)
Title |
---|
DONG W.KIM ETC.: ""Service-provider Intelligent Humanoid Robot using TCP/IP and CORBA"", <INTERNATIONAL JOURNAL OF CONTROL AUTOMATION AND SYSTEMS> * |
宋洪军 等: ""基于中间件的工业机器人软件框架的研究和应用"", 《计算机应用研究》 * |
曹其新 等: ""基于CORBA技术的机器人模块化设计的研究进展"", 《机器人技术与应用》 * |
Also Published As
Publication number | Publication date |
---|---|
CN111474897B (zh) | 2021-07-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8473912B2 (en) | Computer readable medium, system and method of debugging software applications modelled using flow paradigms | |
US6370436B1 (en) | Distributed objects for a computer system | |
Nastic et al. | PatRICIA--a novel programming model for iot applications on cloud platforms | |
US7559056B2 (en) | Object-oriented component and framework architecture for signal processing | |
US20050144587A1 (en) | Observation tool for signal processing components | |
WO2016183553A1 (en) | Query dispatch and execution architecture | |
Gannon et al. | Developing component architectures for distributed scientific problem solving | |
US10439887B2 (en) | Generic test framework for service interfaces | |
WO2012151886A1 (zh) | 一种标准化底层控制驱动系统 | |
US7539743B2 (en) | Method and system of administration in a JMX environment comprising an administration application and software systems to be administered | |
Smits et al. | Composition of complex robot applications via data flow integration | |
Dessalk et al. | Scalable execution of big data workflows using software containers | |
CA2353414C (en) | System and method for constructing an ole process control compliant data server from a noncompliant user application | |
CN111474897B (zh) | 一种基于组件的机器人编程方法和计算机可读存储介质 | |
US20090307712A1 (en) | Actor virtual machine | |
CN101356503A (zh) | 数据处理系统和数据处理方法 | |
JPH05224963A (ja) | リアルタイムシステム用プロセス制御システム | |
Brugali et al. | Service component architectures in robotics: The sca-orocos integration | |
US20150188849A1 (en) | Virtual switch enabling communication between external objects and simulation objects | |
Valetto et al. | A uniform programming abstraction for effecting autonomic adaptations onto software systems | |
Rimassa et al. | Living systems® technology suite | |
Chebout | AOM4JADE: an aspect-oriented monitoring approach for JADE-based multi-agent applications | |
JP2002091780A (ja) | トランザクション処理システム及び方法 | |
Lorcy et al. | A framework managing quality of service contracts in distributed applications | |
Marinescu | An Agent-Based Design for Problem Solving Environments |
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 |