主管QQ:站内信联系

机器人的运动控制系统(二)——机械臂具体案例2023-10-01 11:34

  鉴于运动控制器和伺服系统在各行各业应用的范围实在太广,存在很多不同版本的名词和定义,因此我们需要首先约定一下

  两部分,广泛应用于各种需要高性能运动控制的工业场合、专用机械和设备上。由于国产机器人行业发展时间尚短,国内机器人厂商几乎全部使用标准通用伺服作为关节控制器。高端欧美科尔摩根、伦茨、力士乐,中端安川、山洋、松下、多摩川、台达,低端国产一众品牌。

  ,即上层的轨迹规划和控制部分,大家常说的工业机器人控制系统就是指的这部分,常见的进口有KEBA,国产有卡诺普S80、珞石Titanite等,不包含伺服控制的功能。

  几乎所有的国产机器人都是用了独立控制系统+独立通用伺服驱动器的方案,控制系统和伺服之间使用脉冲或者总线通信。

  对于通用的伺服驱动器来讲,基于PID控制的方式对于工业机器人关节这样一个时变非线性的被控对象控制效果不佳;对于控制器来讲,也很难直接获取关节的各种状态来优化控制策略,从而无法实现高性能的机器人控制。

  得益于几十年的先发优势,世界上主流的外资机器人品牌基本上都抛弃了上述的机器人独立控制器+独立伺服的架构,转而采用驱动一体的方案。

  常见的做法是将多个关节伺服的位置环和速度环计算放到主控制器中进行,外面配置一个支持多轴的功率驱动模块。

  当然随着硬件计算能力的提升,越来越多的厂商开始把软件计算统一到一个主控上,譬如KUKA在KRC2时代的硬件架构与ABB的IRC5类似,但是KRC4改成了位置环和速度环统一放到主控制器的x86处理器上去做。

  x86的主计算机(Main Computer),负责机器人上层规划、控制及外部通信;

  基于PowerPC的轴计算机(Axis Computer),负责处理伺服位置和速度,可看做通用驱动器中的控制部分;

  功率模块,ABB称为驱动模块(Drive Module),其他厂家可能也称为放大器(Amplifier),可看做通用驱动器中的驱动部分;

  对于机器人来讲,控制操作空间的行为与控制关节电机行为并无本质区别,在软件层面上,采用驱控统一的架构,可以带来更多好处:

  在控制系统中通常需要一具备 Real-time 的环境来运行工业通讯和运动控制的演算。

  1)PC通过扩充一张通讯卡或是运动控制卡, 其卡片上搭载专用的 MCU 或 DSP 处理器,由卡片上的的高速处理器提供实时作业环境, 或者更进一步的运动控制功能,我们称作硬件实时(Hardware Real-Time)。 如,使用固高、雷赛等国内外的运动控制卡。X86 CPU负责软件基本事物管理,DSP负责运动实时插补。

  2)架构是在系统中扩充另外一个实时操作系统,来提供 Realtime 环境,又称软件实时(Software Real-Time),例如以 Microsoft Windows 操作系统可另外安装 RTX 实时软件,将原本不具有实时性的 Windows 操作系统转化成具有实时的特性。 Liunx系统也可以通过安装实时内核的方案,搭建一个实时的操作系统。构成windows+实时拓展或linux+实时拓展的组合。

  3)随着计算机技术的进步,多核心 CPU 以及 SMP (Symmetric Multi-Processing) 技术,让不同操作系统可以运行再多核心 CPU 之上,以双核心 CPU 为例,可设定其中一核心供 Windows 操作系统使用,主要用来处理人机接口显示或非实时性的计算,另一核心供实时操作系统用来运行需实时性的工作,如运动控制计算。倍福软PLC便采用这种解决方案,倍福TwinCAT3可以锁定一个CPU核用于专门处理实时运行的。

  4)主从PC式,这种在工业上不常见,因为除非面对复杂任务,该架构对资源是一种浪费。利用上位机(PC+linunx系统)作为视觉处理模块,下位机(嵌入式运动控制器,跑的是WinCE硬实时系统)作为机器人运动规划模块,通过TCP/IP来完成主控计算机对运动控制器的控制工作,因为上位机不参与机器人的实时运动规划工作,所以实时性是依靠下位机来保证的。

  上面的极简版控制器实际是按从示教上的直观体验来设计的:能执行文本指令进行运动。 事实上,经过这些多年的发展,控制系统早已不能用这种简单描述来概括了。当代的工业机器人控制系统至少考虑以下设计原则:

  以上列出的细分点,每一个都可以写一个很大的专题,因此本文只能给出一些概括性的介绍。

  控制系统首先需要控制机器人的机电系统,发挥出机器人应有的性能,满足性能需求。像上述极简版控制器那么处理是肯定不行的,单以走直线为例,不考虑奇异的问题,实际中几乎无法使用。现实中的工业机器人绝非理想的执行器:输出功率有限、结构有柔性、加工有误差。在这些约束下如何满足诸如高速高精度的性能要求,是控制系统必须解决的首要问题。

  在成本限制下,当代控制系统一般采用基于模型的控制方案,首先需要一套动力学计算模型并辨识出准确的参数,这是基础:

  此外工业上对机器人的节拍通常有很高的要求,这就需要控制系统在规划过程中显式地考虑机器人本体的动力学特性。在规划阶段必须明确考虑动态,这是一个优化问题,而由于机器人连续运动的特点,离线优化方案一般不能使用。如何处理诸多不同类型的约束条件,如何设计在线优化算法,是当代控制系统要考虑的核心问题之一。

  当代工业机器人涉及到力学、感知、优化、控制、计算机、通讯等多个专业学科门类,又涉及到各种各样的软件硬件,还涉及复杂多变的应用场景。这对控制系统提出了诸多挑战:

  没有一个足够健壮和开放的软件架构几乎是不可想象的工业机器人在生产时必然会引入加工装配误差;在负载状态下又会发生弹性变形。为提高精度,一般会经过出厂前的标定,通过辨识方法来得到准确的几何误差和变形偏差,进而在控制系统内进行补偿。更多关于误差的内容可以参考:韩峰涛:工业机器人有哪些误差,需要做哪些校准?

  基于模型的控制方案考虑了机器人本体的诸多特性,这是当代工业机器人控制系统有别于通用运动控制卡/器的一大特点,也是一大优势。现在主流的工业机器人有当前的性能,有赖于此。随着模型和算法的不断复杂,如何优化/复用计算,如何分配计算量也成了软件实现时不得不考虑的问题;Design for Robots也意味着软硬件的联合设计,例如如何用最小的成本达到功能性能需求,软硬件的综合优化才能达到成本与性能的良好平衡。正是基于这样的限制和需求,现在世界上几乎所有的机器人大厂才选择了自己研发控制系统+机械本体设计,其他诸如电机、减速器等零部件外购的策略。

  工业应用可以说是工业机器人控制系统的发展的主要推动力。过去,其发展长期受汽车工业的需求驱动;随着应用场景的扩展,各种新应用也对控制系统提出了各种各样的需求。基于传感器的路径规划 sensor-based path planning能根据传感器信息来在线生成和修正路径是当代工业机器人控制系统为许多应用提供支撑的一个重要基础。基于传感器的路径规划需要根据外部传感器(例如摄像头、编码器、焊缝跟踪仪、3D相机等)的反馈信息,在位置、速度、加速度等约束条件下快速响应,动态生成、修正和优化机器人轨迹。典型的应用包括传送带跟踪、焊缝跟踪、视觉伺服、非结构环境下动态规划与避障等。

  基于力传感器的力控 F/T sensor-based force control在打磨、抛光、装配等与环境设备高度交互的一类应用中,在外部环境及机器人存在位置偏差时,只进行位置控制很容易造成设备或者工具损坏。通过力/力矩传感器(F/T Sensor)测量引入力反馈回路,并通过力反馈回路的控制改变机器人运动特性,从而起到机器人与外部环境动态交互的作用,在机器人与外部环境存在偏差或不确定性时,仍能保证交互过程的平稳安全。

  如何以统一的框架满足种类繁多的力控制应用需求,是当代工业机器人控制系统需要解决的难点之一。成熟的工业机器人控制系统一般积累了许多工艺选项包,例如ABB和KUKA都提供了种类繁多的可选工艺软件包:

  越来越多的应用场景需要取消隔离栏,取而代之的是机器人与人的近距离协作,此时机器人与人交互的直观性和安全性变得尤为重要。协作机器人的本质是安全和易于使用,这是控制和软件的创新。关于协作机器人的更多内容,也可参考:让机器人更安全(二)- 协作机器人的兴起国产协作机器人的机遇与挑战

  由于缺少专业的机器人调试人员,机器人应用过程中的复杂性是阻碍中小企业机器人应用的重要障碍,因此直观的交互方式、简易的故障恢复措施是当代控制系统面临的挑战之一。不管是离线编程、拖动示教还是新兴的语音示教、自主规划,都是机器人在努力降低使用门槛的尝试。

  机器人大规模应用的前提是必须在尽可能低成本和高使用自由度的情况下保证安全。碰撞检测技术通过机器人自身测量信息或外部传感器信息,实时感知机器人与外部的异常接触,同时采取有效的避障处理措施,从而降低碰撞造成的风险,是人机协作过程中保证人员和设备安全的重要技术途径。