EquiBot

Robot pendulaire inversé

Pour rejoindre ce groupe ou tout renseignement, merci d'envoyer un mail à robot_pendulaire@hatlab.fr

EquiBot est un projet de collaboration éducatif qui vise à partager une expérience pratique de groupe pour la réalisation d'un robot pendulaire inversé. Ce robot permet de développer différentes pratiques :

  • mécanique : utilisation de logiciels CAO mécanique, découpeuse laser, imprimante 3D, …
  • électronique : intégration de composants électronique, communication sans fil, soudure, instruments de mesure, …
  • automatisme : commande contrôle, régulation, …
  • logiciel embarqué temps réel : développement de logiciel optimisé, télémètrie, développement logiciel “smartphone”.

Le robot pendulaire inversé “EquiBot” est développé sur le principe d'un pendule dont le centre de gravité est au-dessus de son axe de rotation ou de pivotement. Il devient mécaniquement instable s'il doit être maintenu dans une position vertical à 180°. Afin d'apporter une position d'équilibre stable, un système de contrôle doit être mis en oeuvre. Cet équilibre est obtenu en appliquant un couple à son axe de pivotement par une rétroaction mesurée par le système de contrôle (cf. Définition : "Pendule inversé").

L'exemple classique pour comprendre l'aspect physique de ce problème est d'essayer de maintenir en équilibre un manche à balai renversé sur le bout du doigt.

La réalisation de EquiBot est décomposée selon les principales étapes suivantes :

  • Structure mécanique
  • Organisation électronique
  • Principes d'automatisation
  • Logique de contrôle logiciel
  • Expérimentation dynamique

{TODO} XXX….

Structure mécanique

La structure mécanique de “EquiBot” est dessiné à l'aide d'un logiciel CAO mécanique (SolidWorks).

Contraintes de conception :

  • Largeur : 200 mm max - Hauteur : 300 mm max - Profondeur : 100 mm max.
  • Matière Plexiglas Extrudé ou Coulé - Epaisseur : 2 mm ou 5 mm
  • Assemblage sans vis

Organisation électronique

Le système de contrôle du robot pendulaire est composé :

Composants optionnels

Les liens ont été fournis à titre d'indication. D'autres solutions plus adaptées à ses crières peuvent être sélectionnées auprès de fournisseurs plus compétitifs.

Exemples : la carte STM32 Nucleo F401RE peut d'être remplacée par une carte ARDUINO de type UNO ou MEGA

Principes d'automatisation

Logique de contrôle logiciel

Le logiciel de contrôle de EQUIBOT se décompose en 3 logiques de contrôle :

  • LogiMoteur : Logique de contrôle des moteurs en charge du contrôle du sens et de la vitesse des moteurs
  • LogiPID : Logique d'asservissement pour le contrôle de l'équilibre de EQUIBOT par l'interprétation des mesures physiques réalisées par les capteurs d'environnement : gyroscope, accéléromètre, magnétomètre et caméra. Elle constitue l'élément le plus important pour décider le sens de rotation des moteurs selon l'inclinaison du robot. Cette logique met donc en oeuvre un mécanisme de contrôle de la stabilisation de EQUIBOT appelé contrôleur PID (combinaison des actions Proportionnelle, Intégrale et Dérivée)
  • LogiCam : Logique de capture d'image et d'interprétation de l'image saisie afin de décider le type de déplacement à appliquer à EQUIBOT

LogiMoteur

{TODO}

LogiPID

{TODO}

LogiCam

LogiCam a pour charge de reconnaître les formes géométriques placées dans la scène capturée et de décider l'action à appliquer à EQUIBOT. Elle est mise en oeuvre avec le moyen logiciel OpenCV (bibliothèque de primitives logicielles dédiées au calcul d'image) et le moyen matériel Raspberry Pi Zero..

Installation OpenCV

L'installation d'OpenCV sur Raspberry Pi Zero nécessite l'installation du système d'exploitation Raspbian Jessie.

Pour commencer, étendre le filesystem :

1 - sudo raspi-config

Installer toutes les dépendances requises (Installation très long : plusieurs heures)

1- sudo apt-get update

2- sudo apt-get upgrade

3- sudo apt - get

install

- y

build - essential

git cmake pkg - config

\

libjpeg - dev

libtiff5 - dev

libjasper - dev

libpng12 - dev

\

libavcodec - dev

libavformat - dev

libswscale - dev

libv4l - dev

\

libxvidcore - dev

libx264 - dev

libgtk2 . 0 - dev

\

libatlas - base - dev

gfortran

\

python2 . 7 - dev python3 - dev

Télécharger et Installer OpenCV et les paquetages associés

1- cd ~

2- wget - O opencv.zip https:github.com/Itseez/opencv/archive/3.0.0.zip 3- unzip opencv . zip 4- wget - O opencv_contrib . zip https : github.com/Itseez/opencv_contrib/archive/3.0.0.zip 3- unzip opencv_contrib . zip 4- cd opencv - 3.0.0 / 5- mkdir build 6- cd build 7- cmake - D CMAKE_BUILD_TYPE = RELEASE \ - D CMAKE_INSTALL_PREFIX = / usr / local \ - D INSTALL_C_EXAMPLES = ON \ - D INSTALL_PYTHON_EXAMPLES = ON \ - D OPENCV_EXTRA_MODULES_PATH = ~ / opencv_contrib - 3.0.0 / modules \ - D BUILD_EXAMPLES = ON . . 9- make 10- make clean 11- make 12- sudo make install 13- sudo ldconfig {TODO} ==== Expérimentation dynamique ==== ===== Résultats expérimentaux ===== ==== Mécanique ==== Les dimensions finales de la structure mécanique de “EquiBot” sont : Largeur : 160 mm - Hauteur : 260 mm - Profondeur : 80 mm. La matière utilisée est : Plexiglas PMMA Extrudé - Epaisseur : 2.1 mm Elle est constituée des éléments suivantes : * Support inférieur des moteurs : * Joues latérales : * Support intérieur : * Support supérieur : {TODO} Ajouter fichiers source dxf :projet:equibot:motorholdtest.png?200 Les pièces unitaires de structure mécanique a été réalisées avec la découpeuse laser SQYLAB. === Réglages effectués === * Vitesse de tête de coupe : 17 * Puissance : 60% d'une puissance totale de 100W Et voici le robot pendulaire complètement assemblé mecafinale.jpgimg_1317.jpg==== Electronique ==== {TODO} XXX … ==== Automatisme ==== {TODO} XXX … ==== Logiclel embarqué temps réel ==== {TODO} XXX …