一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种组件化的智能机器人系统构建开发方法与流程

2023-01-15 12:20:08 来源:中国专利 TAG:


1.本发明涉及智能机器人领域,特别是一种组件化的智能机器人系统构建开发方法。


背景技术:

2.针对一台机器人进行开发时,通常需要针对特定的功能、环境和具体的任务来设计,一台智能机器人,通常会包含感知和规划两大功能,机器人通过摄像头等传感器件感知环境信息,根据感知到的环境信息规划出一条无碰撞的路径,然后驱动机械臂按预定的路径到达目标位置,完成特定的任务。目前主流的机器人开发方法的柔性较差,制造工厂的产品类型发生转换时往往就需要重新进行开发,使用成本较高,开发周期长,开发成本高昂。为了提高机器人开发的效率,降低开发的成本,简化开发的流程,采用了面向服务的概念,将机器人的各个功能单元转化为灵活的服务,利用这些服务作为基本单元来构建智能机器人系统,使制造工厂能够快速完成产品类型的转换。
3.现有技术一的技术方案
4.目前主流的机器人开发方法是通过代码开发的方式设计系统,采用以程序代码为中心的强耦合方式,以“控制设计

手写代码

实机测试”的顺序方式进行,系统开发完成以后,开发人员需要不断进行反复调试,以发现开发过程中留下的问题,并加以完善。
5.现有技术一的缺点
6.基于代码的开发方法存在以下几种缺陷:
7.1)开发效率低:系统测试在开发设计的后面进行,当需求发生细微改变,都会造成系统开发的改变。系统开发完成后,在实机测试阶段才能发现问题,容易混入人为错误,且难以定位出错的问题点,这需要大量的测试工作。
8.2)可重用性及扩展性差:传统的代码开发方法在系统开发完成后,需要进行繁琐的测试工作,这不仅降低了控制系统的开发效率,而且还无法满足可重构的特性。这无法满足市场对机器人研发速度越来越高的要求。
9.3)开发成本高:传统的代码开发方法,开发周期长,成本高。
10.现有技术二的技术方案
11.新的自动化标准iec 61499,旨在生成灵活的、模块化的和分布式的控制系统,能够满足以下要求:1)可移植性:软件工具接受、解释和正确执行其他软件工具开发的系统的能力。2)互操作性:多品牌集成在同一系统中的能力。3)可配置性:可轻松修改设备配置和软件组件的能力。
12.它指定了分布式流程的通用体系结构,以其前身iec 61131中首次引入的功能块模型为基础,并添加了事件处理机制。它将功能块(fb)类型定义为封装和重用编程算法的基本单元,这些算法包括:数学运算、特定运算功能、通信功能等。如图1所示,功能块结构由管理事件流的头部和负责数据流管理的主体组成。采用这种结构方案,提高了数据传输和程序执行之间的同步性。
13.iec 61499兼容功能块的开发分两个阶段完成。第一个是使用集成开发环境(ide)的外部结构生成,例如4diac-ide,能够提供一个可扩展的开发框架,为iec 61499下的分布式控制应用建模。构建外部案例之后,与编程集成相关的第二个阶段就开始了。一旦生成功能块结构,包含与其行为相关的编程的源文件也会生成。在标准指南中,规定源文件可以用iec 61131编程语言之一编写,此外还可以用高级编程语言如java、c 、phyton等编写。
14.如前所述,功能块是iec 61499基本单元,使用一组互连的功能块构建分布式控制系统应用程序。最后,使用相同的工程工具生成分布式控制系统,将构建的应用程序与特定控制网络的设备联系起来,然后下载到它们。为了使嵌入式控制器能够执行系统操作,它需要在其操作系统中安装一个运行时环境,如forte,它可以根据iec 61499标准在系统功能块中运行指定的算法。
15.现有技术二的缺点
16.1)功能块开发过程中,无法验证功能块的执行情况。
17.2)当连接这些组件时,很难确定执行的全局行为,而获得一个模型是有用的,在这个模型上可以进行形式化验证,以保证执行的属性。


