Outils pour utilisateurs

Outils du site


intelligence_du_pendule_de_furuta

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
intelligence_du_pendule_de_furuta [2022/05/24 19:17] – [Moyenne des récompenses] sergeintelligence_du_pendule_de_furuta [2022/10/07 10:11] (Version actuelle) – [Version avec ESP32] serge
Ligne 49: Ligne 49:
 source mon_env/bin/activate source mon_env/bin/activate
 python3 -m pip install -r requirements.txt python3 -m pip install -r requirements.txt
 +</code>
 +
 +=====Petit Pendule de Furuta=====
 +====Version tout en python====
 +Au bout de très longs apprentissages, le maître a fini par comprendre que pigpio empilait les callbacks à traiter ce qui décalait l'apprentissage par rapport au pendule réel.\\
 +Le codeur du balancier de 4 000 points crée 16 000 callbacks. En estimant la vitesse de rotation du balancier à 1 tour par seconde, la fréquence d'appel du callback est de 16 000 Hz.\\
 +Le moteur a un codeur de 1 000 points: le même calcul ajoute 4 000 Hz.\\
 +
 +Les gpio d'une Pi ne peuvent pas tourner à plus de 20 000 Hz: [[https://atman-iot.com/blog/raspberry-pi-benchmark/|Can the Raspberry pi acquire high frequency signals?]]
 +
 +Les vitesses de rotation sont plus rapides que 1 tour/seconde: la Pi prend alors du retard.
 +
 +Le codeur de 4 000 points a été remplacé par un codeur de 1 000 points, qui est grandement suffisant: les frottements ne permettent pas d'apprécier la position du points zéro à mieux que +- 1 ou 2 points.
 +
 +===Training avec "best"===
 +La méthode training_best de train_test.py est étrange: la doc n'est pas claire, ça ne finit jamais, il y a un message d'erreur au lancement assez obscure.
 +<code python>
 +eval_callback = EvalCallback(self.env,
 +                                     best_model_save_path=self.best_model_save_path,
 +                                     log_path=self.logdir,
 +                                     eval_freq=500,
 +                                     deterministic=True,
 +                                     render=False)
 </code> </code>
  
Ligne 55: Ligne 78:
 ====Installation, utilisation==== ====Installation, utilisation====
 tensorboard est dans les requirements.\\ tensorboard est dans les requirements.\\
-Voir **[[https://github.com/sergeLabo/furuta_rl/blob/main/furuta_soft/train_test.py|train_test.py]]** pour l'implémentation.\\ 
 Dans le dossier du projet, qui contient le venv=mon_env, lancer en terminal: Dans le dossier du projet, qui contient le venv=mon_env, lancer en terminal:
   ./mon_env/bin/tensorboard --logdir=logs   ./mon_env/bin/tensorboard --logdir=logs
Ligne 76: Ligne 98:
  
  
-{{tag> bestiaire_ia pytorch tensorboard }}+{{tag> bestiaire_ia petit_pendule_furuta pytorch tensorboard }}
intelligence_du_pendule_de_furuta.1653419822.txt.gz · Dernière modification : 2022/05/24 19:17 de serge