基于EtherCAT的工业机器人通用控制及调试系统

文档序号:37355575发布日期:2024-03-18 18:40阅读:23来源:国知局
基于EtherCAT的工业机器人通用控制及调试系统

本发明属于机器人控制,涉及一种基于ethercat工业互联网总线的工业机器人控制系统。


背景技术:

1、工业机器人在装配、喷涂、焊接等工业场景的应用拓展,对其定位稳定时间、各速度段下的轨迹精度和运动稳定性提出了更高的要求,需要开发一套算力高、健壮性好、实时性强、兼容性优、数据带宽大的机器人控制系统以承载复杂的规划控制算法。

2、ethercat(ethernet for control automation technology)是一种基于以太网的工业自动化领域实时通信技术,由倍福公司提出。相较于其他工业总线,ethercat采用主-从模式工作,具有实时性能好(通讯周期短)、灵活性高(拓扑形式多样)、设备简单(可使用通用网卡,无需引入额外硬件)、可靠性高(支持冗余)的特点,在工业互联网领域应用广泛。

3、目前基于ethercat总线的工业机器人控制系统通常采用驱控一体架构,使用专用的示教器进行运动规划,使用厂家提供的专有软件进行调试,并且仅对自身产品的控制器和机器人进行适配,具有以下缺点:

4、1.通用性差。ethercat主站向上和向下提供的接口中掺杂了大量专有协议和厂商自定义内容,通常仅能用于特定厂家的特定产品,没能根据通用规范开发通用的控制系统,兼容性糟糕。

5、2.控制系统架构落后,功能残缺。现有的机器人示教器功能以离线规划为主,缺乏对在线规划器的支持,且规划器深度绑定驱动器,无法随意更换。

6、3.控制器低速精度和高速运动性能差。虽然现有的控制器支持设置pid分组,但分组数量少,无法根据现实工况和任务需求调整pid参数;并且当前工业机器人控制领域常使用pi控制器,缺少微分环节,影响系统动态性能。

7、4.调试软件功能弱、兼容性差。国产工业机器人调试软件常为自家产品的专用软件,具体的功能支持与机器人驱动器紧密耦合;调试界面主要为字符监控窗口,缺乏直观的可视化调试能力。


技术实现思路

1、本发明为了解决现有的工业机器人控制系统存在的兼容性差,软硬件耦合性强,控制与调试能力较弱的问题。

2、基于ethercat的工业机器人通用控制及调试系统,包括ethercat主站、socket通信api、实时网络rtnet、机器人规划与控制模块、远程三维模拟模块与调试模块;远程三维模拟模块采用c/s架构,其由本地计算机下的远程三维模拟模块服务器端与远程计算机下的远程三维模拟模块显示终端组成;

3、针对工业机器人控制系统运行环境,在linux发行版中引入硬实时调度器,实现进程的实时调度;构建实时环境是通过引入xenomai实时操作系统实现的:xenomai在linux内核的基础上,引入cobalt内核,将单内核模式改为双内核模式,常规linux内核负责非实时任务和实时任务的初始化,xenomai下的cobalt内核负责实时任务的运行;每当发出一个新的实时进程创建请求,先由linux内核创建进程并分配内存空间,归类为非实时进程;随后切换至cobalt内核下实时运行,成为实时进程;在双内核模式下,linux内核优先级低于cobalt内核,接受实时调度;同时在cobalt内核中加入i-pipe补丁,i-pipe补丁位于计算机硬件与cobalt内核之间,构建一层硬件抽象层,xenomai系统运行时,由i-pipe补丁统一处理中断请求;通过对linux启动引导程序的设置实现内核级的实时域与非实时域间的隔离;通过linux的grub引导程序,将多处理器计算机系统逻辑核心分为第一处理器集和第二处理器集两部分,在操作系统的引导阶段将不同的系统引导至不同的逻辑cpu核上运行,第一处理器集用于运行xenomai系统,承载实时任务,第二处理器集用于运行linux发行版,承载非实时任务;

4、ethercat主站用于引导ethercat从站进入operation mode状态,即op状态,ethercat从站即工业机器人驱动器,ethercat主站通过pdo数据报与sdo数据报的形式与工业机器人驱动器硬件通信;ethercat主站的部分线程具有实时性;ethercat主站使用socket通信api在机器人规划与控制模块、远程三维模拟模块、调试模块和工业机器人本体间传递数据;socket通信api用于在实时与实时进程之间、实时与非实时进程之间实现域内和跨域的全双工通信;在运行远程三维模拟模块显示终端的远程计算机和运行远程三维模拟模块服务器端的本地计算机之间实现单工的网络通信;实时部分下的ethercat主站通过实时网络rtnet下发ethercat的pdo和sdo数据报至配套的工业机器人驱动器,从而控制机器人关节的位置、速度和力矩目标值;

