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

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:

主站蜘蛛池模板: 海南省| 富顺县| 丰镇市| 湖口县| 霍邱县| 平山县| 蕲春县| 延吉市| 徐水县| 巴南区| 永定县| 怀安县| 毕节市| 淅川县| 衡阳县| 德昌县| 寿阳县| 周宁县| 临颍县| 玉林市| 泸西县| 右玉县| 德惠市| 衡阳县| 华池县| 肥乡县| 宝清县| 镇远县| 中山市| 濮阳县| 山西省| 剑阁县| 礼泉县| 余庆县| 金沙县| 淮安市| 上思县| 淮阳县| 彰武县| 云南省| 淅川县|