Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
unitylog.txt
env
32 changes: 32 additions & 0 deletions DQN_model.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
import os
import gym
import gym_donkeycar
import numpy as np
from stable_baselines.common.vec_env import DummyVecEnv
from stable_baselines.ddpg.policies import CnnPolicy
from stable_baselines import DDPG

#SET UP ENVIRONMENT
os.environ['DONKEY_SIM_PATH'] = f"../DonkeySimMac/donkey_sim.app/Contents/MacOS/donkey_sim"
os.environ['DONKEY_SIM_PORT'] = str(9091)
os.environ['DONKEY_SIM_HEADLESS'] = str(0) # "1" is headless

env = gym.make("donkey-warehouse-v0")
#gym.make("donkey-generated-roads-v0")

timesteps = 100000 # Set this to a reasonable number
model_name = "ddpg_model" # Change the model name to your preferences
training = True # Change this to test or use the model

if training:
vec_env = DummyVecEnv([lambda: env])
model = DDPG(CnnPolicy, vec_env, verbose=1)
model.learn(total_timesteps=timesteps)
model.save(model_name)
else:
model = DDPG.load(model_name)
obv = env.reset()
for t in range(10000):
action, _states = model.predict(obv) # drive straight with small speed
# execute the action
obv, reward, done, info = env.step(action)
3 changes: 3 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,7 @@ https://github.com/tawnkramer/gym-donkeycar/tree/master/examples
Download program for your computer:
https://github.com/tawnkramer/gym-donkeycar/releases

```
import os
import gym
import gym_donkeycar
Expand All @@ -73,3 +74,5 @@ for t in range(100):
action = np.array([0.0,0.5]) # drive straight with small speed
# execute the action
obv, reward, done, info = env.step(action)

```