5、机器人规划与控制模块用于进行机器人的轨迹规划,并通过自适应pid控制器对机器人进行控制;机器人规划与控制模块具有实时性;

6、远程三维模拟模块远程显示机器人运行状态,通过模拟计算各关节力矩;远程三维模拟模块不具有实时性;

7、调试模块本地显示机器人关节空间下的位置、速度、力矩目标值与实际值;调试模块不具有实时性;

8、机器人规划与控制模块、ethercat主站的实时部分运行于xenomai用户态,rtnet运行于xenomai内核态,两者接受实时调度;远程三维模拟模块、ethercat主站的非实时部分与调试模块属于linux下的非实时进程,运行于linux用户态。

9、进一步地,调试模块为opengl调试模块。

10、进一步地,ethercat主站的网络架构实时化方式如下:

11、通过cobalt内核下的rtnet搭建实时网络,通过cobalt内核提供的实时驱动模型rtdm对ethercat主站进行实时化改造,将cobalt内核系统调用转换到实时域上,ethercat主站程序能够自由地调用实时网卡驱动收发ethercat数据包。

12、进一步地,ethercat主站程序分为初始化与终端信息打印线程、实时通信线程、ethercat状态机监测线程和键盘事件监测线程;

13、初始化与终端信息打印线程为主线程,主线程在启动时负责初始化部分的工作,在初始化完成后负责接收实时实时通信线程传递的信息,并将其打印到远程三维模拟模块服务器端或远程三维模拟模块显示终端;在初始化与终端信息打印线程的初始化过程中,ethercat主站会在主线程启动前通过shell脚本自动开启rtnet实时网络用以承载ethercat通信,随后启动ethercat主站;主线程读取ethercat从站信息,并根据从站驱动器设备名以字符串匹配的模式在数据库中检索对应的xml文件用以查找对应的esi文件,根据cia402标准化子协议和制造商特定子协议中的伪字节相关条目初始化pdo映射,引导ethercat从站进入op状态,ethercat操作模式切换至cst模式,由此完成ethercat主站的初始化,并以有名信号量的方式发送信号以引导实时通信线程运行;随后主线程阻塞式地接收并解码主站实时通信线程发送的数据,并在终端打印输出;如果主线程收到了其他线程发出的线程结束信号,那么主线程负责将ethercat总线状态机恢复至init状态,并结束主线程;

14、实时通信线程通过xenomai提供的实时域内数据报协议iddp实现同机器人规划与控制模块的点对点通信,通过xenomai提供的跨域数据报协议xddp实现与调试模块和主站初始化与终端信息打印线程的点对点通信,通过ethercat总线实现同各个ethercat从站的通信;

15、ethercat状态机监测线程负责定时监测ethercat总线状态机,并在从站报错时负责恢复将其至正常状态;

16、键盘事件监测线程负责监听用户的按键事件,并实现程序的退出和急停状态的退出功能。

17、进一步地,在ethercat主站初始化的过程中,通过扫描网络上的ethercat从站的方式获取当前的ethercat从站数量,通过读取从站xml配置文件的方式获取从站与关节数量的映射关系;随后以服务数据对象sdo写入的方式根据发送pdo与接收pdo信息进行pdo映射;各关节的pdo数据报存储于栈中,通过从站对应的内存地址加上对应数量减一的pdo数据报长度,得到指向该从站对应关节pdo数据报的指针地址;ethercat主站运行时,只需要向对应于机器人关节总数的指针中填入对应的pdo数据报数据,不关注ethercat从站的数量。

18、进一步地,实时通信线程的处理过程如下:

19、实时通信线程会在线程创建后首先执行cpu亲和力绑定与实时线程调度方式设置,以此提高此线程的优先级,同时最大化利用cpu核心和缓存资源;随后,实时通信线程将xddp与iddp通信初始化为监听对应的地址;之后,实时通信线程会阻塞式地等待主线程发送的信号量,并在信号量到达后进入主循环;实时通信线程在主循环中首先读取clock_monotonic高精度定时器的时间信息,并通过clock_nanosleep函数以纳秒精度休眠至下一个ethercat通讯周期;在休眠完成后,实时通信线程读取txpdo数据报,根据cia402协议解码出状态字对应的状态,随后根据此状态和ethercat总线状态机的状态切换过程编码对应的控制字,随后向与之通信的各个线程的地址发送iddp或xddp数据包;并将接收到的iddp数据包进行解码,随后写入rxpdo数据包中,最后通过ethercat总线发送;iddp数据包的收发均采用非阻塞的方式进行。

