【发布时间】:2011-03-05 08:42:44
【问题描述】:
我正在编写一个软件代理程序来控制模拟足球比赛中的机器人球员。最终我希望能参加 RoboCup 比赛。
在创建这样一个代理所涉及的各种挑战中,它的身体运动是我首先面临的挑战之一。我的目标模拟使用带有 22 个铰链的 Nao 机器人主体进行控制。每条腿六个,每条手臂四个,脖子两个:
(来源:sourceforge.net)
我对机器学习很感兴趣,相信一定有一些技术可以控制这个家伙。
在任何时间点,都是已知的:
- 所有 22 个铰链的角度
- 位于机器人胸部的加速度计的 X、Y、Z 输出
- 位于机器人胸部的陀螺仪的 X、Y、Z 输出
- 通过机器人头部的摄像头确定某些地标(角球、球门)的位置
- 施加到每只脚底部的力的向量,以及给出力在脚底上的位置的向量
我想完成的任务类型有:
- 尽可能快地直线奔跑
- 以定义的速度移动(即,根据附加输入处理快慢步行的一个函数)
- 向后走
- 原地转向
- 沿着简单的曲线运行
- 横着走
- 尽可能高地跳跃并着陆而不会摔倒
- 踢你脚前的球
- 在受到意想不到的力量(被球或其他球员击中)时做出“潜意识”的稳定动作,最好与上述任何一种配合
对于这些任务中的每一个,我相信我可以提出一个合适的适应度函数,但不是一组具有预期输出的训练输入。也就是说,任何机器学习方法都需要提供unsupervised learning。
我在开源项目中看到了一些示例,这些示例将圆函数(正弦波)以不同的幅度和相位连接到每个铰链的角度。这些似乎可以直线行走,但它们看起来都有些笨拙。不过,这并不是一种适用于我上面提到的所有任务的方法。
有些团队显然使用逆运动学,虽然我对此了解不多。
那么,机器人双足运动/行走有哪些方法?
顺便说一句,我编写并发布了a .NET library called TinMan,它提供了与足球模拟服务器的基本交互。它为机器人的 22 个铰链的传感器和执行器提供了一个简单的编程模型。
您可以阅读有关 RoboCup 的 3D 模拟足球联赛的更多信息:
【问题讨论】:
-
@John - 我只看到两个结果,一个是引用此问题的 SO 帖子,另一个是标题为 A Testable Theory of UFO、ESP、Aliens 和 Bigfoot 的帖子的博客 等 (yowiehunters.com/…)。你看到我没有看到的东西吗?
-
@John - 我又试了一次。只有两个。可能是因为我在澳大利亚,或者因为我通常不使用 Bing 并且没有以某种方式对其进行配置...无论如何,愿意分享一些更好的链接吗?
标签: language-agnostic machine-learning robotics robocup