技术实现要素:

18.为解决现有技术中存在的问题,本发明提供了一种组件化的智能机器人系统构建开发方法,解决了随着工业机器人市场需求量增加,工业机器人的使用场景与功能需求日趋复杂,机器人系统开发门槛高,开发周期过长,开发成本高昂的问题。
19.本发明提供的技术方案如下,一种组件化的智能机器人系统构建开发方法包括以下步骤:
20.s1:定义机器人系统各类组件模型,搭建机器人系统组件库;
21.s2:对功能块进行形式化验证;
22.s3:在分布式应用程序设计时,将图形化的功能块进行组合,生成机器人控制任务;
23.s4:在底层设备运行时,功能块调用第三方库,编译生成机器人控制组件;
24.s5:在本机上运行底层设备运行时,并将分布式应用设计时生成的机器人控制任务通过tcp/ip协议下发底层设备运行时中,生成机器人控制应用程序;
25.s6:在可视化界面中对应用程序进行功能性验证;
26.s7:在模型检测工具中对应用程序进行形式化验证;
27.s8:搭建三维仿真平台并在仿真环境下进行验证;
28.s9:在机器人的上位机中运行基于iec61499标准的底层设备运行时;
29.s10:分布式应用程序设计时将机器人控制任务通过tcp/ip协议下发到机器人上位机的底层设备运行时;
30.s11:启动机器人应用控制程序,智能机器人本体响应控制任务。
31.优选地,s1具体步骤为将机器人控制系统分解成各个服务组件,根据需要的服务开发符合iec 61499标准的功能块组件,搭建机器人系统组件库;
32.s2的具体步骤为每个功能块进行形式化建模,并验证每个功能块的执行,根据验证结果修改功能块;
33.s3的具体步骤为采用软件组件的思想,以功能块为基础单元定义行为,并以功能块网络的形式构筑完整的控制应用。
34.优选地,s4具体步骤为机器人系统组件库的功能块采用动态链接的方式调用第三方库,完成感知、规划、控制、通信等功能。
35.优选地,s5包括以下子步骤:
36.s51:底层设备运行时执行iec 61499标准,提供应用程序运行的系统环境以及数据交互通信;
37.s52:分布式应用程序设计时将设计好的机器人控制任务和控制逻辑通过tcp/ip协议部署到底层设备运行时中。
38.优选地,s6具体为针对具体型号的机器人进行配置,生成配置文件,并在可视化界面下对应用程序进行功能性验证,根据验证结果修改功能块网络。
39.优选地,s7具体为
40.s71:将每个形式化模型与每个功能块关联起来,并将它们组合起来;
41.s72:在形式化模型下验证功能块网络的执行情况,完成应用程序的非功能性验证;
42.s73:根据验证结果修改功能块网络。
43.优选地,s8具体为使用三维仿真平台构建三维仿真场景,模拟实际的应用场景,应用程序在底层设备运行时上运行,在仿真场景下进行仿真验证,根据验证结果修改功能块或功能块网络;
44.s9具体为机器人的上位机中预先运行底层设备运行时执行iec 61499标准,用于提供应用程序运行的系统环境以及数据交互通信。
45.优选地,s10具体为通过网络将功能块网络段下载到上位机中,底层设备运行时负责执行下载的功能块网络段,各运行时之间通过通信功能块相互通信;
46.优选地,s11包括以下子步骤:
47.s111:智能机器人根据应用程序,采用多种通信协议;
48.s112:采集摄像头的图像数据和读取机器人的状态信息,并输出机器人的控制信号,控制机器人本体执行特定的任务。
49.本发明组件化的智能机器人系统构建开发方法的有益效果如下:
50.1、本发明采用组件化、图形化的应用程序开发方式,使工业控制软件封装成为功能块形式的软件组件,使得开发任务清晰明确,开发人员不再关心设备之间的接口和通信,避免传统分布式系统开发碎片化,提高的程序开发的效率,便于开发人员交流、维护。
51.2、本发明基于分布式工业自动化控制软件进行开发,解决传统机器人控制系统传统开发方式的灵活性不足与扩展性差的问题,同时分布式应用程序设计时提供实时数据回显功能,支持在线调参,加快控制系统调试过程。
52.3、本发明支持开放型功能块库的开发,可根据机器人控制系统的任务需求,在机器人系统组件库中添加自定义功能块,并通过图形化界面搭建后,一键部署即可直接运行,无需手动编写控制程序代码,提高开发效率,也避免了手动编码所引入的错误。
53.4、本发明提出了机器人控制系统组件化的基本架构,规范了功能块的接口和ecc图,便于开发人员根据规范对机器人的功能组件进行具体开发和应用程序的构建。
54.5、本发明先在可视化界面中对机器人系统进行功能性验证,然后使用模型检测工具对机器人系统进行非功能性验证,接着在仿真环境中对机器人系统进行仿真验证,最后才上真机运行,可在开发前期进行验证,有利于开发人员快速发现错误,提高开发效率,同时保证了机器人系统的可靠性,减少真机运行时出错的可能性。
附图说明
55.图1为本发明的现有技术二的图。
56.图2为本发明的组件功能块模板图。
57.图3为本发明的vision功能块的接口及ecc图。
58.图4为本发明的move_name功能块的接口及ecc图。
59.图5为本发明的move_target功能块的接口及ecc图。
60.图6为本发明的move_cartesian功能块的接口及ecc图。
61.图7为本发明的gripper功能块的接口及ecc图。
62.图8为本发明的读/写功能块的接口。
63.图9为本发明的driver功能块的接口。
64.图10为本发明的camera功能块的接口。
65.图11为本发明的vision功能块的时间自动机模型。
66.图12为本发明的单元运行测试时间自动机模型。
67.图13为本发明的功能块网络。
68.图14为本发明的事件调度时间自动机模型。
69.图15为本发明的机器人时间自动机模型。
70.图16为本发明的机器人总体架构。
具体实施方式
71.下面对本发明的具体实施方式进行描述,以便于本技术领域的技术人员理解本发明,但应该清楚,本发明不限于具体实施方式的范围,对本技术领域的普通技术人员来讲,只要各种变化在所附的权利要求限定和确定的本发明的精神和范围内,这些变化是显而易见的,一切利用本发明构思的发明创造均在保护之列。
72.本发明是在分布式应用程序设计时中进行机器人控制系统的开发,采用iec61499建模语言对机器人控制系统进行建模,遵循iec 61499标准开发相关的功能块,并对功能块进行形式化验证,利用开发好的功能块构建应用,在分布式应用程序设计时中将各个功能块通过控制流与数据流进行整合,根据具体的任务布置功能块网络,形成应用程序,然后映射到设备和资源上,根据通信需求布置通信配置,最后编译生成机器人控制应用程序;完成整个控制系统的搭建后,对应用程序进行功能性验证和非功能性验证;为了防止在真机上运行的时候机械臂发生碰撞,先在仿真平台上进行仿真验证;上真实机械臂运行,在上位机中启动底层设备运行时,并将分布式应用程序设计时生成的机器人控制任务下发到底层设备运行时中,机械臂执行特定的控制任务。
73.一种组件化的智能机器人系统构建开发方法,具体包括以下步骤:
74.步骤1:定义机器人系统各类组件模型,搭建机器人系统组件库;
75.在机器人控制系统中,包含感知、规划、控制、通信接口等组件,对于所需开发的功能块,这里提出了用于机器人系统组件库开发的功能块模板,规范功能块的接口,如图2所示。该功能块模板包括以下事件,在输入事件中,init是任务执行初始化配置的触发事件,service_a和service_b是正常工作周期内操作的触发事件,用于服务调用,emr是结束操作的触发事件;在输出事件中,inito是初始化结束的标志事件,cnf_service_a和cnf_service_b是正常周期内结束的标志事件,err是紧急关闭触发的标志事件。
76.感知类组件对机器人的环境进行感知,并获取相关信息。在感知类组件中,封装有机器人感知外界环境的算法,如机器视觉,机器人的摄像头获取图像数据后,传给感知组件,感知组件对图像信号进行处理,获取机器人外部环境信息。在机器人获取图像数据后,进行视觉检测,获取目标位置,其组件接口及ecc如图3所示。该感知组件初始化后通过话题获取图像信息,当收到req触发事件时,调用视觉检测服务,对图像信息进行解析获取目标位置并输出给下游的功能块,当触发emr事件时,该功能块停止工作。
77.规划类组件负责对机器人的行走路径进行规划,完成避碰、到达目标点等任务。在规划类组件中,设计有无碰撞地运动到预定的位姿、无碰撞地运动到指定的位姿、直线运动、夹爪的抓取与放下物体等具体规划组件,用户只需要分别在功能块的输入接口中输入预定的位姿名称,指定的位姿坐标,直线运动末端点或夹爪的抓取/放下等参数,规划组件会自动规划出一条无碰撞的路径到达用户指定的目标点。其接口与ecc如图4、图5、图6、图7所示。
78.控制类组件负责上位机与机器人本体的交互,驱动机器人移动。该组件集成了机器人的驱动程序api,不同型号的机器人,其驱动程序不一样,所以,对于不同型号的机器人需要开发相应的控制类组件。控制类组件可以分成两种,一种是写组件,负责将上位机的控制命令写入到机器人上,控制机器人移动;另一类是读组件,负责将机器人的状态信息读入到上位机中,读/写功能块的接口如图8所示,控制类组件由于需要与硬件交互,采用服务接口功能块进行开发。为了兼容机器人操作系统(ros),设计了用于接收路点信息的控制组件,其接口如图9所示,该控制组件使用action通信方式与发送路点信息的客户端进行通信,控制组件使用接收到的控制数据调用机器人的驱动程序api对机器人进行控制。
79.通信类组件负责上述组件在不同设备/资源上运行时的数据交互。常用的通信类组件有pub/sub通信、client/server通信等。在机器人系统中,有传感器负责获取机器人的外部环境信息,最常用的就是摄像头。摄像头节点调用摄像头驱动,接收外部摄像头设备的图像数据,并以话题消息发送出去,该功能块的接口如图10所示,采用服务接口功能块来封装该功能。
80.步骤2:对功能块进行形式化验证;
81.对功能块进行非功能性验证,将时间自动机与每个功能块关联起来,开发单个功能块时使用该时间自动机验证功能块的执行情况。在对功能块进行形式化建模时,对于基本功能块的形式化建模,根据功能块的接口、功能和ecc图,将功能块用时间自动机表示为6元组:
82.bfbta=《bfbl,bfbl0,bfbc,bfba,bfbi,bfbe》
83.bfbl:表示基本功能块的ecc图中的各个状态
84.bfbl0:表示b功能块未启动时的状态,bfbl0=《start》
85.bfbc:是一组时间变量
86.bfba:引起b功能块状态变化的事件,b功能块状态的改变主要受输入事件影响
87.bfbi:bfbl

