在PyBullet中进行机械臂的强化学习

在PyBullet中进行机械臂的强化学习,第1张

本文请参阅PyBullet Quickstart Guide。

Reinforcement Learning Gym Environments

一系列的 RL Gym 环境在 “pip install pybullet” 时已经被安装好了,包括适配 PyBullet 的 OpenAI Gym 环境例如ant, hopper, humanoid and walker。还有一些同时适用于模拟以及真实机器人的环境,例如 the Ghost Robotics Minitaur quadruped, the MIT racecar and the KUKA robot arm grasping environments。

pybullet、pybullet_envs、pybullet_data 的源代码和示例:
https://github.com/bulletphysics/bullet3/tree/master/examples/pybullet/gym

你可以使用 RL training algorithms(例如 DQN、PPO、TRPO 和 DDPG)来训练环境。 这里有几个预训练的示例可用,打开方式:

pip install pybullet, tensorflow, gym
python -m pybullet_envs.examples.enjoy_TF_HumanoidBulletEnv_v0_2017may
python -m pybullet_envs.examples.kukaGymEnvTest
Environments and Data

在 “sudo pip install pybullet” 之后,pybullet_envs 和 pybullet_data 包可用。 导入 pybullet_envs 包会自动将环境注册到 OpenAI Gym。

你可以使用以下 Python 代码获取健身房中的 Bullet 环境列表:待更新…

Environments of KUKA
环境描述
KukaBulletEnv-v0模拟 KUKA Iiwa 机械臂,抓取托盘中的物体。 主要奖励发生在最后,当抓手可以抓住物体超过一定高度时。 每一步都会发生一些非常小的奖励/成本:动作成本,抓手与物体之间的距离。 observation:物体的 x,y 坐标。注:这个环境目前训练有问题。
KukaCamBulletEnv-v0与 KukaBulletEnv-v0 相同,但observation是相机像素。

Roboschool 环境也被移植到了 pybullet 中。 Roboschool 环境比 MuJoCo Gym 环境更难。

也可以从 pybullet_data 包中访问数据,例如 URDF/SDF 格式的机器人模型、Wavefront 公司的 OBJ 文件。 这是一个如何执行此 *** 作的示例:

import pybullet
import pybullet_data
datapath = pybullet_data.getDataPath()
pybullet.connect(pybullet.GUI)
pybullet.setAdditionalSearchPath(datapath)
pybullet.loadURDF("r2d2.urdf",[0,0,1])

或者手动将数据路径附加到 loadURDF/SDF 命令中的文件名。

Stable Baselines & ARS, ES,…

对于 the HalfCheetah (HalfCheetahBulletEnv-v0), Ant (AntBulletEnv_v0), (Hopper) HopperBulletEnv_v0, CartPoleContinuousBulletEnv-v0 等连续控制的 Gym 环境,可以使用 Stable Baselines。

Train and Enjoy: DQN, PPO, ES

对于 KukaBulletEnv-v0 和 RacecarBulletEnv-v0 等离散的 Gym 环境,你可以使用 OpenAI Baselines DQN,使用离散动作空间训练模型。 这里提供了一些示例,如何训练和使用这些离散环境。首先需要安装baselines,最新版本的baselines已经不支持以下示例:

python -m pybullet_envs.baselines.train_pybullet_cartpole
python -m pybullet_envs.baselines.train_pybullet_racecar

当模型改进时,OpenAI Baselines 将在指定的时间间隔保存一个 .PKL 文件。 此 .PKL 文件用于使用(enjoy)脚本:

python -m pybullet_envs.baselines.enjoy_pybullet_cartpole
python -m pybullet_envs.baselines.enjoy_pybullet_racecar

PyBullet 还附带了一些预训练模型,你可以开箱即用。 以下是可以使用(enjoy)的预训练环境列表:

python -m pybullet_envs.examples.enjoy_TF_AntBulletEnv_v0_2017may
python -m pybullet_envs.examples.enjoy_TF_HalfCheetahBulletEnv_v0_2017may
python -m pybullet_envs.examples.enjoy_TF_AntBulletEnv_v0_2017may
python -m pybullet_envs.examples.enjoy_TF_HopperBulletEnv_v0_2017may
python -m pybullet_envs.examples.enjoy_TF_HumanoidBulletEnv_v0_2017may
python -m pybullet_envs.examples.enjoy_TF_InvertedDoublePendulumBulletEnv_v0_2017may
python -m pybullet_envs.examples.enjoy_TF_InvertedPendulumBulletEnv_v0_2017may
python -m pybullet_envs.examples.enjoy_TF_InvertedPendulumSwingupBulletEnv_v0_2017may
python -m pybullet_envs.examples.enjoy_TF_Walker2DBulletEnv_v0_2017may
Train using TensorFlow & PyTorch

你可以使用 TensorFlow Agents PPO 训练各种 pybullet 环境。 首先安装需要的Python包:pip install gym、tensorflow、agents、pybullet、ruamel.yaml

然后用于训练:待更新…

以下环境可用作代理配置:

pybullet_pendulum
pybullet_doublependulum
pybullet_pendulumswingup
pybullet_cheetah
pybullet_ant
pybullet_racecar
pybullet_minitaur

你可以使用 tensorboard 查看训练的进度:

tensorboard --logdir=pendulum --port=2222

打开网络浏览器并访问 localhost:2222 页面。 这是来自 Tensorboard 的用于钟摆训练的示例图:

训练后,你可以可视化训练后的模型,创建视频或使用物理服务器(python -m pybullet_envs.examples.runServer or ExampleBrowser in physics server mode or in Virtual Reality)进行可视化。 如果你启动本地 GUI 物理服务器,可视化器 (bullet_client.py) 将自动连接到它,并使用 OpenGL 硬件渲染来创建视频。 否则它将使用 CPU tinyrenderer。 要生成视频,请使用:

python -m pybullet_envs.agents.visualize_ppo --logdir=pendulum/xxxxx --outdir=pendulum_video

以类似的方式,你可以训练和可视化 Minitaur 机器人:

python -m pybullet_envs.agents.train_ppo --config=pybullet_minitaur --logdir=pybullet_minitaur

这是 Minitaur 步态的示例视频。

Evolution Strategies (ES)

David Ha (hardmaru) 有一篇博客文章如何使用 Evolution Strategies 训练 PyBullet 环境。

Train using PyTorch PPO

PyBullet 可以作为 MuJoCo 的免费开源替代品,用于连续控制的任务。

Proximal Policy Optimization 的原文。

OpenAI 关于 PPO 的帖子。PPO2:一个支持 GPU 的 PPO implementation。

此部分请参阅项目 pytorch-a2c-ppo-acktr。该项目基于PyTorch,使用 Kronecker-factored approximation (ACKTR) and Generative Adversarial Imitation Learning (GAIL) 实现了 Advantage Actor Critic (A2C), Proximal Policy Optimization (PPO), Scalable trust-region method for deep reinforcement learning。该实现受到 A2C、ACKTR 和 PPO 的 OpenAI baselines 的启发。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/718969.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-25
下一篇 2022-04-25

发表评论

登录后才能评论

评论列表(0条)

保存