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

一种实时分布式协作机器人控制系统的制作方法

2021-10-19 20:43:00 来源:中国专利 TAG:机器人 人工智能 分布式 控制系统 协作


1.本技术涉及机器人控制和人工智能技术领域,尤其涉及一种实时分布式协作机器人控制系统。


背景技术:

2.随着机器人产业的发展,学界和工业界对高品质、高稳定、分布式和易操作控制系统有着迫切的需求。目前机器人控制系统的设计,受到以下关键因素的制约:系统实时性、现场总线、机器人框架和人机交互模块的设计。其中,控制系统的实时性对于机器人在各领域的应用至关重要,延迟或超前都将导致系统运动的不稳定,对相关应用领域造成难以估计的损失。


技术实现要素:

3.本技术旨在提出一种实时分布式协作机器人控制系统。
4.根据本技术的一方面,提出了一种实时分布式协作机器人控制系统,所述控制系统与机器人本体连接,所述控制系统包括:
5.linux操作系统单元,用于为建立所述机器人的操作运行环境构建ubuntu环境;
6.实时内核单元,用于执行所述控制系统的实时控制;其中,所述实时内核单元是基于所述linux操作系统单元,通过对原生linux内核进行修改和编译来构建的;
7.数据分发服务单元,用于对数据进行分发和订阅;其中,所述数据分发服务单元是基于ros2的环境构建的;
8.与所述数据分发服务单元连接的机器人控制单元,包括实时控制模块和非实时控制模块;所述实时控制模块用于基于所述实时内核单元根据实时任务计算得到第一控制指令,并将所述第一控制指令输入至ethercat现场总线单元;所述非实时控制模块,用于根据非实时任务计算得到第二控制指令,并将所述第二控制指令输入至所述ethercat现场总线单元;
9.所述ethercat现场总线单元,用于将接收到的所述实时控制模块和所述非实时控制模块发送的控制信号,通过ethercat总线传输到所述机器人本体的驱动器进行相应的控制。
10.在本技术的一些实施例中,通过以下方式构建所述实时内核单元:
11.对所述原生linux内核配置实时抢占补丁,并重新编译;其中,抢占模式设置为全抢占内核,定时系统设置为高分辨率计时器,定时器中断处理设置为无中断,默认的cpu频率调节策略设置为性能优先,且处理器的电源状态设置为最高级。
12.在本技术的一些实施例中,所述数据分发服务单元中构建服务质量策略qos。
13.进一步地,所述机器人控制单元具体用于:
14.针对数据任务,根据正向运动学、逆向运动学、以及动力学建立模型;
15.根据所述模型,进行笛卡尔层和关节空间的规划;
16.根据所述关节空间的规划,由所述实时控制模块基于实时内核单元计算,得到针对空间的力量控制和位置控制的第一控制指令,并将所述第一控制指令输入至所述ethercat现场总线单元;
17.根据所述笛卡尔层的规划,由所述非实时控制模块计算得到针对笛卡尔层的力量控制和位置控制的第二控制指令,并将所述第二控制指令输入至所述ethercat现场总线单元。
18.在本技术的一些实施例中,所述实时控制模块具体用于:
19.设置所述操作系统的调度模式为先进先出模式;
20.设置调度优先级;
21.对内存进行提前分配及固定;
22.设置拒绝处理器进入低损耗模式;
23.通过所述实时内核单元的高分辨率定时器进行定时,并通过设置定时周期,来根据实时任务进行计算。
24.其中,所述实时控制模块针对力量控制的计算公式包括:
[0025][0026][0027]
其中,k
θ
,d
θ
是位置和速度比例增益系数,g(θ
ld
)表示基于连杆端期望的位置常重力补偿,θ
md
为期望电机位置,θ
m
为实际电机位置、为实际电机速度,t
i
表示位置控制环力矩输出,i
m
为电机的惯量,i
n
是名义的电机的惯量,t是实际的电机力矩,d为电机阻尼,d
n
为名义电机的阻尼,tm是电机控制力矩,k是刚度矩阵。
[0028]
此外,本技术提出的实时分布式协作机器人控制系统还包括:
[0029]
视觉语义感知单元,用于采集图像,并对采集到的图像进行视觉感知处理,得到视觉语义感知数据,并将所述语义感知数据通过所述数据分发服务单元发送给所述机器人控制单元;
[0030]
其中,所述机器人控制单元,还用于根据接收到的视觉语义感知数据生成对应的控制指令,并将所述对应的控制指令发送给所述ethercat现场总线单元。
[0031]
在本技术的一些实施例中,所述机器人控制单元与所述视觉语义感知单元通过以下方式进行连接:
[0032]
所述视觉语义感知单元和所述机器人控制单元运行于x86硬件平台上,所述x86硬件平台上配置gpu显卡;或者,
[0033]
所述视觉语义感知单元和所述机器人控制单元运行于两个不同的x86硬件平台,其中所述视觉语义感知单元负责视觉图像的加速计算。
[0034]
根据本技术提出的技术方案,通过实时内核单元的构建使操作系统具有实时性,从而可以有效地提高控制系统的实时性。同时,通过数据分发服务单元,可以实现分布式节点的发布和订阅,从而可以提高单个节点的实时性,进而可以提高节点间数据交互的实时性。此外,机器人控制单元中的实时控制模块会根据实时任务计算对应的控制指令,通过现场总线传输至机器人本体,从而可以实现机器人的分布式实时控制,使得控制系统具有灵活性、开放性、模块化、扩展性和友好性。
[0035]
本技术附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本技术的实践了解到。
附图说明
[0036]
本技术上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
[0037]
图1为本技术实施例所提供的一种机器人本体与控制系统的连接示意图;
[0038]
图2为本技术实施例所提供的一种实时分布式协作机器人控制系统的结构示意图;
[0039]
图3为本技术实施例所提供的一种实时分布式协作机器人控制系统中机器人控制单元的工作原理示意图;
[0040]
图4为本技术实施例所提供的一种实时分布式协作机器人控制系统中实时控制模块的工作原理示意图;
[0041]
图5为本技术实施例所提供的另一种实时分布式协作机器人控制系统的结构示意图;
[0042]
图6为本技术实施例所提供的另一种实时分布式协作机器人控制系统中视觉语义感知单元的构建方式示意图。
具体实施方式
[0043]
下面详细描述本技术的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本技术,而不能理解为对本技术的限制。
[0044]
需要说明的是,控制系统的实时性设计对于行业应用至关重要,例如:核工厂的控制、医疗系统、铁路切换系统、飞控系统、空间任务、自动驾驶和机器人等等都需要精确的实时控制。其中,实时性是指必须在精确的定时内对环境中发生的事件做出反应。因此,对于实时系统来说,不仅仅在于逻辑的正确,而且需要在给定的时间或者终止时间内进行数据交互,延迟或超前触发定时都将导致难以估计的损失。此外,实时系统不意味着越快越好,而是要保持一个小的定时抖动,在定时周期内,执行任务的接收、计算和发送等。
[0045]
在现有技术中,ros1(robotoperatingsystem1,第一代机器人操作系统)在实现分布式节点的分发和订阅时,需要一个主节点,但是主节点的不稳定会使得系统宕机。同时,对于ros1在最初设计时,不具有实时性,所以无法实现机器人和自动化设备的实时控制。为了解决ros1存在的问题,提出了ros2(robotoperatingsystem2,第二代机器人操作系统)的方案,ros2以dds(data distribution service,数据分发服务)为中间件,实现了数据的分布式发布和订阅。dds具有多种qos(quality of service,服务质量)策略,保障了数据实时、高效、灵活的分发。但是依然无法解决系统延迟、抖动等实时性至关重要的问题。
[0046]
基于上述问题,本技术提出了一种实时分布式协作机器人控制系统。
[0047]
需要说明的是,在本技术实施例中,实时分布式协作机器人控制系统基于硬件平台来运行。作为一种示例,该硬件平台可以基于x86架构构建,可以包括3个以太网网卡、英特尔处理器(型号:i7_7700)、存储器、固态硬盘及3个用于急停和切断电源的继电器。其中
存储器可以为ddr4(dual data rate4,第四代双倍速率同步动态随机存储器),且内存容量为16g,固态硬盘容量可以为256g。如图1所示,机器人本体可以通过以太网线直连到该实时分布式协作机器人控制系统,其中,机器人可以为单臂和双臂,且带有末端夹爪及视觉感知功能。另外,由实时分布式协作机器人控制系统为机器人本体提供48v和24v的直流供电。其中48v主要用于机器人电机的供电,24v为驱动器和夹爪等执行单元供电。与该控制系统外接的机器人本体,通过以太网线进行连接,连接的拓扑结构,可以是线型、树形、星型等。
[0048]
图2为本技术实施例所提供的一种实时分布式协作机器人控制系统的结构示意图。该控制系统包括:linux操作系统单元210、实时内核单元220、数据分发服务单元230、与数据分发服务单元230连接的机器人控制单元240和ethercat现场总线单元250。
[0049]
其中,linux操作系统单元210,用于为建立机器人的操作运行环境构建ubuntu环境。需要说明的是,该环境为系统原生ubuntu环境,并带有gnome桌面。作为一种示例,linux操作系统的版本可以为20.04,linux内核版本可以为5.10.27,也可以为其他版本,本技术对此不作限定。
[0050]
实时内核单元220,用于执行控制系统的实时控制。其中,实时内核单元是基于linux操作系统单元,通过对原生linux内核进行修改和编译来构建的。作为一种示例,其具体的构建方式可以为:对原生linux内核配置实时抢占补丁,并重新编译;其中,抢占模式设置为全抢占内核,定时系统设置为高分辨率计时器,定时器中断处理设置为无中断,默认的cpu频率调节策略设置为性能优先,且处理器的电影状态设置为最高级;定时器的频率可以设置1000hz,也可以根据实际需要设置为其他频率值。
[0051]
数据分发服务单元230,用于对数据进行分发和订阅。该数据分发服务单元230是基于ros2的环境构建的,具体的构建方式可以为:首先搭建机器人的环境,建立ros2的机器人环境;为了构建分布式节点的数据发布和订阅,在过程中可以构建服务指令策略qos(quality of service policy),用于实现系统间数据交互的服务质量需求。
[0052]
机器人控制单元240,包括实时控制模块241和非实时控制模块242。其中,实时控制模块241用于基于实时内核单元220根据实时任务计算得到第一控制指令,并将第一控制指令输入至ethercat现场总线单元250。非实时控制模块242,用于根据非实时任务计算得到第二控制指令,并将第二控制指令输入至ethercat现场总线单元250。
[0053]
在本技术的一些实施例中,如图3所示,机器人控制单元具体用于:
[0054]
针对数据任务,根据正向运动学、逆向运动学、以及动力学建立模型;
[0055]
根据模型,进行笛卡尔层和关节空间的规划;
[0056]
根据关节空间的规划,由实时控制模块基于实时内核单元计算,得到针对空间的力量控制和位置控制的第一控制指令,并将所述第一控制指令输入至ethercat现场总线单元;
[0057]
根据所述笛卡尔层的规划,由所述非实时控制模块计算得到针对笛卡尔层的力量控制和位置控制的第二控制指令,并将第二控制指令输入至ethercat现场总线单元。
[0058]
在本技术实施例中,图2中的实时控制模块241是用于实现单个节点和多个节点的数据订阅、处理和发布,通过对每个节点的实时化改造来减少抖动,降低延迟,提高响应速度,为高品质的运动控制提供保证。进一步地,该实时控制模块241具体用于:设置操作系统的调度模式为先进先出模式;设置调度优先级;对内存进行提前分配及固定;设置拒绝处理
器进入低损耗模式;通过实时内核单元的高分辨率定时器进行定时,并通过设置定时周期,来根据实时任务进行计算。
[0059]
作为一种示例,图4为实时控制模块的工作原理示意图,如图4所示,实时控制模块具体的工作原理如下:首先设置了操作系统的调度模式为先进先出模式,然后设置较高的调度优先级,如81(1至99都是实时优先级);对内存提前分配并固定,可以理解,动态的内存分配有时会导致页缺失,再重新分配内存时可能会因为之前的页缺失会增大系统的抖动;通过设置参数cpu_dma_latency为0,来拒绝处理器进入低损耗模式,从而使处理器的电源状态处于最高级,避免从较低的电源状态到较高的电源状态的系统唤醒造成的系统延迟;采用高精度定时器进行定时,定时器具有纳秒级的定时精度,通过获取时间函数clock_gettime(clock_monotonic,ts_now),来获得当前精确的时间,来提升计时的准确性,在这个过程中不能引入io操作;通过始终高分辨率睡眠函数clock_nanosleep(clock_monotonic,timer_abstime,ts_nest,null)来设置定时周期,实现定时延迟;根据预设条件的判断,若任务未完成,则循环执行对于的任务,若任务完成,则结束当前任务进行下一程任务。此外,根据上述时间函数可以此次获得的时间值与上次获得的时间值的差分,可以将该差分作为定时抖动,针对该定时抖动进行分析,来设定不同的定时频率。
[0060]
在本技术的一些实施例中,关节空间的力量控制和位置控制运行于实时控制模块中,用于实现实时控制。作为一种可以实现的方式,可以将实时控制模块运行于不同的进程中,实时的进程能够及时的处理实时的任务,并对各实时任务采用不同的调度,尤其对关节层采用高优先级的先进先出调度模式。此外,针对力量控制,可以将关节阻抗控制器配置在实时控制模块中,控制周期可以设定为1ms,驱动器相对应配置为周期同步转矩模式,从而实现动力学和力矩环的实时计算。其中,实时控制模块针对力量控制的计算公式如公式(1)和公式(2)所示:
[0061][0062][0063]
其中,k
θ
,d
θ
分布是位置和速度比例增益系数,g(θ
ld
)表示基于连杆端期望的位置常重力补偿,θ
md
为期望电机位置,θ
m
为实际电机位置、为实际电机速度,t
i
表示位置控制环力矩输出,i
m
为电机的惯量,i
n
是名义的电机的惯量,t是实际的电机力矩,d为电机阻尼,d
n
为名义电机的阻尼,tm是电机控制力矩,k是刚度矩阵。需要说明的是,上述所有变量值都是经过减速比后对应的值。
[0064]
在本技术实施例中,如图2所示,ethercat现场总线单元205,用于将接收到的实时控制模块和所述非实时控制模块发送的控制信号,通过ethercat总线传输到机器人本体的驱动器进行相应的控制。
[0065]
需要说明的是,ethercat的通信是一主多从的方式,主站既可以发送数据包给从站,也可以接收从站返回的数据包;从站需要接收主站发送的数据包,并根据数据包中的指令实现应用层的控制,完成这一操作后,从站会在数据包中写入相应的信息,并且最终反馈给主站。主从站之间通信的数据包是标准的以太网数据帧结构。主站发送数据包后,从站接收数据包完成相应的应用层操作之后,改写数据包并把数据包反馈给主站,形成一个完整的ethercat通信过程。
[0066]
在本技术实施例中,ethercat现场总线单元通过构建ethercat主站,用ethercat总线来实现机器人的控制。作为一种示例,可以通过软件构建ethercat主站,例如安装商用的acontis主站或者开源版本igh etherlab和some主站等,并通过网卡驱动更改来将以太网控制器更改为ethercat控制器。
[0067]
举例而言,为了实现从站和主站的连接,可以通过以下方式实现:
[0068]
(1)配置pdo(process data object,过程数据对象)和sdo(service data obiect,服务数据对象),来生成相应的描述文件。其中,输入pdo包括状态字、显示模式、实际的位置、实际的速度值、实际的位置值、实际的力矩值、数字量输入、模拟量输入。输出pdo包括控制字、操作模式、目标力矩、目标速度、目标位置。以上参数需要对于每个轴都需要进行配置,比如,对于7自由度的协作机器人需要配置7轴,另外还有一个夹爪轴。
[0069]
(2)将pdo和sdo配置为同步模式,并设置总线周期。
[0070]
(3)将配置好的描述文件,映射到主站对应的描述文件文件,相当于只是命名的解析。
[0071]
(4)卸载安装ubuntu时带有的网卡驱动,加载ethercat驱动,启动ethercat主站,从而实现ethercat主站和从站的连接。
[0072]
其中,从站驱动都是ethercat的驱动器,通过ethernet网线进行串联。例如,对于单臂(7个自由度),可以直接进行串联;对于双臂(14自由度,不带末端执行器),需要借助一个ethercat网口分线模块(如结合倍福的ek1100模块和fk1110模块,或者单独的cu1124模块)来实现。
[0073]
根据本技术实施例提出的实时分布式协作机器人控制系统,通过实时内核单元的构建使操作系统具有实时性,从而可以有效地提高控制系统的实时性。同时,通过数据分发服务单元,可以实现分布式节点的发布和订阅,从而可以提高单个节点的实时性,进而可以提高节点间数据交互的实时性。此外,机器人控制单元中的实时控制模块会根据实时任务计算对应的控制指令,通过现场总线传输至机器人本体,从而可以实现机器人的分布式实时控制,使得控制系统具有灵活性、开放性、模块化、扩展性和友好性。
[0074]
为了可以通过获取机器人周围环境感知,来准确地对机器人进行控制,本技术提出了另一个实施例。
[0075]
图5为本技术实施例提出的另一种实时分布式协作机器人控制系统的结构示意图。如图5所示,在上述实施例的基础上,该实时分布式协作机器人控制系统还包括:
[0076]
视觉语义感知单元560,用于采集图像,并对采集到的图像进行视觉感知处理,得到视觉语义感知数据,并将语义感知数据通过所述数据分发服务单元发送给所述机器人控制单元;
[0077]
其中,机器人控制单元540,还用于根据接收到的视觉语义感知数据生成对应的控制指令,并将对应的控制指令发送给ethercat现场总线单元550。
[0078]
可以理解,视觉感知需要较大的计算量,通常需要用gpu(graphicprocessing unit,图形处理器)来进行计算并行加速,所以该视觉语义感知单元与机器人控制单元的连接方式可以有两种。第一种是视觉语义感知单元和机器人控制单元运行于x86硬件平台上,且x86硬件平台上配置gpu显卡;第二种是视觉语义感知单元和机器人控制单元运行于两个不同的x86硬件平台,其中视觉语义感知单元负责视觉图像的加速计算。在本技术实施例
中,图5以第二种连接方式为例进行示意。
[0079]
举例而言,对于第二种连接方式,两个平台之间的通讯可以通过以太网线或者无线wifi进行互联,且将两个x86硬件平台设置在同一ip段,同时设置相同的机器人系统域。此外还在x86硬件平台中都构建ros2的运行环境,从而通过订阅和发布的方式实现互相的通讯。
[0080]
由于视觉语义感知单元560用于识别环境种的待操作对象,以及确定物体的三维空间位置等,所以在视觉语义感知单元560中需要构建对应的视觉识别算法。作为一种示例,如图6所示,视觉语义感知单元中视觉识别算法的构建,以及与机器人控制单元数据交互的实现方式可以包括以下步骤:
[0081]
(1)配置视觉语义感知的环境,在ubuntu系统中,配置nvidia驱动;
[0082]
(2)安装anaconda,通过anaconda中的conda构建虚拟环境,以防多种软件的安装会对系统环境造成破坏;
[0083]
(3)在虚拟环境中安装pytorch神经网络框架,并安装opencv软件和cuda平台;
[0084]
(4)在安装的环境中,用detectron2来构建的图像识别架构;
[0085]
(5)针对特定应用采集被操作对象的图片和周围环境的图片,采用图像标注软件来标注图片中的类别;
[0086]
(6)将图片的训练集和测试集使用基于detectron2的架构中的maskrcnn网络进行训练和测试。通过对图像的推理和周围环境的感知,使用图像处理工具对图像进行加工,以及对图像的尺寸大小、位置坐标、语义信息等信息的提取,从而实现特定任务的执行(如采用基于位置视觉伺服的方式对物体进行动态追踪和自适应抓取);
[0087]
(7)将视觉语义感知模块处理后的数据,通过ros2中消息或者服务的传递方式,传输给机器人控制单元,从而实现视觉语义感知单元和机器人控制单元的数据交互。
[0088]
需要说明的是,在本技术实施例中,图5中的510至550与图2中的210至250具有相同的结构及功能,此处不再赘述。
[0089]
根据本技术实施例提出的实时分布式协作机器人控制系统,通过引入了视觉语义感知单元来对采集的图像进行视觉感知处理,并通过与机器人控制单元的数据通信,将处理后的数据通过数据分发服务单元发送给机器人控制单元,使机器人控制单元输出的控制指令更为准确,从而进一步地提高了该实时分布式协作机器人控制系统的适用性及友好性。
[0090]
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本技术的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
[0091]
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本技术的描述中,“多个”的含义是至少两个,例如两个,三
个等,除非另有明确具体的限定。
[0092]
上述具体实施方式,并不构成对本技术保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本技术的精神和原则之内所作的修改、等同替换和改进等,均应包含在本技术保护范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

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

相关文献