CN113510720B - 一种实时分布式协作机器人控制*** - Google Patents
一种实时分布式协作机器人控制*** Download PDFInfo
- Publication number
- CN113510720B CN113510720B CN202110665852.2A CN202110665852A CN113510720B CN 113510720 B CN113510720 B CN 113510720B CN 202110665852 A CN202110665852 A CN 202110665852A CN 113510720 B CN113510720 B CN 113510720B
- Authority
- CN
- China
- Prior art keywords
- real
- unit
- time
- control
- robot
- 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
- 230000000007 visual effect Effects 0.000 claims description 35
- 230000008447 perception Effects 0.000 claims description 33
- 238000012545 processing Methods 0.000 claims description 12
- 238000004364 calculation method Methods 0.000 claims description 10
- 230000006870 function Effects 0.000 claims description 8
- 238000000034 method Methods 0.000 claims description 8
- 230000008569 process Effects 0.000 claims description 7
- 238000013016 damping Methods 0.000 claims description 6
- 230000016776 visual perception Effects 0.000 claims description 6
- 230000005484 gravity Effects 0.000 claims description 3
- 239000011159 matrix material Substances 0.000 claims description 3
- 238000010586 diagram Methods 0.000 description 9
- 230000003993 interaction Effects 0.000 description 7
- 238000010276 construction Methods 0.000 description 6
- 230000006854 communication Effects 0.000 description 5
- 101000686031 Homo sapiens Proto-oncogene tyrosine-protein kinase ROS Proteins 0.000 description 4
- 102100023347 Proto-oncogene tyrosine-protein kinase ROS Human genes 0.000 description 4
- 238000004891 communication Methods 0.000 description 4
- 238000013461 design Methods 0.000 description 4
- 230000001360 synchronised effect Effects 0.000 description 3
- 241000512668 Eunectes Species 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- HPTJABJPZMULFH-UHFFFAOYSA-N 12-[(Cyclohexylcarbamoyl)amino]dodecanoic acid Chemical compound OC(=O)CCCCCCCCCCCNC(=O)NC1CCCCC1 HPTJABJPZMULFH-UHFFFAOYSA-N 0.000 description 1
- RZVHIXYEVGDQDX-UHFFFAOYSA-N 9,10-anthraquinone Chemical compound C1=CC=C2C(=O)C3=CC=CC=C3C(=O)C2=C1 RZVHIXYEVGDQDX-UHFFFAOYSA-N 0.000 description 1
- 101100498818 Arabidopsis thaliana DDR4 gene Proteins 0.000 description 1
- 230000001133 acceleration Effects 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 239000012636 effector Substances 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 238000002372 labelling Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000012549 training Methods 0.000 description 1
Images
Classifications
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J11/00—Manipulators not otherwise provided for
- B25J11/008—Manipulators for service tasks
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J15/00—Gripping heads and other end effectors
- B25J15/08—Gripping heads and other end effectors having finger members
-
- 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/02—Programme-controlled manipulators characterised by movement of the arms, e.g. cartesian coordinate type
- B25J9/023—Cartesian coordinate type
-
- 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
- B25J9/1664—Programme controls characterised by programming, planning systems for manipulators characterised by motion, path, trajectory planning
-
- 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/1679—Programme controls characterised by the tasks executed
-
- 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/1694—Programme controls characterised by use of sensors other than normal servo-feedback from position, speed or acceleration sensors, perception control, multi-sensor controlled systems, sensor fusion
- B25J9/1697—Vision controlled systems
Landscapes
- Engineering & Computer Science (AREA)
- Robotics (AREA)
- Mechanical Engineering (AREA)
- Automation & Control Theory (AREA)
- Manipulator (AREA)
Abstract
本申请提出一种实时分布式协作机器人控制***,该控制***与机器人本体连接,包括Linux操作***单元、实时内核单元、数据分发服务单元、机器人控制单元、EtherCAT现场总线单元。其中,Linux操作***单元用于为建立机器人的操作运行环境构建Ubuntu环境;实时内核单元,用于执行控制***的实时控制;数据分发服务单元,用于对数据进行分发和订阅;与数据分发服务单元连接的机器人控制单元,包括实时控制模块和非实时控制模块;实时控制模块和非实时控制模块计算得到控制指令,并将控制指令输送至EtherCAT现场总线单元;EtherCAT现场总线单元,用于将接收到控制信号,通过EtherCAT总线传输到机器人本体的驱动器进行相应的控制。本申请实现了机器人的分布式实时控制。
Description
技术领域
本申请涉及机器人控制和人工智能技术领域,尤其涉及一种实时分布式协作机器人控制***。
背景技术
随着机器人产业的发展,学界和工业界对高品质、高稳定、分布式和易操作控制***有着迫切的需求。目前机器人控制***的设计,受到以下关键因素的制约:***实时性、现场总线、机器人框架和人机交互模块的设计。其中,控制***的实时性对于机器人在各领域的应用至关重要,延迟或超前都将导致***运动的不稳定,对相关应用领域造成难以估计的损失。
发明内容
本申请旨在提出一种实时分布式协作机器人控制***。
根据本申请的一方面,提出了一种实时分布式协作机器人控制***,所述控制***与机器人本体连接,所述控制***包括:
Linux操作***单元,用于为建立所述机器人的操作运行环境构建Ubuntu环境;
实时内核单元,用于执行所述控制***的实时控制;其中,所述实时内核单元是基于所述Linux操作***单元,通过对原生Linux内核进行修改和编译来构建的;
数据分发服务单元,用于对数据进行分发和订阅;其中,所述数据分发服务单元是基于ROS2的环境构建的;
与所述数据分发服务单元连接的机器人控制单元,包括实时控制模块和非实时控制模块;所述实时控制模块用于基于所述实时内核单元根据实时任务计算得到第一控制指令,并将所述第一控制指令输入至EtherCAT现场总线单元;所述非实时控制模块,用于根据非实时任务计算得到第二控制指令,并将所述第二控制指令输入至所述EtherCAT现场总线单元;
所述EtherCAT现场总线单元,用于将接收到的所述实时控制模块和所述非实时控制模块发送的控制信号,通过EtherCAT总线传输到所述机器人本体的驱动器进行相应的控制。
在本申请的一些实施例中,通过以下方式构建所述实时内核单元:
对所述原生Linux内核配置实时抢占补丁,并重新编译;其中,抢占模式设置为全抢占内核,定时***设置为高分辨率计时器,定时器中断处理设置为无中断,默认的CPU频率调节策略设置为性能优先,且处理器的电源状态设置为最高级。
在本申请的一些实施例中,所述数据分发服务单元中构建服务质量策略QoS。
进一步地,所述机器人控制单元具体用于:
针对数据任务,根据正向运动学、逆向运动学、以及动力学建立模型;
根据所述模型,进行笛卡尔层和关节空间的规划;
根据所述关节空间的规划,由所述实时控制模块基于实时内核单元计算,得到针对空间的力量控制和位置控制的第一控制指令,并将所述第一控制指令输入至所述EtherCAT现场总线单元;
根据所述笛卡尔层的规划,由所述非实时控制模块计算得到针对笛卡尔层的力量控制和位置控制的第二控制指令,并将所述第二控制指令输入至所述EtherCAT现场总线单元。
在本申请的一些实施例中,所述实时控制模块具体用于:
设置所述操作***的调度模式为先进先出模式;
设置调度优先级;
对内存进行提前分配及固定;
设置拒绝处理器进入低损耗模式;
通过所述实时内核单元的高分辨率定时器进行定时,并通过设置定时周期,来根据实时任务进行计算。
其中,所述实时控制模块针对力量控制的计算公式包括:
其中,Kθ,Dθ是位置和速度比例增益系数,G(θLd)表示基于连杆端期望的位置常重力补偿,θmd为期望电机位置,θm为实际电机位置、为实际电机速度,Ti表示位置控制环力矩输出,Im为电机的惯量,In是名义的电机的惯量,T是实际的电机力矩,D为电机阻尼,Dn为名义电机的阻尼,Tm是电机控制力矩,K是刚度矩阵。
此外,本申请提出的实时分布式协作机器人控制***还包括:
视觉语义感知单元,用于采集图像,并对采集到的图像进行视觉感知处理,得到视觉语义感知数据,并将所述语义感知数据通过所述数据分发服务单元发送给所述机器人控制单元;
其中,所述机器人控制单元,还用于根据接收到的视觉语义感知数据生成对应的控制指令,并将所述对应的控制指令发送给所述EtherCAT现场总线单元。
在本申请的一些实施例中,所述机器人控制单元与所述视觉语义感知单元通过以下方式进行连接:
所述视觉语义感知单元和所述机器人控制单元运行于X86硬件平台上,所述X86硬件平台上配置GPU显卡;或者,
所述视觉语义感知单元和所述机器人控制单元运行于两个不同的X86硬件平台,其中所述视觉语义感知单元负责视觉图像的加速计算。
根据本申请提出的技术方案,通过实时内核单元的构建使操作***具有实时性,从而可以有效地提高控制***的实时性。同时,通过数据分发服务单元,可以实现分布式节点的发布和订阅,从而可以提高单个节点的实时性,进而可以提高节点间数据交互的实时性。此外,机器人控制单元中的实时控制模块会根据实时任务计算对应的控制指令,通过现场总线传输至机器人本体,从而可以实现机器人的分布式实时控制,使得控制***具有灵活性、开放性、模块化、扩展性和友好性。
本申请附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本申请的实践了解到。
附图说明
本申请上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
图1为本申请实施例所提供的一种机器人本体与控制***的连接示意图;
图2为本申请实施例所提供的一种实时分布式协作机器人控制***的结构示意图;
图3为本申请实施例所提供的一种实时分布式协作机器人控制***中机器人控制单元的工作原理示意图;
图4为本申请实施例所提供的一种实时分布式协作机器人控制***中实时控制模块的工作原理示意图;
图5为本申请实施例所提供的另一种实时分布式协作机器人控制***的结构示意图;
图6为本申请实施例所提供的另一种实时分布式协作机器人控制***中视觉语义感知单元的构建方式示意图。
具体实施方式
下面详细描述本申请的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本申请,而不能理解为对本申请的限制。
需要说明的是,控制***的实时性设计对于行业应用至关重要,例如:核工厂的控制、医疗***、铁路切换***、飞控***、空间任务、自动驾驶和机器人等等都需要精确的实时控制。其中,实时性是指必须在精确的定时内对环境中发生的事件做出反应。因此,对于实时***来说,不仅仅在于逻辑的正确,而且需要在给定的时间或者终止时间内进行数据交互,延迟或超前触发定时都将导致难以估计的损失。此外,实时***不意味着越快越好,而是要保持一个小的定时抖动,在定时周期内,执行任务的接收、计算和发送等。
在现有技术中,ROS1(RobotOperatingSystem1,第一代机器人操作***)在实现分布式节点的分发和订阅时,需要一个主节点,但是主节点的不稳定会使得***宕机。同时,对于ROS1在最初设计时,不具有实时性,所以无法实现机器人和自动化设备的实时控制。为了解决ROS1存在的问题,提出了ROS2(RobotOperatingSystem2,第二代机器人操作***)的方案,ROS2以DDS(Data Distribution Service,数据分发服务)为中间件,实现了数据的分布式发布和订阅。DDS具有多种QoS(Quality of Service,服务质量)策略,保障了数据实时、高效、灵活的分发。但是依然无法解决***延迟、抖动等实时性至关重要的问题。
基于上述问题,本申请提出了一种实时分布式协作机器人控制***。
需要说明的是,在本申请实施例中,实时分布式协作机器人控制***基于硬件平台来运行。作为一种示例,该硬件平台可以基于X86架构构建,可以包括3个以太网网卡、英特尔处理器(型号:I7_7700)、存储器、固态硬盘及3个用于急停和切断电源的继电器。其中存储器可以为DDR4(Dual Data Rate4,***双倍速率同步动态随机存储器),且内存容量为16G,固态硬盘容量可以为256G。如图1所示,机器人本体可以通过以太网线直连到该实时分布式协作机器人控制***,其中,机器人可以为单臂和双臂,且带有末端夹爪及视觉感知功能。另外,由实时分布式协作机器人控制***为机器人本体提供48V和24V的直流供电。其中48V主要用于机器人电机的供电,24V为驱动器和夹爪等执行单元供电。与该控制***外接的机器人本体,通过以太网线进行连接,连接的拓扑结构,可以是线型、树形、星型等。
图2为本申请实施例所提供的一种实时分布式协作机器人控制***的结构示意图。该控制***包括:Linux操作***单元210、实时内核单元220、数据分发服务单元230、与数据分发服务单元230连接的机器人控制单元240和EtherCAT现场总线单元250。
其中,Linux操作***单元210,用于为建立机器人的操作运行环境构建Ubuntu环境。需要说明的是,该环境为***原生Ubuntu环境,并带有GNOME桌面。作为一种示例,Linux操作***的版本可以为20.04,Linux内核版本可以为5.10.27,也可以为其他版本,本申请对此不作限定。
实时内核单元220,用于执行控制***的实时控制。其中,实时内核单元是基于Linux操作***单元,通过对原生Linux内核进行修改和编译来构建的。作为一种示例,其具体的构建方式可以为:对原生Linux内核配置实时抢占补丁,并重新编译;其中,抢占模式设置为全抢占内核,定时***设置为高分辨率计时器,定时器中断处理设置为无中断,默认的CPU频率调节策略设置为性能优先,且处理器的电影状态设置为最高级;定时器的频率可以设置1000Hz,也可以根据实际需要设置为其他频率值。
数据分发服务单元230,用于对数据进行分发和订阅。该数据分发服务单元230是基于ROS2的环境构建的,具体的构建方式可以为:首先搭建机器人的环境,建立ROS2的机器人环境;为了构建分布式节点的数据发布和订阅,在过程中可以构建服务指令策略Qos(Quality of Service Policy),用于实现***间数据交互的服务质量需求。
机器人控制单元240,包括实时控制模块241和非实时控制模块242。其中,实时控制模块241用于基于实时内核单元220根据实时任务计算得到第一控制指令,并将第一控制指令输入至EtherCAT现场总线单元250。非实时控制模块242,用于根据非实时任务计算得到第二控制指令,并将第二控制指令输入至EtherCAT现场总线单元250。
在本申请的一些实施例中,如图3所示,机器人控制单元具体用于:
针对数据任务,根据正向运动学、逆向运动学、以及动力学建立模型;
根据模型,进行笛卡尔层和关节空间的规划;
根据关节空间的规划,由实时控制模块基于实时内核单元计算,得到针对空间的力量控制和位置控制的第一控制指令,并将所述第一控制指令输入至EtherCAT现场总线单元;
根据所述笛卡尔层的规划,由所述非实时控制模块计算得到针对笛卡尔层的力量控制和位置控制的第二控制指令,并将第二控制指令输入至EtherCAT现场总线单元。
在本申请实施例中,图2中的实时控制模块241是用于实现单个节点和多个节点的数据订阅、处理和发布,通过对每个节点的实时化改造来减少抖动,降低延迟,提高响应速度,为高品质的运动控制提供保证。进一步地,该实时控制模块241具体用于:设置操作***的调度模式为先进先出模式;设置调度优先级;对内存进行提前分配及固定;设置拒绝处理器进入低损耗模式;通过实时内核单元的高分辨率定时器进行定时,并通过设置定时周期,来根据实时任务进行计算。
作为一种示例,图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)来设置定时周期,实现定时延迟;根据预设条件的判断,若任务未完成,则循环执行对于的任务,若任务完成,则结束当前任务进行下一程任务。此外,根据上述时间函数可以此次获得的时间值与上次获得的时间值的差分,可以将该差分作为定时抖动,针对该定时抖动进行分析,来设定不同的定时频率。
在本申请的一些实施例中,关节空间的力量控制和位置控制运行于实时控制模块中,用于实现实时控制。作为一种可以实现的方式,可以将实时控制模块运行于不同的进程中,实时的进程能够及时的处理实时的任务,并对各实时任务采用不同的调度,尤其对关节层采用高优先级的先进先出调度模式。此外,针对力量控制,可以将关节阻抗控制器配置在实时控制模块中,控制周期可以设定为1ms,驱动器相对应配置为周期同步转矩模式,从而实现动力学和力矩环的实时计算。其中,实时控制模块针对力量控制的计算公式如公式(1)和公式(2)所示:
其中,Kθ,Dθ分布是位置和速度比例增益系数,G(θLd)表示基于连杆端期望的位置常重力补偿,θmd为期望电机位置,θm为实际电机位置、为实际电机速度,Ti表示位置控制环力矩输出,Im为电机的惯量,In是名义的电机的惯量,T是实际的电机力矩,D为电机阻尼,Dn为名义电机的阻尼,Tm是电机控制力矩,K是刚度矩阵。需要说明的是,上述所有变量值都是经过减速比后对应的值。
在本申请实施例中,如图2所示,EtherCAT现场总线单元205,用于将接收到的实时控制模块和所述非实时控制模块发送的控制信号,通过EtherCAT总线传输到机器人本体的驱动器进行相应的控制。
需要说明的是,EtherCAT的通信是一主多从的方式,主站既可以发送数据包给从站,也可以接收从站返回的数据包;从站需要接收主站发送的数据包,并根据数据包中的指令实现应用层的控制,完成这一操作后,从站会在数据包中写入相应的信息,并且最终反馈给主站。主从站之间通信的数据包是标准的以太网数据帧结构。主站发送数据包后,从站接收数据包完成相应的应用层操作之后,改写数据包并把数据包反馈给主站,形成一个完整的EtherCAT通信过程。
在本申请实施例中,EtherCAT现场总线单元通过构建EtherCAT主站,用EtherCAT总线来实现机器人的控制。作为一种示例,可以通过软件构建EtherCAT主站,例如安装商用的Acontis主站或者开源版本IGH Etherlab和SOME主站等,并通过网卡驱动更改来将以太网控制器更改为EtherCAT控制器。
举例而言,为了实现从站和主站的连接,可以通过以下方式实现:
(1)配置PDO(Process Data Object,过程数据对象)和SDO(Service DataObiect,服务数据对象),来生成相应的描述文件。其中,输入PDO包括状态字、显示模式、实际的位置、实际的速度值、实际的位置值、实际的力矩值、数字量输入、模拟量输入。输出PDO包括控制字、操作模式、目标力矩、目标速度、目标位置。以上参数需要对于每个轴都需要进行配置,比如,对于7自由度的协作机器人需要配置7轴,另外还有一个夹爪轴。
(2)将PDO和SDO配置为同步模式,并设置总线周期。
(3)将配置好的描述文件,映射到主站对应的描述文件文件,相当于只是命名的解析。
(4)卸载安装Ubuntu时带有的网卡驱动,加载EtherCAT驱动,启动EtherCAT主站,从而实现EtherCAT主站和从站的连接。
其中,从站驱动都是EtherCAT的驱动器,通过Ethernet网线进行串联。例如,对于单臂(7个自由度),可以直接进行串联;对于双臂(14自由度,不带末端执行器),需要借助一个EtherCAT网口分线模块(如结合倍福的EK1100模块和FK1110模块,或者单独的CU1124模块)来实现。
根据本申请实施例提出的实时分布式协作机器人控制***,通过实时内核单元的构建使操作***具有实时性,从而可以有效地提高控制***的实时性。同时,通过数据分发服务单元,可以实现分布式节点的发布和订阅,从而可以提高单个节点的实时性,进而可以提高节点间数据交互的实时性。此外,机器人控制单元中的实时控制模块会根据实时任务计算对应的控制指令,通过现场总线传输至机器人本体,从而可以实现机器人的分布式实时控制,使得控制***具有灵活性、开放性、模块化、扩展性和友好性。
为了可以通过获取机器人周围环境感知,来准确地对机器人进行控制,本申请提出了另一个实施例。
图5为本申请实施例提出的另一种实时分布式协作机器人控制***的结构示意图。如图5所示,在上述实施例的基础上,该实时分布式协作机器人控制***还包括:
视觉语义感知单元560,用于采集图像,并对采集到的图像进行视觉感知处理,得到视觉语义感知数据,并将语义感知数据通过所述数据分发服务单元发送给所述机器人控制单元;
其中,机器人控制单元540,还用于根据接收到的视觉语义感知数据生成对应的控制指令,并将对应的控制指令发送给EtherCAT现场总线单元550。
可以理解,视觉感知需要较大的计算量,通常需要用GPU(GraphicProcessingUnit,图形处理器)来进行计算并行加速,所以该视觉语义感知单元与机器人控制单元的连接方式可以有两种。第一种是视觉语义感知单元和机器人控制单元运行于X86硬件平台上,且X86硬件平台上配置GPU显卡;第二种是视觉语义感知单元和机器人控制单元运行于两个不同的X86硬件平台,其中视觉语义感知单元负责视觉图像的加速计算。在本申请实施例中,图5以第二种连接方式为例进行示意。
举例而言,对于第二种连接方式,两个平台之间的通讯可以通过以太网线或者无线WIFI进行互联,且将两个X86硬件平台设置在同一IP段,同时设置相同的机器人***域。此外还在X86硬件平台中都构建ROS2的运行环境,从而通过订阅和发布的方式实现互相的通讯。
由于视觉语义感知单元560用于识别环境种的待操作对象,以及确定物体的三维空间位置等,所以在视觉语义感知单元560中需要构建对应的视觉识别算法。作为一种示例,如图6所示,视觉语义感知单元中视觉识别算法的构建,以及与机器人控制单元数据交互的实现方式可以包括以下步骤:
(1)配置视觉语义感知的环境,在Ubuntu***中,配置Nvidia驱动;
(2)安装Anaconda,通过Anaconda中的conda构建虚拟环境,以防多种软件的安装会对***环境造成破坏;
(3)在虚拟环境中安装PyTorch神经网络框架,并安装OpenCV软件和CUDA平台;
(4)在安装的环境中,用Detectron2来构建的图像识别架构;
(5)针对特定应用采集***作对象的图片和周围环境的图片,采用图像标注软件来标注图片中的类别;
(6)将图片的训练集和测试集使用基于Detectron2的架构中的MaskRCNN网络进行训练和测试。通过对图像的推理和周围环境的感知,使用图像处理工具对图像进行加工,以及对图像的尺寸大小、位置坐标、语义信息等信息的提取,从而实现特定任务的执行(如采用基于位置视觉伺服的方式对物体进行动态追踪和自适应抓取);
(7)将视觉语义感知模块处理后的数据,通过ROS2中消息或者服务的传递方式,传输给机器人控制单元,从而实现视觉语义感知单元和机器人控制单元的数据交互。
需要说明的是,在本申请实施例中,图5中的510至550与图2中的210至250具有相同的结构及功能,此处不再赘述。
根据本申请实施例提出的实时分布式协作机器人控制***,通过引入了视觉语义感知单元来对采集的图像进行视觉感知处理,并通过与机器人控制单元的数据通信,将处理后的数据通过数据分发服务单元发送给机器人控制单元,使机器人控制单元输出的控制指令更为准确,从而进一步地提高了该实时分布式协作机器人控制***的适用性及友好性。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本申请的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本申请的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
上述具体实施方式,并不构成对本申请保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本申请的精神和原则之内所作的修改、等同替换和改进等,均应包含在本申请保护范围之内。
Claims (7)
1.一种实时分布式协作机器人控制***,其特征在于,所述控制***与机器人本体连接,所述控制***包括:
Linux操作***单元,用于为建立所述机器人的操作运行环境构建Ubuntu环境;
实时内核单元,用于执行所述控制***的实时控制;其中,所述实时内核单元是基于所述Linux操作***单元,通过对原生Linux内核进行修改和编译来构建的;
数据分发服务单元,用于对数据进行分发和订阅;其中,所述数据分发服务单元是基于ROS2的环境构建的;
与所述数据分发服务单元连接的机器人控制单元,包括实时控制模块和非实时控制模块;所述实时控制模块用于基于所述实时内核单元根据实时任务计算得到第一控制指令,并将所述第一控制指令输入至EtherCAT现场总线单元;所述非实时控制模块,用于根据非实时任务计算得到第二控制指令,并将所述第二控制指令输入至所述EtherCAT现场总线单元;
所述EtherCAT现场总线单元,用于将接收到的所述实时控制模块和所述非实时控制模块发送的控制信号,通过EtherCAT总线传输到所述机器人本体的驱动器进行相应的控制;
其中,所述实时控制模块的工作原理包括:
设置操作***的调度模式为先进先出模式,然后设置较高的调度优先级;
对内存提前分配并固定,通过设置参数cpu_dma_latency为0,来拒绝处理器进入低损耗模式,从而使处理器的电源状态处于最高级;
采用高精度定时器进行定时,通过获取时间函数clock_gettime,来获得当前精确的时间,来提升计时的准确性,在这个过程中不能引入IO操作,通过始终高分辨率睡眠函数clock_nanosleep来设置定时周期,实现定时延迟;
根据预设条件的判断,若任务未完成,则循环执行对应 的任务,若任务完成,则结束当前任务执 行下一程序 任务;
所述实时控制模块具体用于:
设置所述操作***的调度模式为先进先出模式;
设置调度优先级;
对内存进行提前分配及固定;
设置拒绝处理器进入低损耗模式;
通过所述实时内核单元的高分辨率定时器进行定时,并通过设置定时周期,来根据实时任务进行计算。
2.根据权利要求1所述的***,其特征在于,通过以下方式构建所述实时内核单元:
对所述原生Linux内核配置实时抢占补丁,并重新编译;其中,抢占模式设置为全抢占内核,定时***设置为高分辨率计时器,定时器中断处理设置为无中断,默认的CPU频率调节策略设置为性能优先,且处理器的电源状态设置为最高级。
3.根据权利要求1所述的***,其特征在于,所述数据分发服务单元中构建服务质量策略QoS。
4.根据权利要求1所述的***,其特征在于,所述机器人控制单元具体用于:
针对数据任务,根据正向运动学、逆向运动学、以及动力学建立模型;
根据所述模型,进行笛卡尔层和关节空间的规划;
根据所述关节空间的规划,由所述实时控制模块基于实时内核单元计算,得到针对空间的力量控制和位置控制的第一控制指令,并将所述第一控制指令输入至所述EtherCAT现场总线单元;
根据所述笛卡尔层的规划,由所述非实时控制模块计算得到针对笛卡尔层的力量控制和位置控制的第二控制指令,并将所述第二控制指令输入至所述EtherCAT现场总线单元。
6.根据权利要求1所述的***,其特征在于,还包括:
视觉语义感知单元,用于采集图像,并对采集到的图像进行视觉感知处理,得到视觉语义感知数据,并将所述语义感知数据通过所述数据分发服务单元发送给所述机器人控制单元;
其中,所述机器人控制单元,还用于根据接收到的视觉语义感知数据生成对应的控制指令,并将所述对应的控制指令发送给所述EtherCAT现场总线单元。
7.根据权利要求6所述的***,其特征在于,所述机器人控制单元与所述视觉语义感知单元通过以下方式进行连接:
所述视觉语义感知单元和所述机器人控制单元运行于X86硬件平台上,所述X86硬件平台上配置GPU显卡;或者,
所述视觉语义感知单元和所述机器人控制单元运行于两个不同的X86硬件平台,其中所述视觉语义感知单元负责视觉图像的加速计算。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110665852.2A CN113510720B (zh) | 2021-06-16 | 2021-06-16 | 一种实时分布式协作机器人控制*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110665852.2A CN113510720B (zh) | 2021-06-16 | 2021-06-16 | 一种实时分布式协作机器人控制*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113510720A CN113510720A (zh) | 2021-10-19 |
CN113510720B true CN113510720B (zh) | 2022-03-25 |
Family
ID=78065700
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110665852.2A Active CN113510720B (zh) | 2021-06-16 | 2021-06-16 | 一种实时分布式协作机器人控制*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113510720B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114102588A (zh) * | 2021-11-23 | 2022-03-01 | 上海景吾智能科技有限公司 | 基于EtherCAT的单控制器-双机械臂装置和控制方法 |
CN114531318B (zh) * | 2022-02-25 | 2024-04-16 | 深圳市优必选科技股份有限公司 | 一种EtherCAT交换机及运动设备 |
CN117226847B (zh) * | 2023-11-02 | 2024-05-28 | 广东电网有限责任公司广州供电局 | 一种遥操作设备的控制方法及*** |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20060063573A (ko) * | 2004-12-07 | 2006-06-12 | 한국전자통신연구원 | 분산구조를 가지는 네트워크 로봇의 제어 장치 |
CN101293350A (zh) * | 2008-06-12 | 2008-10-29 | 上海交通大学 | 仿人机器人分布式双总线运动控制*** |
CN101592951A (zh) * | 2009-07-02 | 2009-12-02 | 上海交通大学 | 分布式仿人机器人通用控制*** |
CN110427039A (zh) * | 2019-08-29 | 2019-11-08 | 山东大学 | 一种基于ros2的分布式云导航***及导航方法 |
CN112091978A (zh) * | 2020-09-24 | 2020-12-18 | 哈尔滨工业大学 | 机械臂实时控制*** |
-
2021
- 2021-06-16 CN CN202110665852.2A patent/CN113510720B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20060063573A (ko) * | 2004-12-07 | 2006-06-12 | 한국전자통신연구원 | 분산구조를 가지는 네트워크 로봇의 제어 장치 |
CN101293350A (zh) * | 2008-06-12 | 2008-10-29 | 上海交通大学 | 仿人机器人分布式双总线运动控制*** |
CN101592951A (zh) * | 2009-07-02 | 2009-12-02 | 上海交通大学 | 分布式仿人机器人通用控制*** |
CN110427039A (zh) * | 2019-08-29 | 2019-11-08 | 山东大学 | 一种基于ros2的分布式云导航***及导航方法 |
CN112091978A (zh) * | 2020-09-24 | 2020-12-18 | 哈尔滨工业大学 | 机械臂实时控制*** |
Also Published As
Publication number | Publication date |
---|---|
CN113510720A (zh) | 2021-10-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113510720B (zh) | 一种实时分布式协作机器人控制*** | |
US8965574B2 (en) | Method for controlling an automated work cell | |
JP2019517929A (ja) | ロボット関節空間におけるポイントツーポイント移動の軌跡計画方法 | |
US6341246B1 (en) | Object oriented motion system | |
US12005578B2 (en) | Real-time real-world reinforcement learning systems and methods | |
CN105227488A (zh) | 一种用于分布式计算机平台的网络流组调度方法 | |
CN110412921B (zh) | 基于EtherCAT的机器人单腿高实时性控制*** | |
WO2019058861A1 (ja) | 制御システムおよび制御装置 | |
CN111687846B (zh) | 一种四足机器人分布式高实时性控制***及方法 | |
US20240100697A1 (en) | Multi-Thread Controller for Parallel Robot | |
CN114690767A (zh) | 一种机器人轨迹规划方法、***以及机器人 | |
CN116197919B (zh) | 机器人控制***及控制方法 | |
Maithripala et al. | A geometric virtual structure approach to decentralized formation control | |
KR102259503B1 (ko) | 이벤트 구동 방식 기반의 실시간 시뮬레이션 제어 방법 및 시스템 | |
US11269313B2 (en) | Controller and control system that stores data in current control cycle for output in next control cycle | |
CN115847402A (zh) | 一种融合工业总线与tsn实时网络的机器人控制*** | |
Mineo et al. | Interfacing toolbox for robotic arms with real-time adaptive behavior capabilities | |
Kannan et al. | Control algorithm and flight simulation integration using the open control platform for unmanned aerial vehicles | |
Song et al. | CONCORD: A control framework for distributed real-time systems | |
CN114115352B (zh) | 一种无人飞行器飞行控制方法、***及无人飞行器 | |
CN117040678B (zh) | 一种基于硬件时间同步的时延控制方法 | |
TWI806148B (zh) | 基於數位孿生的物料處理方法 | |
WO2023210128A1 (ja) | 電子制御装置 | |
Gutierrez et al. | A hierarchical architecture for the adaptive mode transition control of unmanned aerial vehicles | |
Hu et al. | Multi-UGV experimental platform based on cloud and edge control: design and implementation |
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 |