本文结合珞石的研发实际介绍一些机器人控制器的设计原则,主要包含以下内容:
1.如何写一个简单的机器人控制系统
2.现代机器人控制系统的设计原则
3.Design for Robots
4.Design for Applications
5.Design for Human
6.结语-费米悖论
1、如何写一个简单的机器人控制系统
从技术角度讲,编写一个简单的机器人控制系统(Robot Controller,以下称RC)让机器人动起来确实不难,几万行代码足矣。一个极简版机器人控制系统可以分成几个模块:程序编辑器,解释器,路径规划器,插补器,运动学逆解,硬件接口模块,以让机器人末端走一条直线为例:
如何搭建起来呢?
· 程序编辑器,可以找开源的文本编辑器改造;
· 解释器,可以用正则表达式实现;
· 路径规划器,可以照着《机器人导论》第七章来;
· 插补器,也可以照着《机器人导论》第七章来;
· 运动学逆解,可以照着《机器人导论》第四章来;
· 硬件接口模块,可以买现成的运动控制卡,也可以移植开源的通信协议栈。
另外网络上有海量的基础开源代码可以供参考甚至直接使用,并不需要多大的工作量。一个有点编程基础,了解基本机器人学的工程师两个月就能“搞定”这样一个“机器人控制系统”。
【Wola, you’ve made youself a robot controller ! 】
【You even don’t have to go through the whole book! ”What’s jacobian“?】
这样的控制系统优化一下稳定性和用户界面(HMI),也可以应付简单的工作,放在三十年前也是世界一流水平。
2、当代工业机器人控制系统设计原则
上面的极简版控制器实际是按从示教上的直观体验来设计的:能执行文本指令进行运动。仅从此点看,现在四大家的控制系统似乎也不过如此了。
事实上,经过这些多年的发展,控制系统早已不能用这种简单描述来概括了。
当代的工业机器人控制系统至少考虑以下设计原则:
1. Design for Robots
2. robots has singularities, limitedpower, flexible structure;
3. imperfectly manufactured
4. by no means a perfect effector
5. Design for Applications
6. sensor-based path planning
7. FT sensor-based functions
8. communication protocols
9. easy integration
10.process-specific functions
11.highly reliable, robust and scalablesoftware architecture
12.Design for Human
13.intuitive interaction
14.easy-to-use
15.safety requirements
以上列出的细分点,每一个都可以写一个很大的专题,因此本文只能给出一些概括性的介绍,欢迎各位一起探讨。
2.1、Design for Robots
控制系统首先需要控制机器人的机电系统,发挥出机器人应有的性能,满足性能需求。像上述极简版控制器那么处理是肯定不行的,单以走直线为例,不考虑奇异的问题,实际中几乎无法使用。
现实中的工业机器人绝非理想的执行器:输出功率有限、结构有柔性、加工有误差。在这些约束下如何满足诸如高速高精度的性能要求,是控制系统必须解决的首要问题。
在成本限制下,当代控制系统一般采用基于模型的控制方案,首先需要一套动力学计算模型并辨识出准确的参数,这是基础:
此外工业上对机器人的节拍通常有很高的要求,这就需要控制系统在规划过程中显式地考虑机器人本体的动力学特性。
must explicitlyconsider dynamics in the planning phase!
这是一个优化问题,而由于机器人连续运动的特点,离线优化方案一般不能使用。如何处理诸多不同类型的约束条件,如何设计在线优化算法,是当代控制系统要考虑的核心问题之一。
▲OptiMotion在线轨迹优化技术@ROKAE
高适用性、高稳定性、高可扩展性的软件架构
当代工业机器人涉及到力学、感知、优化、控制、计算机、通讯等多个专业学科门类,又涉及到各种各样的软件硬件,还涉及复杂多变的应用场景。这对控制系统提出了诸多挑战:
·如何支持机器人各种控制策略的实现与切换;
·如何实现多层级/多模块间的实时数据交互;
·如何保证诸多功能的并行不悖;
·如何进行长时间稳定运行而不进入错误状态;
·如何设计友好的人机交互;
·…..
没有一个足够健壮和开放的软件架构几乎是不可想象的。
机器人误差标定与补偿
工业机器人在生产时必然会引入加工装配误差;在负载状态下又会发生弹性变形。为提高精度,一般会经过出厂前的标定,通过辨识方法来得到准确的几何误差和变形偏差,进而在控制系统内进行补偿。更多关于误差的内容可以参考:
韩峰涛:工业机器人有哪些误差,需要做哪些校准?
基于模型的控制方案考虑了机器人本体的诸多特性,这是当代工业机器人控制系统有别于通用运动控制卡/器的一大特点,也是一大优势。现在主流的工业机器人有当前的性能,有赖于此。
随着模型和算法的不断复杂,如何优化/复用计算,如何分配计算量也成了软件实现时不得不考虑的问题;Design forRobots也意味着软硬件的联合设计,例如如何用最小的成本达到功能性能需求,软硬件的综合优化才能达到成本与性能的良好平衡。
正是基于这样的限制和需求,现在世界上几乎所有的机器人大厂才选择了自己研发控制系统+机械本体设计,其他诸如电机、减速器等零部件外购的策略。
2.2、Design for Applications
工业应用可以说是工业机器人控制系统的发展的主要推动力。过去,其发展长期受汽车工业的需求驱动;随着应用场景的扩展,各种新应用也对控制系统提出了各种各样的需求。
基于传感器的路径规划 sensor-based path planning
能根据传感器信息来在线生成和修正路径是当代工业机器人控制系统为许多应用提供支撑的一个重要基础。
基于传感器的路径规划需要根据外部传感器(例如摄像头、编码器、焊缝跟踪仪、3D相机等)的反馈信息,在位置、速度、加速度等约束条件下快速响应,动态生成、修正和优化机器人轨迹。典型的应用包括传送带跟踪、焊缝跟踪、视觉伺服、非结构环境下动态规划与避障等。
▲传送带轨迹跟踪@ROKAE
基于力传感器的力控 F/T sensor-based force control
在打磨、抛光、装配等与环境设备高度交互的一类应用中,在外部环境及机器人存在位置偏差时,只进行位置控制很容易造成设备或者工具损坏。
通过力/力矩传感器(F/T Sensor)测量引入力反馈回路,并通过力反馈回路的控制改变机器人运动特性,从而起到机器人与外部环境动态交互的作用,在机器人与外部环境存在偏差或不确定性时,仍能保证交互过程的平稳安全。
如何以统一的框架满足种类繁多的力控制应用需求,是当代工业机器人控制系统需要解决的难点之一。
工艺 process-specific functions
成熟的工业机器人控制系统一般积累了许多工艺选项包,例如ABB和KUKA都提供了种类繁多的可选工艺软件包:
2.3、Design for Human
越来越多的应用场景需要取消隔离栏,取而代之的是机器人与人的近距离协作,此时机器人与人交互的直观性和安全性变得尤为重要。
协作机器人的本质是安全和易于使用,这是控制和软件的创新。
关于协作机器人的更多内容,也可参考:
让机器人更安全(二)- 协作机器人的兴起
国产协作机器人的机遇与挑战
直观交互 intuitive interaction
由于缺少专业的机器人调试人员,机器人应用过程中的复杂性是阻碍中小企业机器人应用的重要障碍,因此直观的交互方式、简易的故障恢复措施是当代控制系统面临的挑战之一。不管是离线编程、拖动示教还是新兴的语音示教、自主规划,都是机器人在努力降低使用门槛的尝试。
安全 safety requirements
机器人大规模应用的前提是必须在尽可能低成本和高使用自由度的情况下保证安全。
碰撞检测技术通过机器人自身测量信息或外部传感器信息,实时感知机器人与外部的异常接触,同时采取有效的避障处理措施,从而降低碰撞造成的风险,是人机协作过程中保证人员和设备安全的重要技术途径。
3、成熟技术在哪里?
3.1 费米悖论
还有一种常见的观点:工业机器人搞了这么多年,各种问题都应该上升到了理论,课本上都应该有了解决方案,只要照本宣科即可,因此没什么可搞的。
这使笔者想到了费米悖论。
物理学家恩里科·费米在和人讨论外星人的存在性时,突然来了一句:“他们都在哪儿呢?”。——宇宙古老而广阔,高技术文明的外星人很可能存在并来到地球,但为什么人类至今还没有发现他们呢?
类似的,如果技术成熟又不乏专家,为什么大部分工厂充斥着的是国外的数控机床、机器人、自动化设备?为什么没有人花两个月造个赶超fanuc的机器人然后把图纸和代码开源出来?那样整个行业都会心怀感激照抄不误的。
3.2 语料分析之《机器人手册》
有时候,调研人员可能面对不熟悉领域的学术和技术情况感到难以下手。除了访谈式的调研,笔者有一个建议:多做些语料分析工作。
比如机器人行业,2008年Springer出版了大神OussamaKhatib和Bruno Siciliano主编的《机器人手册》(Springer Handbook of Robotics),2016年又出了第二版。这本手册全景式的展示了机器人学的诸多领域,应该是分析机器人学科和行业的一个绕不过去的素材。
不需理解专业内容,单从语料分析的角度来对这部手册进行统计分析,就会很多有意思的结论。比如:
1. 搜关键字“industrialrobot”,统计工业机器人在机器人手册所占的篇幅。对比商业应用的占比。
2. 搜工业机器人厂家的名字:fanuc,yaskawa, kuka, abb等等, 统计其在机器人手册中出现的篇幅。对比各家出货量。
3. 统计编著者的分布:工业界和学术界的占比;各作者的国籍分布。
4. 各章引文的作者分布:工业界和学术界的占比;各作者的国籍分布。
做完以上统计,调研人员可以获得以下数据对比,不一定准确,请各自品味。