- Python Reinforcement Learning
- Sudharsan Ravichandiran Sean Saito Rajalingappaa Shanmugamani Yang Wenzhuo
- 361字
- 2021-06-24 15:17:27
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:

- 程序員修煉之道:從小工到專家
- Creating Mobile Apps with Sencha Touch 2
- Microsoft Power BI數據可視化與數據分析
- 大數據技術入門
- Flutter Projects
- 聯動Oracle:設計思想、架構實現與AWR報告
- Oracle高性能SQL引擎剖析:SQL優化與調優機制詳解
- Web Services Testing with soapUI
- Doris實時數倉實戰
- Node.js High Performance
- 智能與數據重構世界
- 數據挖掘算法實踐與案例詳解
- 基于數據發布的隱私保護模型研究
- Managing Software Requirements the Agile Way
- 數據分析實踐:專業知識和職場技巧