OpenAI研究 机器人学校
正在发布 Roboschool:用于机器人模拟的开源软件,与 OpenAI Gym 集成。
agentzoo/demorace1.py
。每次运行脚本时,都会随机出现一组机器人。Roboschool 提供新的 OpenAI Gym 环境,用于在模拟中控制机器人。其中八个环境可作为预先存在的 MuJoCo 实施的免费替代方案,重新调整以产生更逼真的运动。我们还包括几个新的、具有挑战性的环境。
Roboschool 还可以轻松地在同一环境中一起训练多个智能体。
在我们推出 Gym之后,我们从许多用户那里听到的一个问题是 MuJoCo 组件需要付费许可(尽管 MuJoCo 最近为个人和课堂作业添加了 免费 学生许可)。Roboschool 消除了这一限制,让每个人都可以在不考虑预算的情况下进行研究。Roboschool 基于 Bullet Physics Engine,这是一个开源的、许可 许可的 物理库,已被其他模拟软件(如 Gazebo 和 V-REP )使用。
环境
Roboschool 附带 12 种环境,包括 Mujoco 用户熟悉的任务以及新的挑战,例如 Humanoid walker 任务的更难版本,以及多人 Pong 环境。我们计划随着时间的推移扩展这个集合,并期待社区做出贡献。
对于现有的 MuJoCo 环境,除了将它们移植到 Bullet 之外,我们还对其进行了修改以使其更加逼真。以下是我们移植的三个环境,并解释了它们与现有环境的不同之处。
机器人学校 | 现存的 | 评论 |
![]() | ![]() | Walker2d 重新调整以产生更逼真的慢节奏运动。 |
![]() | ![]() | 蚂蚁更重,鼓励它通常在地面上有两条或更多条腿。 |
![]() | ![]() | 人形机器人受益于从奖励中减去的更现实的能量成本(=扭矩×角速度)。 |
您可以在 GitHub 存储库的文件夹中找到适用于所有这些环境的训练有素的政策 agent_zoo
。您还可以访问 demo_race
脚本以启动三个机器人之间的竞赛。
交互式和强大的控制
在之前的几个 OpenAI Gym 环境中,目标是学习步行控制器。然而,这些环境涉及问题的一个非常基本的版本,其目标只是向前推进。在实践中,行走策略将学习一个单一的循环轨迹并且不访问大部分状态空间。此外,最终的政策往往非常脆弱:一个小的推力往往会导致机器人崩溃和跌倒。
我们添加了两个具有 3D 人形的环境,这使得运动问题更加有趣和具有挑战性。这些环境需要 交互式控制 ——机器人必须跑向一面旗帜,旗帜的位置随时间随机变化。
HumanoidFlagrun 旨在教机器人减速和转弯。目标是跑向旗帜,旗帜的位置随机变化。
HumanoidFlagrunHarder 还允许机器人跌倒并让它有时间重新站起来。它还会在每一集开始时直立或躺在地上,并且机器人会不断受到白色立方体的轰击,使其偏离轨道。
我们为两者提供训练有素的政策
HumanoidFlagrun 和 HumanoidFlagrunHarder。行走不像我们从普通人形机器人看到的那样快速和自然,但这些策略可以从许多情况下恢复,并且它们知道如何操纵。这个策略本身仍然是一个多层感知器,它没有内部状态,所以我们认为在某些情况下代理使用它的手臂来存储信息。
多人游戏
Roboschool 让您可以在同一环境中运行和训练多个代理。我们从 RoboschoolPong 开始,随后会有更多环境。
通过多人训练,您可以训练同一个智能体为双方玩(所以它自己玩),您可以使用相同的算法训练两个不同的智能体,或者您甚至可以设置两个不同的算法来相互对抗。
多代理设置提出了一些有趣的挑战。如果您同时训练两个玩家,您可能会看到如下所示的学习曲线,该曲线是通过策略梯度方法获得的:

这是正在发生的事情:
- Agent1(绿色)知道它有时可以在顶部击球,所以它移动到顶部。
- Agent2(紫色)发现它的对手在顶部,所以它将球发送到底部并过度拟合其他代理人不在。
- Agent1 最终发现它可以通过移动到底部来保护自己,但现在总是呆在底部,因为 Agent2 总是把球传到底部。
那样的话,策略就会发生波动,经过数小时的训练后,两个代理都没有学到任何有用的东西。与生成对抗网络一样,在对抗环境中学习很棘手,但我们认为这是一个有趣的研究问题,因为即使在简单的环境中,这种相互作用也会导致复杂的策略,并且它可以提供自然的课程。
也可以看看
社区为 OpenAI Gym创建环境做了很多工作 ,其中一些基于开源物理模拟器。在最近的一个项目中,研究人员创建了 OpenAI Gym 的一个分支 ,用开源物理模拟器 DART取代了 MuJoCo 。他们 表明 ,策略甚至可以在两个物理模拟器 MuJoCo 和 DART 之间传输。