Controle d'un robot à roues holonomes "Raspblock"

(C) Marc BUFFAT, dpt mécanique, Lyon 1

Table des matières

Robot à roues holonomes

La roue mecanum (inventé en 1973 wikipedia est une roue omni-directionnelle (ou holonome) permettant à un véhicule de se diriger dans toutes les directions: aussi bien sur le côté que vers l'avant et l'arrière, en ayant un axe de rotation fixe. Elle est très utilisée en robotique. Le principe est d'ajouter de petites roues sur la périphérie avec une axe de rotation à 45 degré et une rotation libre. Ce degré de liberté supplémentaire permet un roulement sans glissement de la roue dans toutes les directions sans avoir à tourner l'axe de rotation comme pour une roue classique.

Le robot utilisé "Raspblock" est proposé en kit par la société Yahboom et en ajoutant une carte Rasberry Pi 4, on obtiens un robot contrôlable en WIFI et programmable en Python. Ce robot éducatif basé sur Raspberry Pi 4B, utilise des roues Mecanum et des moteurs TT avec encodeur pour obtenir un mouvement omnidirectionnel à 360°. Il est de plus équipé d'une caméra caméra USB HQ mobille sur tourelle. Il embarque une carte d'extension avec des gyroscopes, des servos-moteurs, un haut-parleur et une interface moteur. Il embarque aussi un serveur Jupyter lab permettant sa programmation en python à distance en utilisant le WIFI.

cinématique du robot

La roue mecanum permet d'obtenir une vitesse à $\pm 45^o$ par rapport à la roue, avec une composante dans la direction de la roue et une composante dans la direction perpendiculaire: la direction dépendant du sens de rotation de la roue.

La combinaison des vitesses des 4 roues mecanum permet alors d'imposer la vitesse $\mathbf{V_G}=[V_x,V_y]$ du centre de gravité $G$ du robot ainsi que son taux de rotation $\Omega$ dans le repère lié au robot. A condition de choisir les bonnes vitesses de rotation $\boldsymbol{\omega}=[\omega_1, \omega_2,\omega_3,\omega_4]$ des 4 roues mecanum, on peut imposer n'importe quelle vitesse de déplacement $\mathbf{V_G}$ et de rotation $\Omega$ du robot.

Un modèle cinématique complet, avec une hypothèse de roulement sans glissement, permet d'obtenir ces vitesses de rotation $\boldsymbol{\omega}$ en se donnant $\mathbf{V_G}$ et $\Omega$. IL suffit de convertir ces valeurs en commandes des moteurs TT pour obtenir le déplacement du robot.

Controle du robot

on utilise une bibliothèque ControlRaspblock qui implémente le modèle cinématique et permet de contrôler le robot.

Plusieurs trajectoires ont été testées et sont présentées dans la suite

Trajectoire circulaire en translation

le centre de gravité du robot décrit un cercle sans effectuer de rotation propre du chassis. Le mouvement du robot est donc une translation sur une trajectoire circulaire.

Trajectoire circulaire en rotation

le centre de gravité du robot décrit un cercle mais en maintenant son axe X tangent au cercle, comme une voiture. Le mouvement du robot est donc une rotation pure.

Trajectoire carrée en translation

le centre de gravité du robot décrit un carré mais sans effectuer de rotation du chassis. Le mouvement du robot est donc une translation sur une trajectoire carrée.

Trajectoire carrée avec des rotations

le centre de gravité du robot décrit un carré mais il maintient son axe X parallèle au coté du carré. Il doit donc effectuer une rotation à la fin de chaque coté. Le mouvement du robot est donc une translation + rotation sur une trajectoire carrée.

Liste des vidéos

trajectoire 1

trajectoire 2

trajectoire 3

trajectoire 4

FIN