官术网_书友最值得收藏!

Training a robot to walk

Now let's learn how to train a robot to walk using Gym along with some fundamentals. 

The strategy is that X points will be given as a reward when the robot moves forward, and if the robot fails to move then Y points will be reduced. So the robot will learn to walk in the event of maximizing the reward.

First, we will import the library, then we will create a simulation instance by the make function. Open AI Gym provides an environment called BipedalWalker-v2 for training robotic agents in a simple terrain:

import gym
env = gym.make('BipedalWalker-v2')

Then, for each episode (agent-environment interaction between the initial and final state), we will initialize the environment using the reset method:

for episode in range(100):
observation = env.reset()

Then we will loop and render the environment:

for i in range(10000):
env.render()

We sample random actions from the environment's action space. Every environment has an action space which contains all possible valid actions:

action = env.action_space.sample()

For each action step, we will record observation, reward, done, and info:

observation, reward, done, info = env.step(action)

observation is the object representing an observation of the environment. For example, the state of the robot in the terrain.

reward are the rewards gained by the previous action. For example, the reward gained by a robot on successfully moving forward.

done is the Boolean; when it is true, it indicates that the episode has completed (that is, the robot learned to walk or failed completely). Once the episode has completed, we can initialize the environment for the next episode using env.reset().

info is the information that is useful for debugging.

When done is true, we print the time steps taken for the episode and break the current episode:

if done:
print("{} timesteps taken for the Episode".format(i+1))
break

The complete code is as follows:

import gym
env = gym.make('BipedalWalker-v2')
for i_episode in range(100):
observation = env.reset()
for t in range(10000):
env.render()
print(observation)
action = env.action_space.sample()
observation, reward, done, info = env.step(action)
if done:
print("{} timesteps taken for the episode".format(t+1))
break

The output is shown in the following screenshot:

主站蜘蛛池模板: 福安市| 信丰县| 依安县| 儋州市| 永泰县| 乐都县| 抚顺县| 南江县| 英德市| 历史| 公主岭市| 香港| 鲁甸县| 新乐市| 思南县| 镇雄县| 大关县| 左云县| 延边| 闽侯县| 潮安县| 陇川县| 舒兰市| 兰西县| 延川县| 巴林左旗| 河北省| 惠水县| 墨玉县| 赫章县| 丹寨县| 体育| 贡山| 静安区| 五家渠市| 府谷县| 喀喇沁旗| 岳阳市| 兰坪| 思南县| 辛集市|