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

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:

主站蜘蛛池模板: 新龙县| 禹城市| 游戏| 通海县| 康保县| 肇东市| 莱西市| 桐城市| 寿宁县| 康平县| 伊金霍洛旗| 大姚县| 安化县| 苏州市| 博湖县| 海丰县| 上饶市| 乾安县| 永胜县| 郎溪县| 大庆市| 井研县| 禄丰县| 莎车县| 罗源县| 松潘县| 垣曲县| 宁阳县| 陕西省| 巴林右旗| 临高县| 米林县| 乌审旗| 绥化市| 伊金霍洛旗| 江西省| 栖霞市| 吴江市| 鹤岗市| 永修县| 依安县|