技术文章及通讯

创造一个肌腱驱动的机器人,它可以通过强化学习来自学走路

作者:Ali Marjaninejad,南加州大学


为什么即使是最基本的重复性工作,工业机器人也需要工程师团队和数千行代码来完成,而长颈鹿、马和许多其他动物在出生后几分钟内就能走路?

我和南加州大学脑-体动力学实验室的同事们开始解决这个问题,他们创造了一个学习移动的机械肢体,不知道它自己的结构或环境[1,2]。几分钟内,我们的强化学习算法G2P在MATLAB中实现®,学会了如何移动肢体来推动跑步机(图1)。

Watch video.

" data-toggle="lightbox">图1。三根肌腱,两个关节的机械肢体。

图1。三根肌腱,两个关节的机械肢体。观看视频

肌腱驱动的肢体控制挑战

机器人肢体的结构类似于肌肉和肌腱结构,为人类和脊椎动物的运动提供动力[1,2]。肌腱连接肌肉和骨骼,这使得生物汽车(肌肉)从远处对骨骼施加力[3,4]。(人手的灵巧是通过肌腱驱动系统实现的;手指本身没有肌肉!)

虽然肌腱具有机械和结构上的优势,但与传统机器人相比,肌腱驱动机器人的控制具有更大的挑战性,在传统机器人中,简单的PID控制器直接控制关节角度通常就足够了。在肌腱驱动的机器人肢体中,多个电机可能作用于单个关节,这意味着一个给定的电机可能作用于多个关节。因此,系统同时处于非线性、过定和欠定状态,极大地增加了控制设计的复杂性,需要一种新的控制设计方法。

G2P算法

G2P (general-to- specific)算法的学习过程有三个阶段:电机咿咿学语、探索和开发。电动机呀呀学语是肢体在五分钟内进行一系列随机运动的过程,类似于脊椎动物宝宝学习身体能力的动作。

在电机babbling阶段,G2P算法对肢体的三个直流电机的电流随机产生一系列的阶跃变化(图2),每个肢体关节处的编码器测量关节角度、角速度和角加速度。

图2。机械臂和直流电机。

图2。机械臂和直流电机。

然后该算法使用深度学习工具箱™生成多层感知器人工神经网络(ANN)。以角度测量数据作为输入数据,以电机电流作为输出数据进行训练,人工神经网络作为将肢体运动学与产生它们的电机电流连接起来的逆映射(图3)。

图3。人工神经网络(ANN)对运动呓语数据的训练。

图3。人工神经网络(ANN)对运动呓语数据的训练。

接下来,G2P算法进入探索阶段,这是强化学习两个阶段中的第一个阶段。在探索阶段,算法指导机器人肢体重复一系列循环运动,然后G2P算法测量跑步机移动了多远。对于循环运动,算法使用均匀随机分布生成10个点,每个点代表一对关节角。这10个点将被内插,在关节空间中创建一个完整的轨迹,用于循环移动。然后,该算法计算这些轨迹的角速度和加速度,并使用逆映射来获得完整周期的相关电机激活值。该算法将这些值输入肢体的三个马达,在检查跑步机移动了多远之前,重复这个循环20次。

四肢推动跑步机的距离就是这个尝试的奖励:距离越大,奖励越高。如果奖励很小或不存在,那么算法会生成一个新的随机循环,并进行另一次尝试。该算法在每次尝试过程中使用新的运动学信息更新逆映射。然而,如果奖励超过了基线性能阈值(经验确定的64毫米),那么算法将进入第二个强化学习阶段:开发。

在这个阶段,在确定了一系列工作得相当不错的运动之后,算法开始在之前测试的轨迹附近寻找更好的解决方案。它通过使用高斯分布生成接近前一次尝试中使用的值的随机值来实现这一点。如果这个新值集的回报高于前一个值集,它就会继续前进,重新进入新的最佳值集的高斯分布。当尝试产生的奖励低于当前的最佳值时,这些值就会被拒绝,取而代之的是“迄今为止的最佳值”(图4)。

图4。探索阶段的G2P算法。

图4。探索阶段的G2P算法。

独特步态的出现

