一种基于ethercat总线的机器人控制系统及方法
技术领域
1.本发明属于机器人控制技术领域,涉及一种基于ethercat总线的机器人控制系统及方法。
背景技术:
2.随着工业机器人在焊接、装配、人机协同等领域的应用,对其轨迹精度、交互能力、稳定性等提出更高的要求。为了满足这些需求,工业机器人加入了视觉、力觉等多种传感器,结合高性能的控制算法,完成更复杂的任务。高性能的机器人控制算法需要性能更强的控制系统承载,所以需要开发出一套计算能力强、稳定性好、响应速度快、实时性强、数据带宽高的机器人控制系统实现对机器人的稳定控制。
3.为了满足上述需求,工业机器人控制系统常采用ethercat总线作为通信总线。ethercat,也被称为以太网自动化技术,其中cat为control automation technology,译为控制自动化技术,最初有德国倍福自动化有限公司(beckhoff automation gmbh)研发设计。ethercat总线是一种实时以太网技术,支持多种拓扑结构,具备稳定性好、实时性强、响应速度快、数据带宽高等优点,被广泛应用工业机器人控制领域。
4.目前基于ethercat总线的机器人控制系统一般使用arm或x86等通用cpu的控制器,在其基础上运行经过实时化改造后的linux系统,在linux系统上部署ethercat主站,实现与机器人本体的数据交换,同时在linux上编写机器人控制算法,实现对机器人的控制。这种方式存在的缺点是经过实时化改造的linux系统为软实时方案,相较于硬实时方案,实时性能较差,无法满足机器人高速响应的需求;同时这种方法采用的是通用cpu架构,无法满足避障、抓取等需要视觉传感器参与的大规模运算任务;另外,这种控制系统将机器人控制任务中上层的决策任务、中层的控制任务和下层的通信任务放在同一系统中,无法有效保证机器人运行的稳定性。
技术实现要素:
5.为解决上述技术问题,本发明的目的是提供一种基于ethercat总线的机器人控制系统及方法,该系统具备单独的图像处理单元,通用处理单元、机器人控制单元以及硬实时方案的ethercat主站通信单元,将机器人控制系统中的决策层、控制层和通信层通过硬件分立,提高机器人控制的响应性能和稳定性,同时该套系统也能应对视觉传感器参与的大规模计算任务。
6.本发明提供一种基于ethercat总线的机器人控制系统,用于对机器人本体的各个关节的伺服电机进行控制,包括:视觉传感器、ethercat主站通信单元、机器人控制单元、通用处理单元和图像处理单元;
7.所述ethercat主站通信单元与机器人本体进行数据交换,接收机器人状态数据并依次上传给机器人控制单元和通用处理单元;
8.所述图像处理单元用于处理视觉传感器采集的图像数据,使用深度学习算法对图
像数据进行处理,获取目标位置信息和障碍物位置信息;
9.所述通用处理单元接收机器人状态数据并结合目标位置信息和障碍物位置信息,通过避障和规划算法计算出机器人末端关节运动轨迹数据;
10.所述机器人控制单元用于对机器人末端关节运动轨迹数据进行运动学解算和关节运动轨迹插补处理,计算出机器人各个关节的运动轨迹,并将相应的控制指令下发到ethercat主站通信单元以对机器人进行控制。
11.在本发明的基于ethercat总线的机器人控制系统中,所述ethercat主站通信单元采用ethercat主站通信芯片,由芯片内部的硬件定时器提供定时依据;ethercat主站通信芯片经过接口转换电路使用rj45接口与机器人本体进行数据交换,并通过spi通信与机器人控制单元进行数据交换,ethercat主站通信芯片中采用cia402协议实现对机器人的伺服控制。
12.在本发明的基于ethercat总线的机器人控制系统中,所述机器人控制单元采用主频为200mhz的arm cortex-r5微控制器,由微控制器内部的硬件定时器提供定时依据。
13.在本发明的基于ethercat总线的机器人控制系统中,所述机器人控制单元所接收的机器人末端关节运动轨迹数据为等间隔离散数组,间隔为100ms,通过机器人控制单元内部的机器人逆运动学算法解算出各个关节的运动轨迹,同时将周期100ms的数据通过插补算法插补为周期1ms的数据,并下发到ethercat主站通信单元,并传递给机器人本体,完成对机器人的控制。
14.在本发明的基于ethercat总线的机器人控制系统中,所述视觉传感器包括彩色相机和深度相机,通用处理单元通过usb接口读取视觉传感器采集的图像数据;所述通用处理单元还设有人机交互接口。
15.在本发明的基于ethercat总线的机器人控制系统中,所述机器人状态数据包括:机器人各个关节伺服器回传的伺服电机的当前位置、当前速度、当前加速及当前关节力矩;
16.所述机器人末端关节运动轨迹数据包括:运动轨迹位置、速度和加速度;
17.所述控制指令包括:机器人各个关节的伺服电机的目标位置、目标速度、目标加速度。
18.本发明还提供一种基于ethercat总线的机器人控制方法,其特征在于,该控制方法采用三个功能层进行控制,包括:通信层、控制层和决策层;
19.所述通信层用于处理ethercat总线通信任务,为实时任务,通信周期为1ms,通过ethercat总线与机器人本体进行数据交换,并将数据上传到控制层,由ethercat主站通信单元实现;
20.所述控制层用于处理机器人的控制任务,为实时任务,控制周期为1ms,任务包括机器人运动学解算和关节轨迹插补,接收来自决策层机器人末端运动轨迹,经过运动学解算和插补以后,将数据下发到通信层,实现对机器人的控制,由机器人控制单元实现;
21.所述决策层用于机器人控制系统中的高级策略任务,为非实时任务,周期一般定为100ms,高级策略任务主要包括目标检测、障碍物识别、轨迹规划、人机交互任务,由通用处理单元和图像处理单元实现;所述控制方法包括:
22.(1)ethercat主站通信单元接收机器人状态数据并依次上传给机器人控制单元和通用处理单元;
23.(2)通用处理单元接收视觉传感器采集的图像数据,经过属于预处理后传输给图像处理单元;
24.(3)图像处理单元使用深度学习算法对预处理后的图像数据进行处理,获取目标位置信息和障碍物位置信息;
25.(4)通用处理单元接收机器人状态数据并结合目标位置信息和障碍物位置信息,通过避障和规划算法计算出机器人末端关节运动轨迹数据;
26.(5)机器人控制单元对机器人末端关节运动轨迹数据进行运动学解算和关节运动轨迹插补处理,计算出机器人各个关节的运动轨迹,并将相应的控制指令下发到ethercat主站通信单元;
27.(6)ethercat主站通信单元根据cia402协议实现对机器人的伺服控制。
28.本发明的一种基于ethercat总线的机器人控制系统及方法,至少具有以下有益效果:
29.1、控制系统采用ethercat主站芯片作为ethercat总线的主站,以硬实时方案保证了ethercat通信的性能,实时性能更强,通信响应速度更高,稳定性更强;
30.2、控制方法中采用上、中、下三个功能层进行控制,分别对应决策、控制和通信三种任务,将机器人的各种控制任务分为实时任务和实时任务,并将任务分配到不同的硬件单元和软件层级中分立运行,保证了系统实时性的同时,还能提升控制系统的稳定性和兼容性;
31.3、该控制系统中有单独的图像处理单元,能够执行目标检测、语义分割、障碍物识别等运算量较大的任务,增强了控制系统的运算能力,能够融合基于深度学习的场景理解算法,使得机器人更加智能。
附图说明
32.图1为本发明的一种基于ethercat总线的机器人控制系统的架构示意图;
33.图2为ethercat网络初始化及总站配置流程。
具体实施方式
34.如图1所示本发明的一种基于ethercat总线的机器人控制系统,用于对机器人本体的各个关节的伺服电机进行控制。包括:视觉传感器、ethercat主站通信单元、机器人控制单元、通用处理单元和图像处理单元。
35.所述ethercat主站通信单元与机器人本体进行数据交换,接收机器人状态数据并依次上传给机器人控制单元和通用处理单元。所述图像处理单元用于处理视觉传感器采集的图像数据,使用深度学习算法对图像数据进行处理,获取目标位置信息和障碍物位置信息。所述通用处理单元接收机器人状态数据并结合目标位置信息和障碍物位置信息,通过避障和规划算法计算出机器人末端关节运动轨迹数据。所述机器人控制单元用于对机器人末端关节运动轨迹数据进行运动学解算和关节运动轨迹插补处理,计算出机器人各个关节的运动轨迹,并将相应的控制指令下发到ethercat主站通信单元以对机器人进行控制。
36.本发明的技术方案总体思路如下:ethercat主站通信单元负责通信任务,通过ethercat总线与下层的机器人本体进行数据交换,通过spi通信与上层的机器人控制单元
连接,传输机器人状态数据和控制指令。机器人控制单元负责控制任务,接收通信单元传输来的机器人状态数据并上传到上层的通用处理单元,同时接收上层通用处理单元发送来的机器人末端关节运动轨迹数据,通过插补算法计算插补轨迹,然后通过机器人逆运动学算法解析出机器人各个关节的控制指令,最后下发到ethercat主站通信单元,最终传递给机器人本体。通用处理单元和图像处理单元负责机器人控制系统中的决策任务,图像处理单元处理彩色相机或深度相机传回的图像数据,实现机器人的场景理解任务,完成目标检测、障碍物识别等任务,将识别到的目标位置传递给通用处理单元。通用处理单元通过避障、规划算法等规划出机器人的运动轨迹,并下发到机器人控制单元,完成对机器人的控制。
37.本发明的系统框架图如图1所示,下面将具体介绍各个单元的功能。
38.ethercat主站通信单元使用台湾讯成科技股份有限公司的ecm-xf型ethercat主站芯片,该型芯片是一款经济高效的ethercat主站芯片,通过spi接口连接上层控制器,以实现ethercat通信。该ethercat主站芯片的最小通信周期为125us,最大支持128个ethercat从站。该主站芯片使用的spi通信支持全双工从站模式,时钟频率为96mhz。相比其他ethercat主站方案,使用该型主站芯片构建ethercat主站配置简单,芯片内部已经将ethercat函数库写好,并通过内部的硬件定时器实现了硬件级的实时性,保证了ethercat总线的实时性和稳定性。该ethercat主站内部支持cia402协议,该协议是伺服电机运动控制协议。ethercat主站通信单元内部的ethercat网络初始化及总站配置流程如图2所示:首先初始化化ethercat网络,将ethercat网络状态切换到pre-op模式;然后配置pdo参数和从站参数;之后启用内置cia402协议控制;然后将ethercat网络状态切换到safe-op模式,pdo前置配置,然后切换ethercat网络状态到op模式;最后进入cia402控制循环,包括故障响应及错误码清除,402状态控制和402状态读取等。
39.ethercat主站通信单元通过ethercat总线与机器人本体进行数据交换,实现对机器人的控制,交换的数据包括接收和发送的信息。接收的信息包括机器人各个关节伺服器回传的伺服电机的当前位置、当前速度、当前加速及当前关节力矩等机器人状态信息。发送的信息则是伺服电机的目标位置、目标速度、目标加速度等机器人关节控制信息。同时ethercat主站通信单元通过spi通信将接收到的机器人状态信息上传到机器人控制单元,同时接收机器人控制单元发送的机器人控制指令。
40.机器人控制单元将接收到的机器人状态数据进一步上传到上层通用处理单元,同时接收来自通用处理单元机器人的机器人末端关节运动轨迹数据。接收到的运动轨迹数据为等间隔离散数组,间隔为100ms,每个数组包括机器人运行轨迹的位置、速度、加速度数据。上层通用处理单元传递来的运动数据轨迹为机器人末端关节的运行轨迹,需要通过机器人控制单元内部的机器人逆运动学算法解算出各个关节的运动轨迹,同时将周期100ms的数据通过插补算法插补为周期1ms的数据,并下发到ethercat主站通信单元,并传递给机器人本体,完成对机器人的控制。该单元为arm cortex-r5微控制器,该型微控制器为arm v7-r isa架构,使用thumb-2指令集,带有dsp扩展,具有单精度浮点运算单元,运行频率为200mhz,性能完全满足以上算法的运算需求,同时也保证了控制系统的实时性、稳定性和兼容性。
41.上层的通用处理单元用于实现数据交换、任务调度、轨迹规划、人机交互等功能。在该单元中,运行linux系统,通过ros机器人操作系统或自行编写的机器人操作框架实现
机器人运动规划、人机交互等任务。该单元接收来自下层的机器人状态数据,同时结合来自图像处理单元传递来的障碍物芯及人类给出的目标位置指令,对机器人运行轨迹进行规划,绕开障碍物,到达目标位置,完成抓取、搬运、人机协同等任务。该单元为8核arm v8.2 64位carmel cpu,16gb内存,平衡了性能和功耗之间的矛盾,该单元能够保证机器人规划算法的解算周期为100ms,为非实时任务。
42.图像处理单元则用于机器人的场景理解任务,处理彩色相机和深度相机等视觉传感器传回的图像数据,视觉传感器用于感知机器人所处的环境,通用处理单元通过usb接口读取视觉传感器采集到的数据,经过数据预处理后传递给图像处理单元。通过彩色相机提供给控制系统环境的色彩和光照信息,通过深度相机提供给控制系统所处环境的几何距离信息。使用基于深度学习的多模态特征提取、目标检测、语义分割、位姿估计等算法帮助机器人对所处环境进行场景理解,获取要抓取物体的位置、障碍物位置等信息,将这些信息传递给通用处理单元,给轨迹规划算法提供环境依据。该单元为512核心volta架构的nvidia cuda处理器,该处理器具有11tflops(fp16)或22tops(int8)的运算能力,能够保证深度学习算法的计算速度,保证该单元的计算周期为100ms,为非实时任务。
43.本发明的控制系统中的机器人控制单元、通用处理单元、图像处理单元使用nvidia jetson agx xavier边缘计算设备实现。
44.本发明还提供一种基于ethercat总线的机器人控制方法,该控制方法采用三个功能层进行控制,包括:通信层、控制层和决策层;
45.所述通信层用于处理ethercat总线通信任务,为实时任务,通信周期为1ms,通过ethercat总线与机器人本体进行数据交换,并将数据上传到控制层,由ethercat主站通信单元实现,由ethercat主站芯片内的硬件定时器保证实时性;
46.所述控制层用于处理机器人的控制任务,为实时任务,控制周期为1ms,任务包括机器人运动学解算和关节轨迹插补,接收来自决策层机器人末端运动轨迹,经过运动学解算和插补以后,将数据下发到通信层,实现对机器人的控制,由机器人控制单元实现,具体采用arm cortex-r5微控制器,由微控制器内部的硬件定时器提供定时依据;
47.所述决策层用于机器人控制系统中的高级策略任务,为非实时任务,周期一般定为100ms,高级策略任务主要包括目标检测、障碍物识别、轨迹规划、人机交互任务,由通用处理单元和图像处理单元实现。具体控制方法包括如下步骤:
48.(1)ethercat主站通信单元接收机器人状态数据并依次上传给机器人控制单元和通用处理单元;
49.(2)通用处理单元接收视觉传感器采集的图像数据,经过属于预处理后传输给图像处理单元;
50.(3)图像处理单元使用深度学习算法对预处理后的图像数据进行处理,获取目标位置信息和障碍物位置信息;
51.(4)通用处理单元接收机器人状态数据并结合目标位置信息和障碍物位置信息,通过避障和规划算法计算出机器人末端关节运动轨迹数据;
52.(5)机器人控制单元对机器人末端关节运动轨迹数据进行运动学解算和关节运动轨迹插补处理,计算出机器人各个关节的运动轨迹,并将相应的控制指令下发到ethercat主站通信单元;
53.(6)ethercat主站通信单元根据cia402协议实现对机器人的伺服控制。
54.本发明控制方法将任务分为实时任务和非实时任务,并将这两种任务放在了不同的单元模块,保证系统实时性、稳定性,同时也保证了系统的兼容性和扩展性。此外,随着图像处理单元的加入,也增强了控制系统的运算能力,能够融合基于深度学习的场景理解算法,使得机器人更加智能。
55.以上所述仅为本发明的较佳实施例,并不用以限制本发明的思想,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
技术特征:
1.一种基于ethercat总线的机器人控制系统,用于对机器人本体的各个关节的伺服电机进行控制,其特征在于,包括:视觉传感器、ethercat主站通信单元、机器人控制单元、通用处理单元和图像处理单元;所述ethercat主站通信单元与机器人本体进行数据交换,接收机器人状态数据并依次上传给机器人控制单元和通用处理单元;所述图像处理单元用于处理视觉传感器采集的图像数据,使用深度学习算法对图像数据进行处理,获取目标位置信息和障碍物位置信息;所述通用处理单元接收机器人状态数据并结合目标位置信息和障碍物位置信息,通过避障和规划算法计算出机器人末端关节运动轨迹数据;所述机器人控制单元用于对机器人末端关节运动轨迹数据进行运动学解算和关节运动轨迹插补处理,计算出机器人各个关节的运动轨迹,并将相应的控制指令下发到ethercat主站通信单元以对机器人进行控制。2.如权利要求1所述的基于ethercat总线的机器人控制系统,其特征在于,所述ethercat主站通信单元采用ethercat主站通信芯片,由芯片内部的硬件定时器提供定时依据;ethercat主站通信芯片经过接口转换电路使用rj45接口与机器人本体进行数据交换,并通过spi通信与机器人控制单元进行数据交换,ethercat主站通信芯片中采用cia402协议实现对机器人的伺服控制。3.如权利要求1所述的基于ethercat总线的机器人控制系统,其特征在于,所述机器人控制单元采用主频为200mhz的arm cortex-r5微控制器,由微控制器内部的硬件定时器提供定时依据。4.如权利要求1所述的基于ethercat总线的机器人控制系统,其特征在于,所述机器人控制单元所接收的机器人末端关节运动轨迹数据为等间隔离散数组,间隔为100ms,通过机器人控制单元内部的机器人逆运动学算法解算出各个关节的运动轨迹,同时将周期100ms的数据通过插补算法插补为周期1ms的数据,并下发到ethercat主站通信单元,并传递给机器人本体,完成对机器人的控制。5.如权利要求1所述的基于ethercat总线的机器人控制系统,其特征在于,所述视觉传感器包括彩色相机和深度相机,通用处理单元通过usb接口读取视觉传感器采集的图像数据;所述通用处理单元还设有人机交互接口。6.如权利要求1所述的基于ethercat总线的机器人控制系统,其特征在于,所述机器人状态数据包括:机器人各个关节伺服器回传的伺服电机的当前位置、当前速度、当前加速及当前关节力矩;所述机器人末端关节运动轨迹数据包括:运动轨迹位置、速度和加速度;所述控制指令包括:机器人各个关节的伺服电机的目标位置、目标速度、目标加速度。7.一种基于ethercat总线的机器人控制方法,其特征在于,该控制方法采用三个功能层进行控制,包括:通信层、控制层和决策层;所述通信层用于处理ethercat总线通信任务,为实时任务,通信周期为1ms,通过ethercat总线与机器人本体进行数据交换,并将数据上传到控制层,由ethercat主站通信单元实现;所述控制层用于处理机器人的控制任务,为实时任务,控制周期为1ms,任务包括机器
人运动学解算和关节轨迹插补,接收来自决策层机器人末端运动轨迹,经过运动学解算和插补以后,将数据下发到通信层,实现对机器人的控制,由机器人控制单元实现;所述决策层用于机器人控制系统中的高级策略任务,为非实时任务,周期一般定为100ms,高级策略任务主要包括目标检测、障碍物识别、轨迹规划、人机交互任务,由通用处理单元和图像处理单元实现;所述控制方法包括:(1)ethercat主站通信单元接收机器人状态数据并依次上传给机器人控制单元和通用处理单元;(2)通用处理单元接收视觉传感器采集的图像数据,经过属于预处理后传输给图像处理单元;(3)图像处理单元使用深度学习算法对预处理后的图像数据进行处理,获取目标位置信息和障碍物位置信息;(4)通用处理单元接收机器人状态数据并结合目标位置信息和障碍物位置信息,通过避障和规划算法计算出机器人末端关节运动轨迹数据;(5)机器人控制单元对机器人末端关节运动轨迹数据进行运动学解算和关节运动轨迹插补处理,计算出机器人各个关节的运动轨迹,并将相应的控制指令下发到ethercat主站通信单元;(6)ethercat主站通信单元根据cia402协议实现对机器人的伺服控制。
技术总结
本发明的一种基于EtherCAT总线的机器人控制系统及方法,该系统采用硬件EtherCAT主站方案,保证了通信总线的实时性和稳定性,机器人控制单元内部具备硬件定时,保证机器人控制任务的强实时性和快速响应能力,图像处理单元和通用处理单元用于完成更高级的决策任务,较强的算力保证了算法的运行速度;控制方法采用三个功能层进行控制,决策层任务包括机器人轨迹规划、人机交互、数据交换、场景理解等任务,控制层用于完成机器人的运动学解算、插补解算等任务,通信层用于EtherCAT总线数据收发任务。控制方法将任务分为实时任务和非实时任务,并放在不同的单元模块,保证系统实时性、稳定性、兼容性和扩展性。兼容性和扩展性。兼容性和扩展性。
技术研发人员:房立金 赵乾坤 许继谦 宋堂忠 钱奕安
受保护的技术使用者:东北大学
技术研发日:2021.12.15
技术公布日:2022/3/8