运用强化学习开发自学走路的腱驱动机器人
作者 : Ali Marjaninejad, University of Southern California
不管是长颈鹿还是马,许多动物在出生后几分钟内就能学会行走,但为什么工业机器人要完成哪怕最基本的重复性动作,都需要动用大批工程师和上万行代码?
我和我在南加大 Brain-Body Dynamics 实验室的同事共同研究了这个课题:我们开发了一个机械肢,它不具备有关自身结构和所处环境的先验知识,但仍能学会运动 [1,2]。我们在 MATLAB® 中实现了强化学习算法 G2P,它在几分钟内就学会了如何移动机械肢以驱动履带行进(图 1)。
腱驱动机械肢控制难题
该机械肢的架构模仿了驱动人类和脊椎动物运动的肌肉和肌腱结构 [1,2]。肌腱连接肌肉与骨骼,使生物“电机”(肌肉)能够在一定距离上对骨骼施力 [3,4]。(手的灵活性得益于肌腱驱动,但手指本身并没有肌肉。)
虽然肌腱具有机械和结构上的优势,但是腱驱动机器人的控制难度远超传统机器人。对于后者来说,使用简单的 PID 控制器直接控制关节角度通常就够了。但对于腱驱动机械肢,多个电机可能作用于一个关节,相应地,一个电机也可以作用于多个关节。因此,此类系统同时具有非线性、超定和欠定性质,极大增加了控制设计复杂度,需要采取新的控制设计方法。
G2P 算法
G2P(general-to-particular,从一般到特殊)算法的学习过程分为三个阶段:蹒跚学步 (motor babbling)、探索 (exploration) 和利用 (exploitation)。蹒跚学步时长约五分钟,机械肢在该阶段执行一系列随机运动,类似于刚出生的脊椎动物为学习其躯体功能所做的运动。
在蹒跚学步阶段,G2P 算法对机械肢的三个直流电机的电流随机产生一系列阶跃变化(图 2),每个肢关节上的编码器将测量关节角度、角速度和角加速度。
然后,该算法使用 Deep Learning Toolbox™ 生成多层感知器人工神经网络 (ANN)。将角度测量值作为输入数据,电机电流作为输出数据,对 ANN 进行训练,ANN 充当机械肢运动与产生运动的电机电流之间的逆映射(图 3)。
接下来,G2P 算法进入探索阶段,这是两阶段强化学习的第一个阶段。在探索阶段,该算法指示机械肢重复一系列循环运动,然后测量履带行进的距离。对于循环运动,该算法使用均匀随机分布生成 10 个点,每个点代表一对关节角度。对这 10 个点插值,以在关节空间内创建循环运动的完整轨迹。然后,该算法计算这些轨迹的角速度和加速度,使用逆映射获得完整循环中相应的电机激活值。该算法将这些值馈送给机械肢的三个电机,在重复循环 20 次后检查履带行进距离。
机械肢驱动履带行进的距离是对尝试的奖励:距离越远,奖励越高。如果奖励很小或不存在,则该算法会生成新的随机循环,进行其他尝试。该算法使用每次尝试过程中收集的新运动学信息更新逆映射。但是,如果奖励超过基准性能阈值(凭经验确定的 64 mm),则该算法进入其强化学习第二阶段:利用。
在这个阶段,由于已经找到一系列效果较好的运动,该算法开始在它以前测试过的轨迹附近寻求更好的解。具体做法是,在此前尝试所用的值附近使用高斯分布生成随机值。如果这一组新值产生的奖励高于上一组,则算法以此类推,将这组效果最好的新值设为新的高斯分布中心。如果某次尝试产生的奖励低于当前最佳值,则算法会拒绝这些值,并保留“迄今最佳”值(图 4)。
独特步态的出现
G2P 算法每次运行时,都会开始重新学习,用一组新的随机化运动探索机械肢的动力学。如果蹒跚学步或探索阶段碰巧特别有效,则算法学习较快,只需较少尝试即可达到利用阶段(图 5)。该算法并不寻求驱动履带行进的某组最优运动,而只是寻求“足够好”的运动。人类和其他生物也只是学习“足够好”地运用自己的身体,因为每次实际尝试都伴随一定的代价,包括受伤的风险、疲惫,以及本可以用来学习其他技能的时间和精力。
从随机运动开始逐步探索“足够好”的解,这样做会带来一个有趣的结果,即算法每次运行都会产生一种新的步态。我们已经看到,G2P 算法会产生各种各样的步态模式,既有沉重的跺脚,也有优雅的踮脚。我们称这些独特的步态是机器人形成的“运动个性”。我们认为,此类方法将使机器人拥有更为拟人化的特征和性格。
增加反馈以及未来的功能增强
最初实现的 G2P 是完全前馈的。因此,除了系统的被动响应以外,没有办法对扰动(如碰撞)作出响应。为解决这个问题,我们实现了一个包含少量反馈的 G2P 版本 [5]。我们发现,即使存在相当长的感知延迟(100 毫秒),引入简单的反馈也会使这个新 G2P 算法能够补偿因冲击造成的误差或逆映射中的缺陷。我们还发现,反馈可以加快学习,如缩短蹒跚学步阶段,或减少探索/利用尝试次数。
我们打算将 G2P 算法中体现的原则扩展到两足和四足机器人开发以及机器人操纵。
为什么选择 MATLAB?
我们的团队决定使用 MATLAB 而不是其他软件包开发此项目,原因是多方面的。首先,我们的研究跨多门学科,参与人员包括神经系统科学家和计算机科学家,以及生物医学、机械和电气工程师。不过,无论何种学科背景,我们团队的每个成员都懂 MATLAB,使之成为一门共同的语言和一种高效的协作方式。
选择 MATLAB 的另一个原因是它可以方便其他研究人员进行复制和扩展。我们编写的代码可以在任何版本的 MATLAB 上运行。例如,如果我们使用 MATLAB 中的 filtfilt() 函数进行零相位滤波,则我们确信其他人也可以使用同一函数并获得相同的结果。而使用 Python 或 C 时,我们可能会担心所用软件包或库的版本兼容性,或者需要为某些依赖项对其他在用软件包进行更新甚至降级。以我的经验来看,MATLAB 没有此类限制。
最后, MATLAB 还提供出色的客户支持。客户支持团队帮助我们处理过一些数据采集方面的问题。他们的响应速度以及在此方面的专业水平着实令人赞叹。
我由衷地感谢我的同事 Darío Urbina-Meléndez 和 Brian Cohn,以及 Brain-Body Dynamics 实验室 (ValeroLab.org) 主任兼项目负责人 Francisco Valero-Cuevas 博士,与我合力完成本文所述的项目。我还要感谢我们的赞助方(包括 DoD、DARPA、NIH 和南加大研究生院)对此项目的大力支持。
2020 年发布
参考文献
-
[1] Marjaninejad, Ali, et al. "Autonomous Functional Locomotion in a Tendon-Driven Limb via Limited Experience." arXiv preprint arXiv:1810.08615 (2018).
[2] Marjaninejad, Ali, et al. "Autonomous functional movements in a tendon-driven limb via limited experience." Nature Machine Intelligence 1.3 (2019): 144.
[3] Valero-Cuevas, FJ. Fundamentals of Neuromechanics. Springer Series on Biosystems and Biorobotics, Springer-Verlag, London, 2016.
[4] Marjaninejad, Ali, and Francisco J. Valero-Cuevas. "Should anthropomorphic systems be ‘redundant’?" Biomechanics of Anthropomorphic Systems. Springer, Cham, 2019: 7-34.
[5] Marjaninejad, Ali, Darío Urbina-Meléndez, and Francisco J. Valero-Cuevas. "Simple Kinematic Feedback Enhances Autonomous Learning in Bio-Inspired Tendon-Driven Systems." arXiv preprint arXiv:1907.04539 (2019).
-
-
-
了解更多
-
强化学习 - 视频系列
-
开发用于微创单孔手术的遥控外科手术机器人 - 文章
-
新一代仿生机器人 (24:53) - Video
-
实时测试 - 为磁场定向控制部署强化学习智能体 (4:51) - Video