b(bfbc),将不变量赋给位置
88.bfbe:表示状态迁移过程
89.例如,根据vision功能块的接口和ecc图,vision的时间自动机:
90.visionta=《visionl,visionl0,visionc,visiona,vision/,visione>
91.visionl:visionl=《start,initialized,detection,emergency》表示vision的一系列位置
92.visionl0:表示vision未启动时的状态,visionl0=《start》
93.visionc:在vision内部,没有时钟约束
94.visionc:vision状态的改变由输入事件init、req、emr和输入数据iq决定
95.visionc:visionc

b(visionc),在vision中,各个状态没有时间约束
96.visionc:vision状态迁移过程和当前所处状态,输入事件init、req、emr和输入数据iq相关
97.vision功能块的时间自动机模型如图11所示,对于服务接口功能块,则需要分析具体的代码,再进行形式化建模;对于复合功能块,其形式化建模跟功能块网络类似,除了对复合功能块内部的功能块形式化建模外,还需要对内部功能块的连接情况建立时间自动机模型。
98.在进行整体模型验证前,先对单个时间自动机模型进行单元测试,保证被控对象的可靠运行。采用单元运行模板对时间自动机模型进行单元测试,单元运行测试时间自动机模型如图12所示,在示例中,只对vision和move_name两个功能块单元进行单元测试,可以根据实际测试的功能块在该模板上补充更多的单元。
99.使用模型检测工具对机器人控制系统进行形式化验证,模型检测工具的验证器对模型应该满足的性质进行验证,可以检查系统模型的可达性、安全性、存活性等性质。
100.步骤3:在分布式应用程序设计时中,将图形化的功能块进行组合,生成机器人控制任务;
101.基于软件组件的思想,以功能块为基础单元定义行为,将各个功能块通过控制流与数据流整合,根据任务需求以功能块网络的形式构筑完整的控制应用。在分布式应用程序设计时上对机器人控制系统进行开发,根据机器人的任务要求选择机器人系统组件库中的功能块,并连接功能块间的事件流和数据流的方式,来对工业机器人的工作任务逻辑和通讯功能进行描述,基于功能块网络的描述方式来控制机器人的空间轨迹与姿态,实现特定的加工任务。
102.搭建好系统应用后,需要设置设备端口,将搭建好的功能块网络中的功能块网络段分别映射到不同的设备和资源上,并在资源上的功能块网络段配置工业机器人所采用的通讯协议与参数,使其能够与其他资源上的功能块网络段进行通信,形成一个完整的系统。
103.步骤4:在底层设备运行时,功能块调用第三方库,编译生成机器人控制组件;
104.在底层设备运行时,机器人系统组件库的功能块采用动态链接的方式调用计算机视觉库、运动规划库、机器人驱动api、感知设备驱动等第三方库,完成感知、规划、控制、通
信等功能,编译生成智能机器人控制组件。
105.步骤5:在本机上运行底层设备运行时,并将分布式应用程序设计时生成的机器人控制任务通过tcp/ip协议下发底层设备运行时,生成机器人控制应用程序;
106.分布式应用程序设计时负责设计控制任务,下发xml文档给底层设备运行时,底层设备运行时有具体的功能块组件的代码,可以根据xml文档中控制任务的描述调用功能块组件。
107.在本机上对机器人控制应用程序进行测试,需要在本机上运行基于iec61499标准的底层设备运行时,该运行时提供应用程序运行所需的系统环境以及基础的数据交互通信架构;在分布式应用程序设计时中,应用程序拓扑以xml文件的形式通过tcp/ip协议分布式下发部署至各个设备运行时中,生成完整的机器人控制应用程序。
108.步骤6:在可视化界面中对应用程序进行功能性验证;
109.对于不同型号的机器人进行可视化配置,包括加载机器人模型、设置自碰撞检测、配置规划组、预定义位姿等操作,最终生成配置文件。使用配置文件进行测试,启动机器人控制应用程序,在可视化界面中对应用程序进行功能性验证。
110.步骤7:在模型检测工具对应用程序进行形式化验证;
111.在对功能块网络进行形式化建模时,除了需要用到上述每个功能块对应的时间自动机网络外,还需要对功能块的事件和数据连接情况进行建模。对于图13所示的功能块网络,其事件调度时间自动机如图14所示,该时间自动机模型展示了功能块网络的事件连接情况,初始位置是idle,其他的位置表述了功能块间的输出事件和输入事件的连接情况,当上游功能块的输出事件输出时,时间自动机模型从初始位置转移到另一个位置,同时更新动作enqueue(),将输出事件连接的下游功能块的输入事件插入队列中;在初始位置中存在从初始位置回到初始位置的连接,even[front]!是将存储在队列中的队头元素信号发出,同时更新动作dequeue(),从队列中移除队头元素。
[0112]
为了观察功能块网络的执行情况,增加机器人时间自动机模型,如图15所示,表示机器人的执行情况。机器人有idle、wait、executing、stop、finished五种状态,idle表示机器人的初始状态,event[nfbmove_name_init[0]]!是发出初始化命令,机器人进入等待状态,event[nfbmove_name_req[0]]!是发出执行请求命令,机器人进入运行状态,在wait和executing状态发出event[nfbmove_name_emr[0]]!紧急停止命令时,终止运行,进入stop停止状态。
[0113]
使用模型检测工具对机器人控制系统进行形式化验证,模型检测工具的验证器对模型应该满足的性质进行验证。
[0114]
步骤8:搭建三维仿真平台并在仿真环境下进行验证;
[0115]
直接使用真实机器人进行实验可能会发生安全意外,因此使用三维仿真平台,如gazebo、v-rep等三维仿真平台构建机器人及障碍空间的三维仿真场景,并在仿真环境下测试机器人。在pc机上启动机器人控制应用程序,在仿真场景下进行仿真验证。
[0116]
步骤9:在机器人的上位机中运行基于iec 61499标准的底层设备运行时;
[0117]
基于pc的方式实现机器人控制系统,如果采用单pc模式,以pc机作为上位机,运行预先运行多个运行时执行iec 61499标准,如果采用多pc模式,在每台pc机上运行一个或多个底层设备运行时执行iec 61499标准,这些运行时用于提供应用程序运行的系统环境以
及数据交互通信。
[0118]
步骤10:在分布式应用程序设计时中,将机器人控制任务通过tcp/ip协议下发到机器人上位机的底层设备运行时;
[0119]
分布式应用程序设计时的应用程序通过网络将功能块网络段下载到运行在上位机的运行时中,运行时负责执行下载的功能块网络段,各运行时之间通过通信功能块相互通信,形成一个完整的机器人控制应用程序。
[0120]
步骤11:启动机器人控制应用程序,智能机器人本体响应控制任务。
[0121]
一个具备感知和规划功能的机器人总体架构如图16所示,在本架构中,需要4个底层设备运行时,分别用于机器人的视觉检测、路径规划、驱动控制和图像数据获取等功能,各个运行时之间相互通信,构成一个完整的分布式机器人控制系统。摄像头节点组件通过摄像头获取图像数据并将其传送到视觉检测组件;视觉检测组件获取图像数据后,进行图像处理,获取目标信息或障碍物信息,并将其数据传送到路径规划组件;路径规划组件根据从视觉检测组件获取的目标信息或障碍物信息以及从机器人驱动组件获取的机器人状态信息,调用运动规划库完成路径规划功能,将路点数据传送到机器人驱动组件;机器人驱动组件将控制命令写入到机器人本体中,控制机器人完成特定的任务,同时将机器人的状态信息实时读取到机器人驱动组件中,并提交给路劲规划组件使用。
[0122]
本发明保护点:
[0123]
功能块开发方法
[0124]
在机器人控制系统中,包含感知、规划、控制、通信接口等组件,对于所需开发的功能块,这里提出了用于机器人系统组件库开发的功能块模板,规范功能块的接口。另外还对常用的感知、规划、控制、通信接口等组件的接口、ecc图进行了设计。
[0125]
形式化验证技术
[0126]
采用模型检测工具对功能块和功能块网络进行验证,将时间自动机与每个功能块关联起来,开发单个功能块时使用该时间自动机验证功能块的执行情况,设计了功能块对应的形式化模型映射方式,还提出了单元运行测试时间自动机模型用于测试;最后将时间自动机根据功能块网络组合起来,提出了事件调度时间自动机模型映射功能块间的连接情况,以验证功能网络的执行。
[0127]
智能机器人控制系统构建技术
[0128]
描述了通用的具有感知和规划功能的机器人架构,本架构中,机器人具备视觉检测、路径规划、驱动控制和图像数据获取等功能。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献