Outils pour utilisateurs

Outils du site


intelligence_du_pendule_de_furuta

Ceci est une ancienne révision du document !


Intelligence du Pendule de Furuta

C'est quoi une Intelligence Artificielle

Une Intelligence Artificielle n'est jamais intelligente. C'est un programme informatique qui comprend à un moment donné un Apprentissage Automatique.

Ressources

Principes

  • Un PC serveur avec l'IA, avec un GUI ou des BP et un petit écran.
  • Un PC client sur le pendule.
  • Ils communiquent en OSC par un wifi adhoc/hotspot

L'apprentissage se compose de cycles, un cycle comprend des steps.
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'autre. Cette impulsion sera proportionnelle (coefficient à trouver empiriquement !) à la valeur entre -1 et 1.

Le nombre de steps est limité, pour recommencer souvent, ce qui va faire converger l'apprentissage. Un cycle comprend souvent 2000 step Maxi. Un cycle est stoppé aussi si le chariot est trop loin du zéro, si le pendule tourne trop vite …
Un apprentissage comprend un nombre total de steps entre 100 000 et 1 000 000.

Reset pour un nouveau cycle

  • Le serveur demande un reset au pendule
  • Le pendule se place dans une position angulaire entre -180 et 180 degrés, avec une petite vitesse angulaire
  • Le chariot est proche de zéro avec une petite vitesse linéaire
  • Le client envoie ses '/reset' = positions/vitesses
  • Un nouveau cycle commence

Calcul de la vitesse et de la position

Il est nécessaire de connaître vitesse et position du chariot et du pendule.
La fréquence des impulsions moteur pourrait être de 50 Hz, soit une période de 0.02 s

Pour un codeur de 4000 points sur un tour de chariot, sur un rayon de 200 mm, le déplacement du pendule est de 2*3.14*200/4000=0.314 mm par point.

Si le chariot parcours 100mm en 1 seconde, soit 100/0.314=318 points en 1 seconde, en 0.02s –> 6 pts

Calcul de la vitesse:

Matériels

Choix du PC pour l'IA: Le fichier de poids fait ~46 ko. Un Raspi 4 doit suffire.
Choix du PC pour le pendule: Un Raspi 3 et du Arduino ?

Installation de l'intelligence artificielle

Nous utilisons Gym de OpenAI et Stable-Baselines3.

Stable-baselines3

Le code de Stable-baselines est le code de Baselines nettoyé, amélioré, documenté. Documentation de stable-baselines @ stable-baselines.readthedocs.io Stable-baselines3 est la dernière version, il utilise tensorflow2 et Torch

Installation:

https://stable-baselines3.readthedocs.io/en/master/guide/install.html
Les modules python à installer: stable-baselines3[extra] et pyglet. Pyglet ne sert qu'a tester l'installation. L'installation de stable-baselines3 installe gym et installe tout ce qui est dans requirements.txt

# Installation et Mise à jour du module pip
sudo apt install python3-pip
python3 -m pip install --upgrade pip
# Installation de venv
sudo apt install python3-venv

Télécharger les sources de furuta
Dans votre dossier “projets”, par exemple /home/machin/projets

git clone https://github.com/sergeLabo/furuta
# Allez dans le dossier des sources
cd /home/machin/projets/furuta
python3 -m venv mon_env
source mon_env/bin/activate
python3 -m pip install -r requirements.txt

Notre environement

intelligence_du_pendule_de_furuta.1644230136.txt.gz · Dernière modification : 2022/02/07 10:35 de serge