20、进一步地,ethercat主站程序中,实时通信线程赋予最高实时优先级;ethercat状态监测线程赋予低实时优先级;初始化与终端信息打印线程不添加实时优先级;键盘事件监测线程无实时优先级。

21、进一步地,socket通信api用于在实时与实时进程之间、实时与非实时进程之间实现域内和跨域的全双工通信的过程如下:

22、基于socket通信的方式,ethercat主站与上层机器人规划与控制模块中的规划器进行点对点的全双工通信,对应的通信使用xenomai提供的实时域内数据报协议iddp实现实时进程间的通信;全双工用于实现伺服控制,ethercat主站读取电机编码器数据并重新打包,随后通过iddp转发至上层的规划器,规划器以此为起始位置开始规划任务;机器人规划与控制模块通过自适应pid控制器对机器人进行控制,自适应pid控制器向上接收规划器线程传递的目标位置和速度与转矩偏移量,向下接收电机位置、速度和力矩的实际值,然后计算出各关节的转矩目标值,通过ethercat主站下发至电机;ethercat主站通过xddp向非实时进程打印数据,通过调试模块显示位置、速度、转矩的目标值与实际值,输出实际指令;

23、基于socket通信的方式,实时域与非实时域间进行全双工通信,对应的通信使用xenomai提供的跨域数据报协议xddp实现实时进程与非实时进程间的通信,ethercat主站通过xddp向ethercat主站非实时线程与调试模块输出信息;

24、xddp和iddp的通信周期相互独立。

25、进一步地,ethercat主站与上层机器人规划与控制模块中的规划器进行点对点的全双工通信的通信协议包括帧头、预留指令字、电机位置、电机速度、关节力矩信息和crc校验位;预留的指令字接口用于功能拓展。

26、进一步地,机器人规划与控制模块通过xddp协议单向地与远程三维模拟模块服务器端通信。

27、有益效果:

28、本发明向下实现了与工业机器人硬件系统解耦的ethercat总线实时通信,向上实现了面向调试的功能模块、通用的控制器与配套接口,主要体现在以下几个方面:

29、本发明实现了面向不同厂家xml配置文件的通用pdo初始化逻辑单元,能够自动根据不同厂家的ethercat从站驱动器信息选择对应的xml文件,并以此为依据开展pdo通信的初始化流程,引入了与驱动器内部从站数目无关的伺服轴软件兼容层,实现了对不同厂家不同型号的六轴工业机器人设备的兼容性。该方案在上层主机端使用通用硬件实现,成本低廉且供应充足,实现了软硬件解耦,在机器人端无需对硬件进行改造,容易在现有设备上实现。

30、本发明实现了对不同厂家不同型号的工业机器人的通用实时ethercat主站。通过canopen标准中规定的pdo数据报实现主站与从站驱动器间的数据交换,主站下发机器人各关节期望的操作模式和对应数据的目标值,从站返回电机的实际工作状态和各参数的实际值。主站具有高实时性,能够对不同构型和不同减速比配置的工业机器人进行实时控制,可满足快速高精度控制需求。

31、本发明实现了基于周期同步转矩模式控制的全速度段下的机器人自适应pid控制器。采用前馈、反馈与滤波相结合的方式,兼顾了低速状态下的精度和高速状态下的快速运动能力。

32、本发明实现了与底层硬件弱相关的通用api接口,能够通过socket实现点对点的阻塞式和非阻塞式全双工通信和异步的关键信息显示功能,并针对cia402协议中规定的标准化工业机器人操作模式实现对不同种类的运动规划器的兼容。整体控制系统架构实现了对不同层级的实时任务和非实时任务处理,保证系统的实时性、健壮性、兼容性、拓展性。具有开发简单、使用方便的特点。

33、本发明实现了基于opengl的图形化二维本地调试软件与基于websocket与webgl技术的远程三维模拟软件。本地调试软件可实时显示机器人关节空间下的位置、速度、力矩目标值与实际值,远程三维模拟软件通过基于mujoco的正逆动力学演算程序,能够实时显示机器人当前位姿。该系统提供了一套运行于模拟环境中的虚拟机械臂,开发人员可在此环境中进行算法验证与测试工作,验证无误后再对实际硬件进行控制,缩短了算法开发的时间,提高了开发过程中的安全性。远程访问的方式可通过局域网对工业现场的任一设备进行远程调试,节约了时间与成本,提高了对异常情况的响应速度,提高了调试的安全性,同时也提高了调试能力。

34、在本发明的基于ethercat的工业机器人通用控制及调试系统中,所述机器人控制单元采用基本频率为2.1ghz的8核x86处理器,ethercat通信周期为1ms,自适应pid控制器的控制周期为1ms。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1