使用机器学习进行简单的机器人控制

时间:2016-01-02 12:33:18

标签: python machine-learning scikit-learn robotics

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

到目前为止,它使用简单的,然后在其主要功能中作为草坪割草机器人的决定。

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

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

我有几个传感器可以告诉世界:

World = {yaw,pan,tilt,distance_to_front_obstacle,ground_color}

我有一个状态向量

State = {left_motor,right_motor,cutter_motor}

控制机器人的3个角色。

我想构建一个输入和输出值的数据集来教导sklearn所希望的行为,之后输入值应该为actor提供正确的输出值。

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

首先,你认为这是可能的sklearn和第二我应该如何开始?

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

请帮我完成第一步!

2 个答案:

答案 0 :(得分:6)

我建议使用Reinforcement Learning。在这里,您有一个Q-Learning的教程,可以很好地解决您的问题。

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

另请注意,强化学习的目的是最大化所有未来奖励的总和。你必须专注于一般观点。

祝你好运: - )

答案 1 :(得分:1)

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