编者按:本文内容来自库柏特科技CEO,武汉大学特聘副教授李淼在雷锋网硬创公开课的分享,由雷锋网(公众号:雷锋网)机器人垂直栏目“新智造(公众号:新智造)”整理。
嘉宾简介:李淼,库柏特科技CEO,武汉大学特聘副教授。
自2011至2015年,在瑞士联邦洛桑理工(EPFL)攻读博士学位,研究方向为机器人学习和人机协调交互。博士论文被提名EPFL优秀博士论文奖和ABB自动化奖。其中机器人抓取的动态自适应研究工作,被美国国家标准技术研究所(NIST)选为机器人基于传感的抓取效率的标准测试方法。
已发表高水平SCI/EI论文近20篇,被引用100余次,H-index 6 。多次受邀在IROS、ICRA、CASE做技术报告,组织IROS、ICRA机器人抓取研讨会,发起并组织第一届中国协作机器人研讨会。担任ICRA、IROS、RSS、Humanoids、IEEE Robotics and Automation Letters (RA-L)、IEEE Transactions on Robotics(TRO)、Autonomous Robots (AR)、Robots and Autonomous Systems (RAS)、Journal of Sensor、Journal of Intelligent and Robotic Systems等机器人顶级会议与期刊评审。承担EPFL机器人实践课(硕士课程)的教学,指导硕士毕业论文与机器人学期项目。长期从事机器人灵巧手抓取规划与智能控制,主要研究围绕在将先进机器学习算法应用于复杂机械系统的控制与设计之中。
相信很多人知道人工智能,根据wikipedia的定义,“人工智能(英语:Artificial Intelligence, AI)亦称机器智能,是指由人工制造出来的系统所表现出来的智能。通常人工智能是指通过普通电脑实现的智能。该词同时也指研究这样的智能系统是否能够实现,以及如何实现的科学领域。人工智能的研究是高度技术性和专业的,各分支领域都是深入且各不相通的,因而涉及范围极广”。
AI这个方向包含的内容太广泛了,很多时候当你和别人聊天时,别人告诉你他时搞AI的,你其实根本就不知道他是做什么的。这一点与机器人这个名词很像,学科的分支太多。
在机器人,特别是工业机器人的领域,当我们想将机器人与人工智能结合起来时,很多人都想有一定的区别度。我们这里用了mechanical intelligence这个词语,机械智能。
那么什么是机械智能呢?简单说,就是一个机器找到一个问题的解决方案的过程。机器通常是指包括机器人在内的自动化设备,智能通常体现在找到好的解决方案上。
这里面区别与传统的AI的一个核心点是,我们需要一个物理或者机械系统去与真实的物理世界发生交互。插一句,有一个会议叫pHRI(physical human robot interaction),其实也是出于这个目的来区别传统的HRI的。研究的问题呢,上面的PPT种给了几个简单的例子,包括产品的质量简单,这里面涉及到大量的视觉的东西,包括抓取,里面涉及到机器人视觉和机器人控制,第三个是打磨,这里面涉及到力控与机器人控制;还有装配,这可能是目前3C行业的一个共性的问题,里面涉及到很多的精微力控制。这几个问题也是我们后面讨论的重点。
前面说到了要找到好的解决方案,那么什么样的方案是一个好方案呢?是硬件方案还是软件方案呢?硬件方案通常就是需要一些特殊的机械设计,这些设计通常需要大量的经验与人工智慧,而且很多时候是case-by-case的。
有时候,我去工业现场跟一些产品线的时候,我也会被各种巧妙的机械涉及所叹服,这些基本都是硬件解决方案。
软件解决方案通常是在硬件的基础上,针对一些列的类似的需求,提出的一个个模块的软件集成方案。硬件和软件,二者通常是相辅相成,但是在不同的发展阶段,又有一些不通侧重点。
其实制造业这个词是很大的,里面涉及到很多东西。从大了讲,整个制造业是属于广义自动化的一部分,包括过程自动化和工厂自动化两部分。
过程自动化是指采用计算机技术和软件工程帮助工厂更高效、更安全地运营。过程自动化相对于运动自动化采样时间较大。在过程自动化技术出现之前,工人必须人工监测设备性能指标和产品质量,以确定生产设备处于最佳运行状态,而且必须在停机时才能实施各种维护,这降低了工厂运营效率,且无法保障操作安全。这部分的应用是与分布式数据存储,处理分析相关的,其中也涉及到很多人工智能的应用。现在有很多做企业服务软件的,其实更多的就是偏向于过程自动化,这个从周期上将,更长一些。
工厂自动化,也称车间自动化,指自动完成产品制造的全部或部分加工过程。其中一个很大的核心点就是工业机器人,工业机器人由于其适用性与柔性,在过去的几年开始爆发式增长。正是因为这个行业在飞速发展,才有了与最新技术结合的可能性,我这几张PPT主要也是简单介绍下背景知识。
最近几年,工业机器人的市场规模一直在增长,根据未来的增长的空间预测,到2020年,工业机器人每年的本体加集成市场会在2000亿左右。这还不包括新一代机器人开拓的机器人领域以及机器人的辐射效应。
按照领域划分,未来的主要增长空间会出现在3C行业、仓储、食品、医药等行业。下面我会就3C行业的一些典型问题,来分享一下机械智能是怎么应用的。
这张PPT实际是告诉大家,未来的机器人的发展热点与机会会在哪里,大家也就可以理解为什么那么多的资本都开始进入到这个领域了。
3C行业使用机器人从事的工作具有三个特点:工作内容高度重复,产品周期短,集成难度大。近年来,电子产品对质量的要求不断提高,使得传统人工在视觉检测、激光打标、结构件冲压与打磨、屏幕贴膜等方面的精细度难以达到要求。机器人在3C行业应用潜力较大的部分是组装或者叫装配。由于目前这项工作对机器人柔性要求非常高,应用比较难,故普及情况受限。但随着机器人技术与人工智能等技术的结合,未来这方面的应用会大量的增长。
这是3C行业的问题从表象到本质的分析,简单来说,就是现在机器人不好用,很多人也用不好。
这些是目前的一部分解决方案,主要是从机器人本体上下功夫,也就是目前炒作得很火的协作机器人或者更大一点的新一代机器人的概念。主要是想让机器人和人进行协同作业,实现一部分工作给人来完成,一部分工作机器人来完成。机械智能的整个系统框架实际上是架构在这个硬件基础上。
整个机械智能的框架其包括三个部分,示教方式、学习算法与机器人操作。其中示教方式包括各种learning from demonstration,或者是简单的给产品质量进行标定好坏。总是这部分的作用是存储一些数据。而学习算法这部分,主要是从这些存储的数据中,进行抽象提炼出模型,这些模型可能是产品质量的判断模型,也可能是机器人的控制算法。而在机器人操作上,主要就是实现部分,是怎么样学习到的算法在机器人上实现出来。数据收集 - 算法学习 - 机器人实现,基本就是这个套路。下面会给出几个例子,来阐述整个框架体系,我会尽量的回避一些技术细节,只给出一些框架和流程。
视觉检测
视觉检测目前主要是还是靠人工检测,左边的几幅图都是我们最近遇到的一些视觉的检测项目,目前我们在工厂看到的还是人来检测,平均一个人一天需要检测7000多个这种小零件。右边是目前很火的基于深度学习的检测一个工件的流程图。上面是模型的训练过程,主要思想是我们有一些好的工件和坏的工件的图片,我们训练出一个模型。然后根据模型,给一个新的工件,可以迅速的判断模型的质量,缺陷类型等。当然这里是只给了深度学习的例子,其他的机器学习方法在这里也可以适用,只是效果可能有所区别。很多时候也需要多个模型的结合来做判断。NO-FREE-LUNCH,学习算法里面铁一般的规律。
我每个例子可能只用了一两张PPT,但是这每个问题后面都有无数的研究和问题还在探索中。
无序分拣
无序分拣其实在很多地方都有应用,主要是把一些零件从一个位置规整到另外一个位置。目前的通常做法是各种料框,振动盘加上人工。而采用机械智能的方式就可以不需要这些专用的设备,结合机器视觉与机器人,视觉对物体进行识别定位,采用学习算法知道该抓哪个工件的成功率最大,而机器人操作则告诉机器人该怎么样过去抓到那个物体。我整个博士阶段其实就做这里面很小的一个点,怎么样去抓一个物体。
抓取其实有很长一段时间不受重视,但是由于很多大公司的进入,目前又有了新的发展动力。这一块的东西目前很多大公司也开始在做,包括google,fanuc, mujin等等,还有最近很著名的Amazon Picking Challenge。这些公司之所以做这个方向,不仅仅是因为grasping是在工业上有巨大的市场,其实就是在日常生活中,比如以后的服务机器人,我们肯定也会用到各种抓取与操作。所以在新一代的机器人的定义中,其实工业与非工业的的机器人的定义已经不是那么的明显了。
力控打磨
柔性打磨,人工打磨有柔性但是效率低,机器人打磨有效率但是柔性差。怎么样建立力与机器人末端轨迹的关系,目前是通过人工调试的方法,只能一个个零件去测试。有时候整个调试周期可能需要几个星期。比如像右边图中的自适应轨迹与变速度的控制策略,是通过人的调试得到的。我们要做的其实就是把这部分的自适应决策通过学习算法来结局。
这里打磨质量很大程度取决于机器人调试人员的经验了,我们的核心思想是通过智能人工示教来降低机器人的操作难度,实际上是通过人与机器人的协作来提高机器人的柔性。整个流程是这样的,首先我们可以采取不同的方式来示教打磨任务,然后从示教过程中的传感器数据,我们用人工智能和机器学习的算法,得到一个学习模型;最后将这个学习模型与机器人的具体控制算法结合,就能在机器人上快速实现这个任务。关于打磨应用,我们是采用变阻抗来实现精确的力控,在使用KUKA LWR与ATI力传感器时,我们最好的力控控制精度可以保持在0.1N左右。
这里真正实现起来还有很多工程上的细节要处理,这里只是给出了一个系统的框架。
目前3C行业的装配还大量的采用手工装配,我们平常用的手机,也基本是靠工人手工装配出来的。现在也有一些机器人装配,但是需要大量的调试和工程配置,网上有一个ABB 机器人装配鼠标的视频,大家可以感受下里面的调试难度。
在装配时,很容易发生的是卡死,另外我们需要一个模型来判断是否装好。当发生卡死时,通常需要适当调整机器人的末端姿态,来解决卡死。利用机器学习建立力与末端速度映射关系,可以实现力反馈控制!
运动规划
运动规划在机器人操作中是很常见的,这里通常要通过机器人离线编程,编写机器人从一个起点到终点的轨迹,比如用样条曲线等等。但是在很多应用中,我们希望规划的是一个任务,比如将上图所示的从不同地方运动到同一个终点。我们当然不希望对每个地点都运动规划一次,虽然这也是可行的。补充一下,运动规划不是前面说到的问题,但是在很多地方都需要。sensor-based motion planning是以后的发展重点。
采用学习算法的解决方案是,我们通过人工示教的方式,在几个不同初始点,展示机器人可以怎么样运动到终点,然后我们通过学习算法将这种示教中展示的运动方式,建模成一个个动力系统,主要就是告诉机器人在不同的点,应该怎么运动,才能到达目标点,其实就是一个全局或者局部的空间向量场。直观的理解就是,你要去拿桌子上一杯水,每次你的手的起点都不一样,但是你其实都可以去拿到那杯水,而不需要每次都重新规划一下怎么把手移动过去。
整个过程的基本流程如上面的slide所示。
辅助硬件
另外一个很重要的点就是辅助硬件,就像苹果的软件系统再好,如果没有触摸屏,它也玩不转。辅助硬件在机械智能里面就起到了一个这样的作用,这些辅助硬件包括一些新的硬件解决方案,比如说移动机器人平台,末端执行器,智能传感器等等。这一块其实很多人也在探索,比如欧盟的SME项目,他们就想过很多的控制机器人的辅助硬件、语音、手势、VR等等。
人机交互
最后一个强调的点就是人机交互的方式与界面。这种方式有太多种,这里只是用拖动示教做出来的。
这里是想说明一下imitation learning的好处与缺点,我尤其想强调的是,示教不是record and replay。
因为传统的工业机器人上用了示教这个词,所以现在我每次说到示教,很多人就联想到传统的工业机器人上的示教功能了。示教本质上是通过人的先验知识来帮助机器人快速找到可行或者最优的解决方案。
智能制造同时也对员工提成了更高要求,请问下未来什么样的员工是智能制造所需要的?在制造业还需要员工这种职业么?
智能制造对员工提出了更高要求其实是不准确的,如果你看下70年代打字员这个职业,其实要求还是很高的,要记得很多东西,但是电脑排版系统出现之后,这个职业其实基本就被取代了。智能制造肯定是会减少人的工作量的,但是机器人的辐射效应,会产生更多的职业出来的。
德国制造业原来也不好,靠的职业技术教育,才有的一大批技术工人。中国当下制造业的现状,要用什么方式才能根本改善呢?
中国的移动互联网的发展就是一个很好的例子。中国的互联网肯定是比欧美发展迟的,但是移动互联这个领域,在中国的体验就比国外好很多。制造业,当然与互联网还是不一样的。但是每个工业机器人本质就是一个电脑就上一个机械装置,机械装置这部分又是变化不大的,软件上的东西其实可以做的空间非常大。另外,3C行业基本都在中国,这就给了我们很好的试错机会,这些很有可能都是我们制造业的一次机会。
现在国内3C厂商比较先进的制造产线能到什么程度?
先进的我倒是没有去看过几个,华为里面的自动化程度我自己目前感觉最好的。这个按照工业4.0标准,都有具体的评分数据的。其他的去的比如手机线,其实主要还是靠人在完成组装,而且是很多人一条线。
基于机器人系统的深度学习算法有没用比较好的使用例子?
这个可以看下fanuc deep learning for bin-picking的例子,也可以看下APC,亚马逊挑战赛中Jianxiong Xiao用的deep learning来做的物体识别与定位,另外我们自己也在用这个做产品检测。
雷锋网原创文章,未经授权禁止转载。详情见转载须知。