Skip to content

Commit 82a6e63

Browse files
committed
Reinforcement Learning In Robotics: CartPole environment & Gym toolkit.
1 parent d997019 commit 82a6e63

File tree

5 files changed

+98
-0
lines changed

5 files changed

+98
-0
lines changed

README.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,13 @@ ___
3232
2. **[UCI Machine Learning Repository](https://archive.ics.uci.edu/ml/index.php)**
3333
___
3434

35+
### Illustrated results
36+
#### How reinforcement learning helps a robot balance a pole
37+
- Random movements cannot keep the balance for a long time<br>
38+
<img src="ml/rl_in_robotics/images/cart-pole-rl.gif" height="480"/> <br>
39+
- The better than random actions<br>
40+
<img src="ml/rl_in_robotics/images/cart-pole-balancing-rl.gif" height="480"/> <br>
41+
3542
### References
3643

3744
1. **[Machine Learning with Python for Everyone](https://www.informit.com/store/machine-learning-with-python-for-everyone-9780134845623)**
Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
# Learner: Nguyen Truong Thinh
2+
# Contact me: [email protected] || +84393280504
3+
#
4+
# Topic: Reinforcement Learning (RL): RL in robotics
5+
# A classic example: Cart-Pole Reinforcement Learning
6+
# (https://www.youtube.com/watch?v=5Q14EjnOJZc)
7+
8+
# Necessary packages
9+
import random
10+
from time import sleep
11+
12+
import gym
13+
14+
"""
15+
The Gym simulates interaction with the CartPole environment
16+
"""
17+
18+
env = gym.make('CartPole-v1')
19+
20+
seed = 1
21+
random.seed(seed)
22+
env.seed(seed)
23+
24+
episodes = 10
25+
26+
for i in range(episodes):
27+
init_state = env.reset()
28+
reward_sum = 0
29+
30+
while True:
31+
env.render()
32+
action = 1 if init_state[2] > 0 else 0
33+
state, reward, done, debug = env.step(action)
34+
reward_sum += reward
35+
sleep(.01)
36+
if done:
37+
print(f'Episode {i} reward: {reward_sum}')
38+
sleep(.01)
39+
if done:
40+
print(f'Episode {i} reward: {reward_sum}')
41+
sleep(1)
42+
break
43+
44+
env.close()

ml/rl_in_robotics/cart_pole_rl.py

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
# Learner: Nguyen Truong Thinh
2+
# Contact me: [email protected] || +84393280504
3+
#
4+
# Topic: Reinforcement Learning (RL): RL in robotics
5+
# A classic example: Cart-Pole Reinforcement Learning
6+
# (https://www.youtube.com/watch?v=5Q14EjnOJZc)
7+
8+
# Necessary packages
9+
import random
10+
from time import sleep
11+
12+
import gym
13+
14+
"""
15+
The Gym simulates interaction with the CartPole environment
16+
"""
17+
18+
env = gym.make('CartPole-v1')
19+
20+
seed = 1
21+
random.seed(seed)
22+
env.seed(seed)
23+
24+
print(f'Action Space: {env.action_space}')
25+
print(f'Observation Space: {env.observation_space}')
26+
27+
episodes = 10
28+
29+
for i in range(episodes):
30+
init_state = env.reset()
31+
reward_sum = 0
32+
33+
while True:
34+
env.render()
35+
random_action = random.randint(0, 1)
36+
state, reward, done, debug = env.step(random_action)
37+
reward_sum += reward
38+
sleep(.01)
39+
if done:
40+
print(f'Episode {i} reward: {reward_sum}')
41+
sleep(.01)
42+
if done:
43+
print(f'Episode {i} reward: {reward_sum}')
44+
sleep(1)
45+
break
46+
47+
env.close()
Loading
12.2 MB
Loading

0 commit comments

Comments
 (0)