本文结合珞石的研发实际介绍一些机器人控制器的设计原则,主要包含以下内容:
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
越来越多的应用场景需要取消隔离栏,取而代之的是机器人与人的近距离协作,此时机器人与人交互的直观性和安全性变得尤为重要。