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

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:

主站蜘蛛池模板: 武义县| 陆河县| 正阳县| 错那县| 芮城县| 松阳县| 泸水县| 呼图壁县| 淄博市| 宜良县| 读书| 如东县| 宁化县| 漳州市| 渑池县| 新建县| 宁蒗| 郎溪县| 肥西县| 盘山县| 宁阳县| 阿鲁科尔沁旗| 南城县| 江都市| 英吉沙县| 巧家县| 上高县| 朝阳区| 盐源县| 界首市| 和田县| 茶陵县| 南安市| 平安县| 汨罗市| 昌平区| 铁岭市| 丰城市| 新乡市| 榕江县| 桑日县|