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

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:

主站蜘蛛池模板: 富宁县| 武乡县| 城步| 枝江市| 虎林市| 交口县| 中卫市| 南丹县| 牟定县| 明光市| 民勤县| 灌云县| 江津市| 九台市| 桐梓县| 昌黎县| 峨眉山市| 东至县| 高淳县| 云梦县| 贵定县| 太白县| 南康市| 农安县| 鸡东县| 乌兰浩特市| 会东县| 五峰| 呼图壁县| 永泰县| 海盐县| 玉环县| 北宁市| 阳泉市| 永宁县| 两当县| 麦盖提县| 江川县| 安福县| 安康市| 惠水县|