Conception, modélisation, réalisation et commande d’un système mécatronique : Robot Diwheel

par Jad THALAL, Guillaume TREMBLIER, Hugo LE GUILLOUS

Bonjour à tous!

Nous sommes trois étudiants en 2ème année du cycle préparatoire d’ingénieur à Polytech Angers. Dans le cadre de notre formation, nous avons été amenés à réaliser un projet tutoré liant plusieurs domaines (mécanique, capteurs, informatique, modélisation d’un système, automatique…).

photo3

La grande source d’inspiration de ce projet se trouve dans le modèle EDWARD (Electric Diwheel With Active Rotation Damping), il s’agit d’un projet de l’université d’Adélaïde consistant en un Diwheel grandeur nature capable d’embarquer un humain.

le modèle EDWARD

Le modèle EDWARD

Ce projet consistait en la modélisation puis la réalisation d’un robot Diwheel télécommandable par wiimote et automatisé afin de s’auto-balancer. En effet, la structure du robot, avec ses deux grandes roues, a la fâcheuse tendance de se pencher d’une manière trop importante lors des accélérations et des décélérations.

  • Modélisation et représentation du système
  • La première partie du projet a consisté à représenter notre robot Diwheel en un système mécatronique composé de deux parties : les roues et le corps du Robot. En effet, le corps du Diwheel peut être représenté comme un pendule de masse m qui oscille d’un certain angle dû à l’accélérations des roues.

    Représentation du système étudié

    Représentation du système étudié

    À la suite de plusieurs calculs de vitesses, d’énergies cinétiques, d’énergies potentielles et en passant par des équations de Lagrange, qui sont détaillés dans le rapport du projet Diwheel, on a réussi à modéliser par représentation d’états notre Diwheel en utilisant un système à temps continu de type CLSS. Notre système est un système d’ordre 4.
    Cependant, comme on pouvait si attendre, le système en boucle ouverte n’est pas stable, ce qui nous contraint à établir un asservissement du système et ainsi avoir un système en boucle fermé.
    Pour ce faire on a utilisé le logiciel Scilab:

    Système en boucle fermé (Xcos Scilab)

    Système en boucle fermé (Xcos Scilab)

  • Récolte des données/capteur
  • Nous avons par la suite réalisé une expérience pour pouvoir récolter les données de l’angle de balancement de notre Diwheel à l’aide de l’application Lego Mindstorms et du capteur gyroscopique. Dans le but de reproduire le balancement de notre robot en simulation.

    Programme sur Lego Mindstorms pour la récolte des données

    Programme sur Lego Mindstorms pour la récolte des données

    Angle de balancement du Diwheel

    Angle de balancement du Diwheel


    De cette expérience on en conclut que l’angle maximal d’inclinaison et d’environ 40 degrés et qu’au bout de 5s le Diwheel se stabilise et arrête d’osciller.

  • Controle du Robot
  • Cette partie consistait à contrôler le Diwheel avec une Wiimote. Nous nous sommes donc penchés sur plusieurs pistes. Dans un premier temps nous avons essayé de connecter la wiimote directement à l’EV3. Pour ceci nous sommes allés dans les paramètres Bluetooth de l’appareil. La Wiimote était bien détectée par l’EV3 mais lors de l’appairage impossible de connecter les deux ensembles car nous revenions en permanence sur le menu d’appairage. Nous avons tenté aussi de faire un relais avec l’ordinateur, c’est-à-dire que les informations de la Wiimote seraient envoyées à l’ordinateur, et l’ordinateur à son tour les enverrait au Diwheel. Nous avons trouvé des exemples de ce type sur internet et nous avons donc installé Visual Studio Code afin d’envoyer des informations en python à l’EV3 mais nous n’avons pas réussi à envoyer les informations.

    Nous avons quand même pu contrôler le Diwheel à l’aide de nos smartphones, grâce à l’application LEGO MINDSTORMS Commander disponible dans le play store.

  • Conclusion
  • Le résultat final est conforme au cahier des charges car nous avons obtenu dans la forme un prototype capable d’effectuer les actions du cahier des charges. Cependant nous avons eu de gros problèmes avec la partie Scilab ainsi que la partie connectivité ce qui ne nous a pas permis de remplir le cahier des charges en entier. Pour des futurs projets nous pourrions améliorer nos méthodes de travail afin de travailler plus efficacement. Mais les clés qui nous ont manqué pour terminer ce projet sont les connaissances. Tant en programmation qu’en automatique, il est certain qu’avec un bagage plus important nous aurions pu venir à bout de ce projet.