OpenAI发布基于Bullet物理引擎集成Gym的机器人仿真开发环境Roboschool!

1279 字丨阅读本文需 3 分钟

  仿真开源软件Roboschool首发,与OpenAI Gym高度整合。

  Roboschool作为新的OpenAI 训练场(OpenAI Gym)开发环境为机器人仿真控制提供了可能。其中八个开发环境可以免费替代现有预设的MuJoCo环境,它们可以重新调整以产生更逼真的运动。此外,我们还包括几个全新的更具有挑战性的环境。

  Roboschool的发布也使得在同一个环境中同时训练多个机器人变得容易。在我们推出OpenAI训练场后,许多用户向我们反馈,MuJoCo组件需要付费许可证(尽管MuJoCo最近为个人和高校增加了免费学生许可证)。现在,开源的Roboschool取消了这一限制,让每个人都在无需担心预算的情况下进行他的研究。 Roboschool基于Bullet物理引擎,这是一个开放源代码许可的物理库,已被其他仿真软件(如Gazebo和V-REP)使用。

 

  Roboschool发布时带有十二个设定环境,其中不仅包括Mujoco用户熟悉的任务,还包括了一些更新,更具挑战性的任务,如更高难度的人型机器人步行任务,以及多玩家乒乓球游戏任务。我们在今后会不断丰富我们的环境任务集,同时也对开源社区的贡献充满期待。

  对于现有的MuJoCo环境,除了将其移植到Bullet之外,我们也对其进行了更贴近现实的改进。以下是经过我们移植的三种环境,并通过比较说明了它们与现有环境的不同之处。

  您可以在GitHub中agent_zoo文件夹中找到针对所有这些环境的训练策略。此外,你还可以通过demo_race脚本来运行三个机器人之间的比赛。

 

  在之前的几个OpenAI训练场环境中,任务目标是学习一个步行控制器。然而,在该环境任务只是涉及到简单的向前推进。在实际中,机器人的步行策略只是简单学习到一个循环轨迹,并没有访问到其余大部分状态空间。因此,最终学习到的策略往往是非常脆弱的:一个小小的推动通常会导致机器人失败摔倒。

  机器人的任务目标是不断朝着位置随机变化的标志奔跑。HumanoidFlagrun环境用来展示如何让机器人学习减速和转弯。此外,HumanoidFlagrunHarder环境还允许机器人跌倒,并给予其时间重新站起来回到步行状态。在每次运行开始时,机器人处于直立或平躺在地面上的状态,同时它会不断被白色的立方体轰炸,来将机器人推离原有的轨迹。

  我们为HumanoidFlagrun和HumanoidFlagrunHarder环境提供成熟的训练策略。在这些训练策略中,机器人的不行并不像我们普通人那样快速和自然,但这些训练策略可以允许机器人从许多复杂情况中恢复,他们知道如何动作。这个训练策略本身是一个没有内部状态的多层感知器,所以我们推断,在某些情况下,机器人通过其手臂的姿态来存储运动信息。

  Roboschool允许您在同一环境中运行和训练多个机器人。我们接下来通过RoboschoolPong来展示这一特性,同时它也可以应用到其余很多环境中。通过多人训练,您可以训练同一机器人(它可以自己和自己玩),也可以使用相同的算法训练两个不同的机器人,甚至可以设置两种不同的算法相互对抗。

  多人训练的设置也提出了一些有意思的挑战。如果你同时训练两个机器人,您可能会看到它们的学习曲线,从梯度控制算法中所得学习曲线如下图所示。

  乒乓球控制游戏学习曲线,其中策略更新与策略梯度控制算法同时运行。

  在算法运行的过程中,发生了以下的情况:

  机器人2(紫色)发现它的对手处于顶端,所以它将球发送到底部。

  机器人1最终发现它可以通过移动到底部来保卫自己,但现在总是保持在底部,因为机器人2总是将球发送到底部。

  这样,生成的控制策略就会不断迭代变化,经过几个小时的训练,两个机器人都没有学到任何有用的东西。在生成对抗网络中,在对抗环境中学习是比较复杂的,但却是一个有趣的值得研究的问题,因为即使在简单的环境中,这种相互作用也可以生成复杂的策略,并且可以提供非常自然的解决方案。

免责声明:凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处本网。非本网作品均来自其他媒体,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如您发现有任何侵权内容,请依照下方联系方式进行沟通,我们将第一时间进行处理。

0赞 好资讯,需要你的鼓励
来自:OpenAI
0

参与评论

登录后参与讨论 0/1000

为你推荐

加载中...