intelligence_du_pendule_de_furuta
Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
intelligence_du_pendule_de_furuta [2022/02/06 09:49] – [Furuta petit] serge | intelligence_du_pendule_de_furuta [2022/10/07 10:11] (Version actuelle) – [Version avec ESP32] serge | ||
---|---|---|---|
Ligne 2: | Ligne 2: | ||
<WRAP center round box 60% centeralign> | <WRAP center round box 60% centeralign> | ||
- | **{{tagpage> | + | **[[intelligence_artificielle|Intelligence Artificielle]]** |
</ | </ | ||
Ligne 9: | Ligne 9: | ||
</ | </ | ||
- | =====C' | + | {{ : |
- | Une Intelligence Artificielle n'est jamais intelligente. C'est un programme informatique qui comprend à un moment donné un Apprentissage | + | =====C' |
+ | Une Intelligence Artificielle n'est jamais intelligente.\\ | ||
+ | **C'est un programme informatique qui comprend à un moment donné un Apprentissage | ||
=====Ressources===== | =====Ressources===== | ||
+ | {{ : | ||
* **[[https:// | * **[[https:// | ||
* **[[https:// | * **[[https:// | ||
- | + | * **[[https:// | |
- | =====Entrées | + | * **[[https:// |
- | Entrées: Vitesse/Position du chariot et du pendule. Un point zéro, et le décalage | + | |
- | Sortie: Impulsion | + | =====Principes===== |
+ | L' | ||
+ | Un step est: | ||
+ | * Le pendule envoie 4 items: (position, vitesse) du chariot, (position, vitesse) du pendule. | ||
+ | * Le serveur répond par une impulsion sur le moteur dans un sens ou dans l' | ||
+ | Un cycle se termine au bout de 2000 steps. | ||
- | =====Choix du PC pour les calculs===== | + | =====Installation |
- | Le fichier | + | Nous utilisons Gym de OpenAI et Stable-Baselines3.\\ |
- | Un Raspi 4 doit suffire. | + | Le code de Stable-baselines est le code de Baselines nettoyé, amélioré, documenté. Stable-baselines3 est la dernière version, il utilise Torch. [[https:// |
- | + | Les modules python à installer: stable-baselines3 et pyglet. Pyglet ne sert qu'a tester l' | |
- | =====Sources===== | + | |
- | * **[[https:// | + | |
- | =====Installation===== | + | |
- | Nous utilisons Gym de OpenAI et Stable-Baselines3. | + | |
- | + | ||
- | ===Stable-baselines3=== | + | |
- | Le code de Stable-baselines est le code de Baselines nettoyé, amélioré, documenté. | + | |
- | Stable-baselines3 est la dernière version, il utilise | + | |
- | * **[[https:// | + | |
- | + | ||
- | **Installation: | + | |
- | Les modules python à installer: stable-baselines3[extra] | + | |
<code bash> | <code bash> | ||
Ligne 47: | Ligne 41: | ||
</ | </ | ||
- | Allez dans le dossier | + | Dans votre dossier |
<code bash> | <code bash> | ||
- | cd /media/bla...bla/projets/furuta | + | git clone https://github.com/sergeLabo/ |
+ | # Allez dans le dossier des sources | ||
+ | cd ./furuta | ||
python3 -m venv mon_env | python3 -m venv mon_env | ||
source mon_env/ | source mon_env/ | ||
python3 -m pip install -r requirements.txt | python3 -m pip install -r requirements.txt | ||
</ | </ | ||
- | =====Création d'un Environment particulier dans Gym de OpenAI===== | ||
- | ====Ressources==== | ||
- | * **[[https:// | ||
- | Nous réalisons | + | =====Petit Pendule de Furuta===== |
+ | ====Version tout en python==== | ||
+ | Au bout de très longs apprentissages, | ||
+ | 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 | ||
+ | |||
+ | Les vitesses de rotation sont plus rapides que 1 tour/ | ||
+ | |||
+ | 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' | ||
+ | |||
+ | ===Training avec " | ||
+ | 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' | ||
+ | <code python> | ||
+ | eval_callback = EvalCallback(self.env, | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | render=False) | ||
+ | </ | ||
+ | |||
+ | |||
+ | =====Suivi de l' | ||
+ | ====Installation, | ||
+ | tensorboard est dans les requirements.\\ | ||
+ | Dans le dossier du projet, qui contient le venv=mon_env, | ||
+ | ./ | ||
+ | |||
+ | Dans un navigateur: | ||
+ | http:// | ||
+ | |||
+ | |||
+ | |||
+ | ====Exemples==== | ||
+ | {{: | ||
+ | {{: | ||
+ | {{: | ||
+ | {{: | ||
+ | ====Moyenne des récompenses==== | ||
+ | {{: | ||
+ | avec rollout/ | ||
- | {{tag> | + | {{tag> bestiaire_ia |
intelligence_du_pendule_de_furuta.1644140978.txt.gz · Dernière modification : 2022/02/06 09:49 de serge