Club robotique de Sophia-Antipolis

Accueil > Projets, études > Nos robots > Robots Eurobot > Robot Eurobot 2013 > Le modèle 3D

Le modèle 3D

mercredi 27 mars 2013, par Eric P.

Faute de table (et de local pour l’héberger), nous faisons tout en virtuel (pour le moment). D’ailleurs, si on pouvait aller virtuellement à La Ferté ce ne serait pas si mal, car on économiserait pas mal en péages et carburant. Et ce serait donc mieux pour la planète.

Le modèle complet du terrain a été fait sous Sketchup de même que celui du robot. Des scripts Ruby ont également été écrits pour manipuler les bras facilement et donc définir les enchainements des mouvements.

Ca donne ce qui suit en images.

Vue d’ensemble du terrain

Petit tour du propriétaire

Gros plan de face
Gros plan de dos

J’ai emprunté le modèle de la RasPi, mais le reste (AX12, frames d’assemblage, mBed,...) est de mon crû.

Au-delà de SketchUp

Des assemblages précis

SU ne fournissant pas d’outil de contraintes comme les logiciels de CAO, il est assez difficile à la base d’assembler précisément des éléments mécaniques en respectant scrupuleusement les trous de boulonnage et autres fixations.

J’ai donc imaginé une technique pour pallier cela, qui permet d’aboutir très facilement au même résultat. Je ne suis certainement pas le seul à avoir eu cette idée, mais sur ce coup Google n’a pas été mon ami.

Cela consiste à ajouter au modèle un réticule en forme de croix à chaque emplacement de trou et autre point d’assemblage. Grâce à ces aides au dessin on peut ensuite très facilement positionner des éléments séparés en correspondance parfaite grâce aux différentes formes de magnétisme et de contraintes de déplacement disponibles nativement sous SU.

On peut d’ailleurs les deviner sur certaines des images qui suivent, la plus visible étant la croix sous le robot, au milieu de l’axe des roues, destinée à le positionner facilement sur le terrain. Pour les autres, si on zoome par exemple sur les palonniers des servos, on peut voir que les trous ne sont pas nets. En fait ils le sont, mais chaque trou de la frame a son réticule, de même que les trous correspondants sur le palonnier. Ca fait donc quelques petits gribouillis au milieu.

Comme ce n’est pas très beau sur le plan visuel, surtout si on zoome sur le modèle, il suffit de prendre la précaution de les placer tous sur un layer dédié (nommé "aides de positionnement" par exemple), qu’on masque lorsqu’on veut produire un rendu esthétique.

Pas plus compliqué que ça, et ça m’a permis de positionner parfaitement les AX12 par rapport aux différentes frames, les frames entre elles, et idem pour les points de rotation des palonniers de servos.

Modèles de structure complexes

L’autre astuce pour modéliser une structure articulée et surtout pouvoir la manipuler interactivement est de créer des composants hiérarchisés avec les éléments composant un bras, en plaçant dans un même niveau les éléments liés entre eux de manière rigide (typiquement les servos est les frames fixées sur son corps).

Pour que ce soit plus clair, voici une copie de l’écran montrant la structure hiérarchique du robot, avec une partie du bras sélectionnée :

Structure du modèle du bras

Chaque sous-arbre y est baptisé "joint-xxx" par référence au fait qu’il est contrôlé par l’articulation xx, et a son système d’axes défini au niveau de l’axe de rotation du palonnier du servo qui est à sa racine. Simuler une rotation du servo va donc se borner à faire tourner le composant autour de son repère, ce qui se fait en manipulant assez simplement par script les matrices de transformation attachées à chaque entité du modèle SketchUp.

Grâce à la structure arborescente des composants ainsi définis, tous les éléments "en aval" de l’actionneur vont suivre le mouvement, sans devoir calculer individuellement toutes leurs matrices de transformation (faisable, mais pénible).

L’IHM du script Ruby de manipulation du bras

L’IHM de manipulation du bras

La gestion des IHM sous SU est une vraie catastrophe. Pas mal de monde s’accorde à penser que ça a été laissé pour compte en plein milieu, car très sincèrement leur truc c’est ni fait ni à faire :/ Et en plus ça marche comme ça veut, à grands coups de workarounds.

Opération cadeaux

Ouverture des cadeaux

A noter que les cadeaux rouges sont en position légèrement après le point de bascule pour établir la configuration adéquate du bras sur cette action. Ben non, je n’ai pas ajouté la gestion de la dynamique, car Sketchy Physics ne semble pas fonctionner correctement sous SU8. En tout cas il m’a fait perdre pas mal de temps pour rien, alors tant pis pour sa gu**le.

Et un petit zoom pour notre sponsor Génération Robots qui nous a offert 6 AX12 et le kit de frames Bioloid Comprehensive :

Coup de pub pour les AX12

Vous remarquerez le souci du détail, avec la texture de l’étiquette faite à partir d’une photo :)

Autre détail non visible : le bus Dynamixel est interfacé sur la RasPi via l’interface USB2AX de Xevel, que j’ai présentée dans cet article.

Soufflage des bougies

Bougies du haut
Bougies du bas

Débarrassage de la table

Les bras en configuration "je ramasse les verres sans élégance" :

Collecte des verres

Pour les piles on verra cela en 2014.

Conclusion

On vous avait bien dit que nous n’avions pas l’intention de nous prendre la teuté ;)

Un message, un commentaire ?

modération a priori

Attention, votre message n’apparaîtra qu’après avoir été relu et approuvé.

Qui êtes-vous ?

Pour afficher votre trombine avec votre message, enregistrez-la d’abord sur gravatar.com (gratuit et indolore) et n’oubliez pas d’indiquer votre adresse e-mail ici.

Ajoutez votre commentaire ici

Ce champ accepte les raccourcis SPIP {{gras}} {italique} -*liste [texte->url] <quote> <code> et le code HTML <q> <del> <ins>. Pour créer des paragraphes, laissez simplement des lignes vides.