Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision Next revision Both sides next revision | ||
software:simulatorgym [2019/02/12 15:11] mgp3212019 |
software:simulatorgym [2019/02/12 15:25] mgp3212019 |
||
---|---|---|---|
Line 6: | Line 6: | ||
Gym propose plusieurs types d’environnement qui sont les suivants : | Gym propose plusieurs types d’environnement qui sont les suivants : | ||
- | • Algorithms | + | Algorithms |
- | • Atari | + | Atari |
- | • Box2D | + | Box2D |
- | • Classic control | + | Classic control |
- | • MuJoCo | + | MuJoCo |
- | • Robotics | + | Robotics |
- | • Toy text | + | Toy text |
Pour des raisons de compatibilités avec l’algorithme d’apprentissage que nous avions, notre intérêt c’est porté sur les environnements Box2D et MuJoCo. | Pour des raisons de compatibilités avec l’algorithme d’apprentissage que nous avions, notre intérêt c’est porté sur les environnements Box2D et MuJoCo. | ||
Line 28: | Line 28: | ||
pip install -e . | pip install -e . | ||
+ | |||
Les fonctionnalités de Gym | Les fonctionnalités de Gym | ||
Une fois que l’installation est fait, on peut commencer à s’amuser avec des fonctionnalités de base : | Une fois que l’installation est fait, on peut commencer à s’amuser avec des fonctionnalités de base : | ||
- | • gym.make(“environment name”) : retourne l’environnement dont le nom a été passé en paramètre | + | gym.make(“environment name”) : retourne l’environnement dont le nom a été passé en paramètre |
- | • env.reset() : reset l’environnement, retourne l’observation initiale | + | env.reset() : reset l’environnement, retourne l’observation initiale |
- | • env.render() : permet d’afficher la fenêtre de simulation. | + | env.render() : permet d’afficher la fenêtre de simulation. |
- | • env.step() : exécute une action et retourne 4 paramètres (observation, reward, done, info) | + | env.step() : exécute une action et retourne 4 paramètres (observation, reward, done, info) |
La fonction env.step() prend en paramètre une action et retourne les 4 paramètres suivants : | La fonction env.step() prend en paramètre une action et retourne les 4 paramètres suivants : | ||
- | • observation : un objet spécifique à l’environnement représentant une observation | + | observation : un objet spécifique à l’environnement représentant une observation |
- | • reward : un nombre de récompense obtenu par l’action précédente | + | reward : un nombre de récompense obtenu par l’action précédente |
- | • done : une valeur booléenne qui indique si il faut reset l’environnement ou non | + | done : une valeur booléenne qui indique si il faut reset l’environnement ou non |
- | • info : des informations de diagnostic utile pour le débuggage | + | info : des informations de diagnostic utile pour le débuggage |
Il est important de noter que ces informations dépendent de l’environnement dans lequel elles sont définies. | Il est important de noter que ces informations dépendent de l’environnement dans lequel elles sont définies. | ||
Line 48: | Line 48: | ||
+ | |||
Les environnements de Gym | Les environnements de Gym | ||
Gym propose plusieurs type d’environnement et plusieurs environnements par type. | Gym propose plusieurs type d’environnement et plusieurs environnements par type. | ||
Line 119: | Line 119: | ||
for t in range(1000): | for t in range(1000): | ||
#on affiche la fenêtre de simulation | #on affiche la fenêtre de simulation | ||
- | env.render() | + | env.render() |
#on récupère une action aléatoire possible pour l’environnement | #on récupère une action aléatoire possible pour l’environnement | ||
- | action = env.action_space.sample() | + | action = env.action_space.sample() |
- | #on exécute l’action et on récupère les informations | + | #on exécute l’action et on récupère les informations |
- | observation, reward, done, info = env.step(action) | + | observation, reward, done, info = env.step(action) |
#on affiche les informations | #on affiche les informations | ||
- | print("action : "+str(action)) | + | print("action : "+str(action)) |
- | print("reward : "+str(reward)) | + | print("reward : "+str(reward)) |
- | print("done : "+str(done)) | + | print("done : "+str(done)) |
- | print("info : "+str(info)) | + | print("info : "+str(info)) |
#si il y a une réussite ou une erreur, on arrête la simulation | #si il y a une réussite ou une erreur, on arrête la simulation | ||
- | if (done == 1): | + | if (done == 1): |
- | break | + | break |
Ci-dessous notre classe abstraite : | Ci-dessous notre classe abstraite : | ||
+ | <code> | ||
class scene: | class scene: | ||
- | #Gasebo param is null | + | #Gasebo param is null |
- | #Vrep param is the port connection | + | #Vrep param is the port connection |
- | #Gym param is the name of the environment loaded | + | #Gym param is the name of the environment loaded |
- | def __init__(self, param = None): | + | def __init__(self, param = None): |
- | pass | + | pass |
- | def startSimulation(self): | + | def startSimulation(self): |
- | pass | + | pass |
- | def pauseSimulation(self): | + | def pauseSimulation(self): |
- | pass | + | pass |
- | def resetSimulation(self, onlyWorld = None): | + | def resetSimulation(self, onlyWorld = None): |
- | pass | + | pass |
- | def getListObject(self): | + | def getListObject(self): |
- | pass | + | pass |
- | #Vrep param is the path to find the scene | + | #Vrep param is the path to find the scene |
- | #Gym param is null | + | #Gym param is null |
- | def loadEnvironment(self, param = None): | + | def loadEnvironment(self, param = None): |
- | pass | + | pass |
- | def getSimulationTime(self): | + | def getSimulationTime(self): |
- | pass | + | pass |
+ | </code> | ||
Documentation | Documentation | ||
Line 162: | Line 163: | ||
Code de car_racing.py : https://github.com/openai/gym/blob/master/gym/envs/box2d/car_racing.py | Code de car_racing.py : https://github.com/openai/gym/blob/master/gym/envs/box2d/car_racing.py | ||
Git de gym : https://github.com/openai/gym | Git de gym : https://github.com/openai/gym | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ |