基于强化学习和智能传感器控制的工业机器人实时运动规划
2018-05-14
技术的成熟日益让机器人变得聪明,但仍然有很多看似简单的事情让机器人束手无策,比如运动中的障碍规避问题。近年来,机器学习的出现似乎让机器人有了解决难题的好方法。在2018世界机器人大会上,德国卡尔斯鲁厄理工学院教授Torsten Kroeger,根据长期在机器人领域研究的经验,以及对机器学习的认知,分析了基于强化学习和智能传感器控制的工业机器人系统,是如何在运动中进行实时运动规划的。
如今,随着科学技术的日益发展和成熟,机器人变得越来越聪明。但是,对于有些在人类看来是十分简单、容易的事情,机器人却很难甚至无法完成,因为到目前为止机器人还没有那么聪明。机器学习的出现给了我们希望,它给了我们一个新的工具,可以让机器人进行学习,尽可能完成复杂的任务。当然,这些也只能算是尽可能地向人类学习,距离真正的“智能”还有很长的距离。而对于机器人来说,如今,随着科学技术的日益发展和成熟,机器人变得越来越聪明。但是,对于有些在人类看来是十分简单、容易的事情,机器人却很难甚至无法完成,因为到目前为止机器人还没有那么聪明。机器学习的出现给了我们希望,它给了我们一个新的工具,可以让机器人进行学习,尽可能完成复杂的任务。当然,这些也只能算是尽可能地向人类学习,距离真正的“智能”还有很长的距离。而对于机器人来说,想要实现这样的目标,它们需要将认知和行动连接在一起。
为什么对于机器人来说,有些事情它们做不了呢?这主要是感知与行动之间的差异。在机器人的设计中,机器人首先要通过传感器获得感知的能力,像视觉感知、听觉感知、触觉感知等,然后把这些感知都纳入到机器人系统中。人工智能在过去的三到五年中,在视觉感知和语音识别方面都取得了重大的突破性成果,如今,这些领域的数据非常丰富,在有些情况下,我们可以使用监督学习进行图像识别,甚至可以对一些视频数据进行识别。可以说,现在神经网络在诸如语音识别、翻译等方面已经做得比人类还要好,比如Google Home、Apple的Siri都表现得非常不错。在这些领域中,每隔一段时间都会取得新的研究进展,但仍然存在很多挑战,那就是机器人和真实世界的物理互动,尤其是在安全驱动、物理操作、机器人与人或者机器人与机器人交互时,我们该如何确保安全性,在这个方面我们并没有足够的数据。
众所周知,1997年,IBM研发的“深蓝”击败了当时的国际象棋冠军卡斯帕罗夫,这在当时被认为是人工智能。但如今回头看一看,思考一下人工智能的定义和现在所取得的进展,我们应该考虑一下它到底意味着什么。可以说,那个时候的计算机系统可以下国际象棋,但没有办法面对面地和人类下国际象棋。可能有些人认为这不是什么问题,找一个人代替机器进行操作就可以。然而大家不知道的是,当制作的材料变了,用金属、木头或者玻璃做出的象棋,对于机器人而言就可能無法进行分辨。因此,有关机器人操控的问题到目前为止还存在很多挑战。
机器人系统中的实时运动规划
如今,很多研究学者致力于研究机器人的实时运动规划,以便机器人可以避免和人发生对抗和冲撞,规避障碍。这就涉及一个确定性冲突避免算法(Deterministic Collision Avoidance),其实这个算法非常简单,直接用于深度空间中,部署3D传感器,以使得机器人在操作过程中可以躲开多重障碍。在这个过程中,还需要考虑到整个机器人的机身,以及它的空间和运动速度,利用障碍物运动进行预测,然后使用OTG框架,让机器人识别对方动作的轨迹,实时地检测这些动作,从而避开障碍。在机器人的运动中,考虑到速度矢量,机器人在不断躲避人类动作的过程中也会受到一些限制,因此我们在不断地进行研究,扩大这个算法的应用范围。现在这个算法还可以考虑到一些其他的因素,从而让机器人可以完全避免和人类之间的碰撞,甚至能够实时地、确定地做到这些事情。
在机器人的实时运动规划中,我们还可以让机器人在一定的空间内完成动作移动路径的检测,这需要关注它的方向和速度,然后将机器人从一个状态移动到另外一个状态。在这个过程中需要考虑到位置、速度、加速度和自由度等因素,还需要具有力和路径等传感器,反应速度大概是500毫秒左右,从而能够让它对某一动作之后需要转向什么方向、转到什么位置做出反应,然后自动控制它的运动。其实要想实现这样的操作,所需要的算法很简单,就是要根据现在目标的状态,通过计算考虑新的移动位置。所以整个过程中需要完成的就是从第一个位置到第二个位置所进行的移动,要把这个想法融入到现在的系统中其实是非常容易的。
几年前,我们的一个学生使用有关机器人实时运动规划的算法,设计了一个可以打架的机器人,其中,机器人应用传感器可以实现与人的互动,一个是攻击的模式,一个是防守的模式。
实际上,在现实生活中,基于强化学习和智能传感器控制的机器人实时运动规划的应用非常多,在一些打钻行业中也有非常成功的应用,基于传感器,可以同时使用8个钻头进行打钻的工作。此外,在太空望远镜的生产领域,以及一些制造行业中的工业机器人系统中、实验室中都有所应用。
机器人系统中的混合控制
接下来,我们来了解一下混合控制。混合控制意味着你有一系列的控制器,包括距离控制器、运动控制器等,根据任务的不同,需要对这些控制器进行配置,以便让你的机器人发挥最大的实用价值。在机器人系统中,有传感器、运动控制器、视觉控制器等,在机器人的路径规划中,我们需要从一堆材料中检测出其中的一个,从而控制它的速度和力量,维持整个机器人的运动和状态。
机器人系统的设计是一件非常复杂的工作,涉及到良好的运动规划算法,比如位置、速度,还需要各种的控制器。在有些机器人的设计中,我们通常会寻找一种比较简单的方式,对机器人系统中所涉及的混合控制进行概括,把它称为适应性的选择矩阵有很多不同的控制器,包括位置控制、距离控制、力量控制和自由度控制。在一个机器人系统中,如果你的控制频率是1赫兹的话,就可以确保它的稳定,因为在系统中总是有一个备份的控制器。其实这是矩阵当中一个新的维度,如果一个控制器发生故障或者出了问题,一般来说是没有备份的,但我们设置了一个备份的控制器,比如,如果视觉控制器不能发挥作用,看不见东西的话,就可以有另外一个备份的视觉控制器开始启用。
一般来说,在机器人系统中出现的问题,可能需要具备很多专业知识才能够得以解决,因为机器人编程是一件非常专业的事情,需要具备专家知识,且至少是博士水平的工程师才可以,成本很高。虽然有些机器人系统是非常强大的,但也存在一定的局限性,因为对公司和行业来说,对这样的系统进行编程是非常昂贵的。因此,我们有了新的想法,那就是利用机器学习,尤其是强化学习。
如果对这一领域有所了解的话,大家应该知道这一研究就是“学习型机器人”,我们和一系列人士进行合作,共同展开相关研究。这一研究的初衷是让一个机器人自我学习如何操控物体。当时我们所做的工作非常简单,要让一个机器人学习抓取物体。为了做到这一点,机器人就要学会协调摄像头和抓手。在一个机器人系统中,摄像头是512×512像素,抓手具有两根指头,一开始摄像头会输入视觉图像,然后确定抓取策略,预测抓取策略的成功率,在很短的时间内进行计算,最后选择那个最有可能成功的抓取策略。
为了实现这一目标,我们大概进行了两个月的实验,不是每一次都会成功,但从那些部分成功的实验中,我们还是有很多收获的。在这一过程中,我们一共做了8万次的抓取,对14只机械臂的操作练习结果进行评估,其实规则很简单,当机械臂合并的时候没有东西就是不成功,有东西就是成功。此外,我们还有一个优化的机制,当机器人想抓住一个物体的时候,却会把这件物体放到旁边,然后去抓取另外一件物体,这是因为它做了优化,对成功率进行了预测,它通过神经网络发现这样的移动会使它取得更大的成功。
实际上,针对不同的物体,它会有不同的抓取策略,比如面对透明物体和金属物体时,它的抓取策略是不一样的,而这些都是基于数据做出的最终决策。除此之外,我们还使用一些新的、从来没有见过的物体,对机器人进行训练,和之前使用过的类似物体相比,它的学习速度变得越来越快。
机器学习不是“魔法子弹”,而是一种工具
如果要从学术角度看待这一问题的话,有一点需要强调的是,对于这个系统而言,正常情况下是可以良好运行的,但如果改变其中一个元素的话,所有的一切都会出現问题。所以我们不要对机器学习和物理抓取过于兴奋,机器学习并没有捷径可循,只能不断地从数据当中学习。机器学习不是魔法,它意味着从数据当中进行学习,意味着数据和算法,更主要的是关于数据的,因为和视觉感知相比,没有很多数据意味着可能只能做一些比较简单的、参数比较少的方法设计。
机器学习算法必须要对一些典型性的数据进行训练,但很多人可能会忽略这一点。在训练过程中,我们应该对数据进行转化,从而使其变成典型的数据。可以说,在计算机领域,机器学习是一种革命性的成果进展,但它不是一个“魔法子弹”(magic bullet),只是一种工具。对于诸如物理抓取和物理操纵等许多现有的研究成果和方法,以及学科知识,我们也不要轻易忘记和抛弃,而要把这些知识融入到新的基于数据的方法中,充分发挥它的潜力。
其实,在机器学习领域,我们经常使用的还有一种学习方法,就是迁移学习。我们需要把在物理世界中获得的数据与在模拟世界中获得的数据相结合,因为仅仅从模拟系统中获得的数据并不能反映真正的物理世界。为了能够实现我们的工作研究目标,我们会做一些比较传统的系统参数,基于这些参数产生噪音模型,然后把这些噪音模型注入到模拟系统当中,这样便可以反映物理世界,而这样的模拟系统所得出的结果往往更加贴近事实,也会对我们的研究有更大的帮助。未来,相信迁移学习的使用会使我们的研究向前迈进一步。
最后,谈及安全问题,大家都希望工业机器人和服务机器人能够跳出它们所处的区隔,和人类一起生活。但从安全的角度来说,根据IEC61508国际标准,需要机器人的故障率非常低才可以,所以我们就要根据机器人在社会生活中的应用确定故障率。我们都知道,在机器人系统中,机器学习涉及的是软件,底层涉及的是硬件,中层是对安全性非常重要的软件,最上层是一些不安全的重要软件。为了安全性,我们可以选择在中间层插入一种软件,通过机器学习确保安全性。如果再往前推进一步,还可以考虑把经过训练的模型引入系统中,系统中存在一些安全软件,可以在其运行的时候对它进行监控和监测,并及时纠正问题,也就是让这两种软件同时运行,从而极大程度上确保安全性。
与此同时,我们也看到在这一领域不断有一些新的研究出现,将对安全性来说不是最重要的软件嵌入到对安全性来说最重要的软件当中,从而使得这些对安全性来说不是最重要的软件通过机器学习来学习那些安全软件。相信在不久的未来会有更多的研究人员对这一领域进行研究探索,促进更安全、更有效、更实用系统的出现。
(本文根据“2018世界机器人大会”现场演讲整理而成,未经演讲人审阅。)