我想用机器学习来改进我的小机器人。
到目前为止,它使用简单的while和if then决定其主要功能是充当割草机器人。
我的想法就是使用SKLearn来达到这个目的。
请帮我找到正确的第一步。
我有几个感应器可以告诉你外面的世界:
世界={偏航,摇摄,倾斜,distance_to_front_obstacle,ground_color}
我有一个状态向量
状态= {left_motor,right_motor,cutter_motor}
它控制着机器人的三个角色。
我想构建一个输入值和输出值的数据集来教sklearn期望的行为,之后输入值应该给出参与者的正确输出值。
一个例子是:如果电机开启,机器人应该向前移动,但测距仪显示的是恒定值,则机器人似乎被阻挡了。现在,它应该决定后退和转身,并向另一个方向移动。
首先,您认为使用sklearn可以做到这一点吗?其次,我应该如何开始?
我的(简单)机器人控制代码如下:http://github.com/bgewehr/RPiMower
请帮我完成第一步!
发布于 2016-01-02 21:07:09
我建议使用Reinforcement Learning。这里有一个Q-Learning教程,非常适合您的问题。
如果你想用python编写代码,我想目前在scikit-learn中还没有Q-learning的实现。但是,我可以给您提供一些python代码的示例,您可以使用它们:1、2和3。
还请记住,强化学习被设置为最大化所有未来奖励的总和。你必须把重点放在总体视图上。
祝你好运:-)
发布于 2016-01-02 21:05:25
sklearn包包含了许多机器学习的有用工具,所以我不认为这是一个问题。如果是,那么肯定还有其他有用的python包。我认为为监督学习阶段收集数据将是具有挑战性的部分,我想知道在网格系统中使用磁带进行跟踪是否明智。这将使将轨迹转换为标签(网格中的x,y位置)变得更容易。网格中的每个单元格都应该很小,如果你想在以后做复杂的跟踪,我想。检查他们在谷歌自动驾驶汽车中的表现可能是非常聪明的。
https://stackoverflow.com/questions/34565916
复制相似问题