Clemylia commited on
Commit
161c930
·
verified ·
1 Parent(s): 5b6a5d0

Update README.md

Browse files
Files changed (1) hide show
  1. README.md +68 -1
README.md CHANGED
@@ -140,4 +140,71 @@ Ce projet est une preuve de concept. Nous encourageons les développeurs à éte
140
  1. **Actions Supplémentaires :** Ajouter des actions comme "Manger" ou "Dormir" pour que l'agent puisse activement réduire ses états de `Faim` et `Sommeil`.
141
  2. **Simulation 2D/3D :** Intégrer un rendu visuel (avec Pygame ou Unity) à la méthode `render()` pour visualiser le chiot se déplaçant dans un espace physique.
142
 
143
- N'hésitez pas à forker le dépôt sur Hugging Face pour proposer des améliorations \!
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
140
  1. **Actions Supplémentaires :** Ajouter des actions comme "Manger" ou "Dormir" pour que l'agent puisse activement réduire ses états de `Faim` et `Sommeil`.
141
  2. **Simulation 2D/3D :** Intégrer un rendu visuel (avec Pygame ou Unity) à la méthode `render()` pour visualiser le chiot se déplaçant dans un espace physique.
142
 
143
+ N'hésitez pas à forker le dépôt sur Hugging Face pour proposer des améliorations \!
144
+
145
+ code exemple d'utilisation
146
+
147
+ ```
148
+ import gymnasium as gym
149
+ from stable_baselines3 import PPO
150
+ from gymnasium import register
151
+ from huggingface_hub import hf_hub_download
152
+ import os
153
+ import sys # Import sys
154
+
155
+ # --- PARAMÈTRES DU DÉPÔT ---
156
+ REPO_ID = "Clemylia/MiRobot"
157
+ MODEL_FILE = "mirobot_final_model.zip"
158
+ ENV_SCRIPT_FILE = "MiRobotEnv.py"
159
+ ENV_ID = 'MiRobot-v0'
160
+
161
+ # 1. Téléchargement des Fichiers
162
+ env_path = hf_hub_download(repo_id=REPO_ID, filename=ENV_SCRIPT_FILE)
163
+ model_path = hf_hub_download(repo_id=REPO_ID, filename=MODEL_FILE)
164
+
165
+ # 2. Chargement de la Classe d'Environnement (MiRobotEnv)
166
+ # Extract the directory of the downloaded environment script
167
+ env_dir = os.path.dirname(env_path)
168
+ # Add this directory to sys.path so Python can find it as a module
169
+ if env_dir not in sys.path:
170
+ sys.path.insert(0, env_dir) # Add to the beginning of sys.path
171
+
172
+ try:
173
+ # No need for exec(f.read()) anymore, as gymnasium.make will handle the import
174
+ pass
175
+ except Exception as e:
176
+ print(f"Erreur lors du chargement de l'environnement: {e}")
177
+ exit()
178
+
179
+ # 3. Enregistrement de l'Environnement Custom
180
+ try:
181
+ register(
182
+ id=ENV_ID,
183
+ entry_point='MiRobotEnv:MiRobotEnv', # This will now try to import MiRobotEnv module
184
+ )
185
+ except gym.error.UnregisteredEnv:
186
+ pass # Déjà enregistré
187
+
188
+ # 4. Chargement du Modèle Entraîné (PPO)
189
+ model = PPO.load(model_path)
190
+ print("✅ Modèle MiRobot chargé et prêt pour l'inférence.")
191
+
192
+ # 5. Simulation (Inférence)
193
+ env = gym.make(ENV_ID)
194
+ obs, info = env.reset()
195
+ action_map = {0: "S'Arrêter", 1: "Avancer", 2: "Tourner G", 3: "Tourner D"}
196
+
197
+ print("\n--- Démarrage de la Simulation MiRobot ---")
198
+ for i in range(20):
199
+ action, _states = model.predict(obs, deterministic=True)
200
+ obs, reward, terminated, truncated, info = env.step(action)
201
+
202
+ print(f"[Pas {i+1}] Action Choisie: {action_map[action.item()]}") # Fixed: Use .item() to get scalar from numpy array
203
+ env.render() # Affiche l'état interne de MiRobot
204
+
205
+ if terminated or truncated:
206
+ obs, info = env.reset()
207
+
208
+ env.close()
209
+ print("\nSimulation terminée.")
210
+ ```