0 安装PyBullet
激活一个虚拟环境,输入指令:(sudo) pip install PyBullet (对于Python 2.x),或者:pip3 install PyBullet。
1 搭建环境(未完待续)
创建强化学习任务的gym环境。
1.1 创建环境类
定义环境类的属性和方法。
1.1.1 环境可视化:渲染并调试
定义完环境类的属性后,可以先定义 render() 函数,搭配 pybullet.stepSimulation() 对环境的初始状态进行调试。
1.2 定义奖励函数
在设计获得奖励的条件时,应关注条件在现实环境中的易获取性。当然也可以先在虚拟环境中训练,看看智能体能获得什么样的行为,再考虑虚拟到现实的转换问题。
在进行策略学习时,密集的奖励要优于稀疏的奖励。
1.3 定义观察空间
即任务的状态空间。
1.4 定义动作空间
常见的六轴机械臂拥有六维连续动作空间。然而,大部分任务并不需要全探索。可以根据具体任务,在 init() 中限制TCP的动作维度以及范围,让 agent 更容易学习。
1.5 注册环境
先注册环境,再安装环境。最后,在每次训练前声明环境:
env = gym.make("MyRobotGym")
2 策略学习
注:以下内容请参阅 PyBullet Quickstart Guide 的 Reinforcement Learning Gym Envs 部分。
一系列的 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