每次G2P算法运行时,它都会开始重新学习,用一组新的随机运动来探索机器人肢体的动力学。当偶然的机会,马达嗡嗡作响或探索阶段特别有效时,算法学习得更快,需要更少的尝试才能达到开发阶段(图5)。算法不寻求推动跑步机的最佳动作集,只寻求足够好的动作。人类和其他生物也要学会“足够好”地使用他们的身体,因为每次练习都有代价,包括受伤、疲劳的风险,以及可以用来学习其他技能的时间和精力的消耗。

图5。跑步机奖励与G2P算法15次不同运行中的每一次尝试对应。

图5。跑步机奖励与G2P算法15次不同运行中的每一次尝试对应。

从随机运动开始并寻找“足够好的”解决方案的一个显著结果是,算法每次运行都会产生不同的步态。我们已经看到G2P算法产生了各种各样的步态模式,从沉重的跺脚到精致的踮脚。我们把这些独特的步态称为机器人可以发展的“运动个性”。我们相信这样的方法将使机器人在未来拥有更多拟人化的特征和特征。

添加反馈和未来增强

G2P的最初实施完全是前馈式的。因此,除了系统的被动响应外,它没有其他方法来响应扰动,例如碰撞。为了解决这个问题,我们实现了一个包含最小反馈[5]的G2P版本。即使存在相当长的感官延迟(100毫秒),我们发现添加简单反馈使这种新的G2P算法能够补偿逆图中影响或缺陷引起的错误。我们还发现反馈加速了学习,需要更短的运动呓语会话,或者更少的探索/开发尝试。

我们计划将G2P算法中体现的原则扩展到两足和四足机器人的开发,以及机器人操作。

为什么MATLAB ?

我们的团队决定在这个项目中使用MATLAB而不是其他可用的软件包,原因有很多。首先,我们的研究是多学科的,涉及神经科学家、计算机科学家以及生物医学、机械和电气工程师。无论他们的学科是什么,团队的每个成员都知道MATLAB,使其成为一种通用语言和有效的协作手段。

选择MATLAB的另一个原因是它使其他研究人员更容易复制和扩展工作。我们编写的代码可以在任何版本的MATLAB上运行。例如,如果我们在MATLAB中使用filtfilt()应用零相位数字滤波,我们可以确信其他人将能够使用相同的函数并得到相同的结果。此外,在Python或C中,需要考虑包或库版本,以及需要更新甚至降级到已经在使用的其他包的依赖关系。根据我的经验,MATLAB没有这样的限制。

最后,我想提一下MATLAB提供的出色的客户支持。金宝app客户支持团队帮助我们解决了金宝app数据采集方面的一些问题。他们的反应时间和他们在这个话题上的专业水平令人印象深刻。

我非常感谢我的同事Darío Urbina-Meléndez和Brian Cohn,以及脑-体动力学实验室(ValeroLab.org)主任Francisco Valero-Cuevas博士和PI,他们在本文中描述的项目中与我合作。我还要感谢我们的赞助商,包括国防部、DARPA、NIH和南加州大学研究生院对这个项目的支持。金宝app

作者简介

Ali Marjaninejad是南加州大学生物医学工程博士候选人。他的研究兴趣包括人工智能、仿生系统、生物医学信号处理、神经科学和脑机接口。

2020年出版的

参考文献

  • Marjaninejad, Ali,等人。“基于有限经验的肌腱驱动肢体自主功能运动”arXiv预印本arXiv:1810.08615(2018)。

    Marjaninejad, Ali,等人。“通过有限的经验,在肌腱驱动的肢体上进行自主功能运动。”自然机器智能1.3(2019): 144。

    [3]瓦莱罗-奎瓦斯,FJ。神经力学基础.施普林格系列生物系统和生物机器人,斯普林格出版社,伦敦,2016。

    [4] Marjaninejad, Ali和Francisco J. Valero-Cuevas。“拟人系统应该是‘多余的’吗?”拟人系统的生物力学.施普林格,Cham, 2019: 7-34。

    [5] Marjaninejad, Ali, Darío Urbina-Meléndez和Francisco J. Valero-Cuevas。“简单的运动学反馈增强仿生肌腱驱动系统的自主学习。”arXiv预印本arXiv:1907.04539(2019)。

查看相关行业的文章