【问题标题】:Use machine learning for simple robot control使用机器学习进行简单的机器人控制
【发布时间】:2016-01-02 12:33:17
【问题描述】:

我想通过机器学习来改进我的小机器人。

到目前为止,它在其主要功能中使用简单的 while 和 if then 决策来充当割草机器人。

我的想法是为此目的使用 SKLearn。

请帮助我找到正确的第一步。

我有一些传感器可以告诉世界外星人:

世界 ={yaw, pan,tilt, distance_to_front_obstacle, ground_color}

我有一个状态向量

状态 = {left_motor,right_motor,cutter_motor}

控制机器人的 3 个演员。

我想建立一个输入和输出值的数据集来教 sklearn 期望的行为,然后输入值应该为参与者提供正确的输出值。

一个例子:如果电机已打开,机器人应该向前移动,但距离计显示恒定值,机器人似乎被阻挡了。现在它应该决定后退并转向另一个方向。

首先,您认为 sklearn 可以做到这一点,其次我应该如何开始?

我的(简单)机器人控制代码在这里:http://github.com/bgewehr/RPiMower

请帮助我完成第一步!

【问题讨论】:

    标签: python machine-learning scikit-learn robotics


    【解决方案1】:

    我建议使用Reinforcement Learning。这里有一个Q-Learning 的教程,非常适合您的问题。

    如果你想在 python 中编写代码,现在我认为 scikit-learn 中没有 Q-learning 的实现。不过,我可以为您提供一些您可以使用的 Python 代码示例:123

    另外请记住,强化学习旨在最大化所有未来奖励的总和。您必须关注总体观点。

    祝你好运:-)

    【讨论】:

    • 谢谢!解决迷宫的任务显然与 Q 学习方法相匹配。但是我如何教机器人“我的轮子在转动”和“我不动”之间的相关性,以了解他被一些​​“看不见的”障碍物挡住了?这不是一个真正的 Q-Learning 问题,对吧?有点自我意识的问题,不是吗?
    • 您必须根据奖励设置所有内容。如果机器人试图朝着障碍物的方向前进,你会得到不好的回报。如果机器人要去你想去的地方,那么你给了很好的奖励
    • 我试一试,一定要深入这种思维方式!
    【解决方案2】:

    sklearn 包包含许多有用的机器学习工具,所以我认为这不是问题。如果是,那么肯定还有其他有用的 python 包。我认为为监督学习阶段收集数据将是具有挑战性的部分,并且想知道在网格系统中用磁带制作轨道是否明智。这将使将轨道转换为标签(网格中的 x,y 位置)更容易。如果您以后想制作复杂的轨道,我认为网格中的每个单元格都应该很小。检查他们在自动驾驶谷歌汽车中的表现可能非常聪明。

    【讨论】:

      猜你喜欢
      • 2018-01-27
      • 2012-11-16
      • 1970-01-01
      • 2017-03-27
      • 1970-01-01
      • 2012-07-07
      • 2013-06-07
      • 2014-11-15
      • 1970-01-01
      相关资源
      最近更新 更多