8

我正在编写一个软件代理来控制模拟足球比赛中的机器人球员。最终我希望能参加 RoboCup 比赛。

在创建这样一个代理所涉及的各种挑战中,它的身体运动是我首先面临的挑战之一。我的目标模拟使用带有 22 个铰链的 Nao 机器人主体进行控制。每条腿六个,每条手臂四个,脖子两个:


(来源:sourceforge.net

我对机器学习很感兴趣,相信一定有一些技术可以控制这个人。

在任何时间点,都知道:

  • 所有 22 个铰链的角度
  • 位于机器人胸部的加速度计的 X、Y、Z 输出
  • 位于机器人胸部的陀螺仪的 X、Y、Z 输出
  • 通过机器人头部的摄像头定位某些地标(角落、目标)
  • 施加到每只脚底部的力的向量,以及给出力在脚底上的位置的向量

我想完成的任务类型是:

  • 以尽可能快的速度直线奔跑
  • 以定义的速度移动(即,一个根据附加输入处理快走和慢走的函数)
  • 倒着走
  • 现场转身
  • 沿着简单的曲线运行
  • 横着走
  • 尽可能高地跳跃并着陆而不会摔倒
  • 踢一个在你脚前的球
  • 在受到意想不到的力量(被球或其他球员击中)时做出“潜意识”的稳定动作,理想情况下与上述之一同时进行

对于这些任务中的每一个,我相信我可以提出一个合适的适应度函数,但不是一组具有预期输出的训练输入。也就是说,任何机器学习方法都需要提供无监督学习

我在开源项目中看到了一些示例,将圆函数(正弦波)以不同的幅度和相位连接到每个铰链的角度。这些似乎可以直线行走,但它们看起来都有些笨拙。不过,这并不是一种适用于我上面提到的所有任务的方法。

一些团队显然使用逆运动学,尽管我对此知之甚少。

那么,机器人双足运动/行走有哪些方法?


顺便说一句,我编写并发布了一个名为 TinMan 的 .NET 库,它提供与足球模拟服务器的基本交互。它为机器人的 22 个铰链的传感器和执行器提供了一个简单的编程模型。

您可以阅读更多关于 RoboCup 的 3D 模拟足球联赛的信息:

4

5 回答 5

4

有大量关于机器人运动规划机器人运动的研究文献。

通用机器人运动控制

对于双足机器人,至少有两种主要的机器人设计和控制方法(机器人是模拟的还是物理真实的):

  • 零力矩点——一种基于动力学的运动稳定性和控制方法。
  • 仿生运动——一种仿照哺乳动物、昆虫等生物神经网络的控制方法,侧重于使用由其他运动控制程序/循环修改的中央模式发生器来控制整体行走和保持稳定性。

双足足球机器人的运动控制

处理模拟 Biped 机器人的控制问题实际上有两个方面:

  1. 基本的步行和运动控制
  2. 面向任务的运动规划

第一部分只是处理维持机器人稳定性的基本控制问题(假设您正在使用一些基于物理的重力模型)、直线行走、转弯等。第二部分的重点是让您的机器人作为一名足球运动员完成特定任务,例如跑向球、踢球、阻挡对方球员等。单独解决这些问题并将第二部分链接为发送轨迹和目标的更高级别控制器可能是最容易的第一部分的指令。

有很多相关的论文和书籍可以推荐,但我在下面列出了一些可能有用的,你可能希望将它们包含在你已经完成的任何研究中。

阅读建议

拉瓦勒,史蒂文·迈克尔 (2006)。规划算法,剑桥大学出版社。

马克·雷伯特 (1986)。平衡的腿式机器人。麻省理工学院出版社。

武科布拉托维奇、米奥米尔和博罗瓦茨、布拉尼斯拉夫(2004 年)。“零矩点 - 其生命的 35 年”,国际人形机器人杂志,卷。1,第 1 期,第 157-173 页。

Hirose、Masato 和 Takenaka,T(2001 年)。《人形机器人 ASIMO 的开发》,本田 R&D 技术评论,第 13 卷,第 3 期。1.

Wu、QiDi 和 Liu、ChengJu 和 Zhang、Jiaqi 和 Chen、QiJun(2009 年)。《受生物学概念启发的腿式机器人运动控制综述》,中国科学F丛书:信息科学,第52卷,第1期。10,第 1715--1729 页,施普林格。

Wahde, Mattias 和 Pettersson, Jimmy (2002) “双足机器人研究的简要回顾”,第 8 届机电一体化论坛国际会议论文集,第 480-488 页。

Shan, J.、Junshi, C. 和 Jiapin, C. (2000)。“基于多目标遗传算法的仿人机器人行走中心模式发生器设计”,In:Proc。IEEE/RSJ 智能机器人和系统国际会议,第 1930-1935 页。

Chestnutt, J.、Lau, M.、Cheung, G.、Kuffner, J.、Hodgins, J. 和 Kanade, T. (2005)。“本田 ASIMO 人形机器人的足迹规划”,2005 年 IEEE 机器人与自动化国际会议论文集 (ICRA 2005),第 629-634 页。

于 2010-06-25T13:36:09.973 回答
2

这是 Peter Nordin 和 Mats G. Nordahl 在 1999 年发表的一篇很棒的论文,根据他们构建 ELVIS 机器人的经验,概述了控制类人机器人的进化方法:

于 2010-06-18T16:54:24.837 回答
2

I was working on a project not that dissimilar from this (making a robotic tuna) and one of the methods we were exploring was using a genetic algorithm to tune the performance of an artificial central pattern generator (in our case the pattern was a number of sine waves operating on each joint of the tail). It might be worth giving a shot, Genetic Algorithms are another one of those tools that can be incredibly powerful, if you are careful about selecting a fitness function.

于 2010-06-18T12:54:29.073 回答
2

我已经考虑这个问题已经有一段时间了,我意识到你至少需要两个智能“代理”才能让这个工作正常。基本思想是您在这里有两种类型的智能活动:

  1. 潜意识运动控制 (SMC)。
  2. 有意识的决策(CDM)。

SMC 的培训可以在线进行……如果您认真考虑的话:定义电机控制的成功基本上是在您向机器人提供信号时完成的,它会评估该信号并接受或拒绝它。如果您的机器人接受信号并导致“失败”,那么您的机器人将“离线”并且无法再接受任何信号。定义“失败”和“离线”可能很棘手,但我认为如果机器人上的传感器指示机器人无法移动(躺在地上),这将是失败。

所以你对 SMC 的适应度函数可能是这样的:numAcceptedSignals/numGivenSignals + numFailure

CDM 是另一个生成信号的 AI 代理,它的适应度函数可以是:(numSignalsAccepted/numSignalsGenerated)/(numWinGoals/numLossGoals)

所以你要做的就是运行 CDM,它的所有输出都进入 SMC……在游戏结束时,你运行你的健身功能。或者,您可以将 SMC 和 CDM 组合成一个智能体,并且您可以基于其他两个适应度函数制作复合适应度函数。我不知道你还能怎么做...

最后,你要确定什么是学习环节:是半局,全局,还是几个动作等等。如果一场比赛持续 1 分钟,场上共有 8 名玩家,那么训练可能很慢!

更新

这是一篇使用遗传编程创建踢足球的“软机器人”的论文的快速参考:http ://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.36.136&rep=rep1&type=pdf

关于您的评论:我认为对于潜意识运动控制 (SMC),信号将来自有意识的决策者 (CDM)。这样,您就可以改进 SMC 代理以正确处理 CDM 代理的命令(信号)。无论 CDM 代理说什么,您都希望最大限度地延长 SMC 代理的正常运行时间。

SMC 代理接收输入,例如关节上的矢量力,然后通过其处理单元运行它以确定它是否应该执行该输入或是否应该拒绝它。SMC 应该只执行它不“认为”它会从中恢复的输入,并且它应该拒绝它“认为”会导致“灾难性故障”的输入。

现在 SMC 代理有一个输出:接受或拒绝一个信号(1 或 0)。CDM 可以使用该信号进行自己的训练...... CDM 想要最大化 SMC 接受的信号数量,并且它还想要满足一个目标:对自己的团队获得高分,对对方团队获得低分. 因此,CDM 拥有自己的处理单元,正在发展以满足这两个需求。您的参考提供了 3 层设计,而我的只有 2 层……我认为我的参考是迈向 3 层设计的正确一步。

这里还要注意一件事:跌倒真的是“灾难性的失败”吗?如果你的机器人摔倒了,但 CDM 让它重新站起来怎么办?我认为这是一种有效的行为,所以你不应该惩罚机器人摔倒......也许更好的做法是惩罚它执行目标所需的时间(不一定是足球目标) )。

于 2010-06-22T17:59:45.617 回答
1

有这个关于人形运动控制的教程,描述了 HRP-4 人形机器人(可以走路爬楼梯)上使用的软件堆栈。它主要包括:

  • 线性倒立摆:平衡的简化模型。它仅涉及其他答案中已经提到的质心(COM)和ZMP。
  • 轨迹优化:机器人计算它想要做什么,理想情况下,在接下来的 2 秒左右。它在移动时不断重新计算该轨迹,这称为模型预测控制。
  • 平衡控制:根据传感器测量值和所需轨迹校正机器人姿势的最后阶段。

按照学术论文和源代码的链接了解更多信息。

于 2021-10-10T09:43:48.410 回答