Simulation cinématique par macros Python dans FreeCAD

Dans un article précédent, j’ai souligné l’intérêt, en phase de conception 3D, d’utiliser la rotation dynamique de FreeCAD pour obtenir une visualisation globale d’un modèle. Cette fonctionnalité, bien que pertinente pour apprécier l’architecture générale d’un objet, demeure toutefois insuffisante dès lors qu’il s’agit d’observer des déplacements relatifs entre plusieurs entités modélisées.

Il ne s’agit pas ici de simuler le fonctionnement d’un mécanisme articulé complexe — tel qu’un ensemble piston-bielle-vilebrequin ou un système de soupapes — pour lesquels des extensions spécialisées existent. L’enjeu porte plutôt sur l’animation coordonnée d’objets mécaniquement indépendants, mais dont les mouvements respectifs doivent être synchronisés ou, à tout le moins, ordonnés. À cet égard, les macros développées sous FreeCAD constituent un outil méthodologique particulièrement efficace.

Dans le cadre du projet BATLab112, la mise en mouvement virtuelle des quatre systèmes industriels modélisés répond à trois objectifs. Premièrement, la simulation permet de vérifier la compatibilité spatiale de leurs trajectoires dans l’environnement confiné de la Batcave. Deuxièmement, elle facilite la synchronisation de leurs déplacements afin d’optimiser le processus global de prise en charge de la Batmobile. Troisièmement, elle offre un support de médiation technique destiné à présenter de manière claire et dynamique le fonctionnement général du diorama pédagogique.

La vidéo illustre ce dispositif. Réalisée au moyen d’une macro Python sous FreeCAD, elle met en scène le parcours complet de la Batmobile à travers l’atelier robotisé, en contrôlant précisément le mouvement des différents systèmes industriels.

Enfin, un dernier élément mérite d’être souligné : l’usage de la fonction Enregistrer une macro. Celle-ci constitue un atout majeur pour la génération rapide de segments de code correspondant aux actions effectuées dans l’interface. Ces fragments peuvent ensuite être intégrés et structurés au sein d’un programme plus général, facilitant ainsi le prototypage et l’industrialisation des animations cinématiques.

Avancement du diorama : articles dédiés à l’utilisation de FreeCAD dans la conception 3D

Arduino et mise en mouvement d’un diorama : genèse technique du projet BATLab112

L’origine de ma réflexion concernant l’usage d’un diorama comme support pédagogique s’inscrit initialement dans une démarche centrée sur la commande de bras robotiques. Cette orientation répondait pleinement à mon objectif de renouer avec des disciplines telles que l’électronique, l’automatisme et la robotique. Elle s’articulait également avec l’intérêt croissant que je portais à la technologie Arduino. Ayant étudié, au cours de mon cursus, la programmation de microcontrôleurs et d’automates programmables, j’ai été particulièrement impressionné par la simplicité d’utilisation et le potentiel offert par les cartes Arduino.

Cette réflexion serait probablement demeurée au stade théorique — limitée à quelques esquisses conceptuelles et fichiers de modélisation 3D conçus sous FreeCAD — sans un événement déterminant pour la suite du projet : la réception, à titre de don, d’une carte Arduino Due. Ce geste a constitué un véritable catalyseur, me conduisant à passer de la conceptualisation à l’expérimentation concrète. J’ai ainsi entrepris de me familiariser avec l’environnement matériel et logiciel propre à cette carte, prélude au développement d’une première maquette de bras robotique pilotée par l’Arduino Due.

Malgré les imperfections inhérentes à cette première construction, cette maquette a constitué une étape décisive en rendant le projet tangible et dynamique. Elle a renforcé ma motivation à poursuivre son développement. Je suis pleinement conscient que cette avancée doit beaucoup à Rémi, membre de ma famille et généreux donateur de la carte, dont le geste a joué un rôle déterminant dans l’évolution du projet. 

Quelques années plus tard, dans le cadre du développement du projet BATLab112, j’ai été amené à mobiliser d’autres modèles de cartes Arduino, parmi lesquels les cartes Uno et Mega, ainsi qu’un ensemble de modules complémentaires tels que des capteurs divers et des écrans tactiles. Le modèle de console de commande conçu pour piloter les différents systèmes du diorama à l’échelle 1/12 intègre notamment deux cartes Arduino Mega. Celles-ci assurent à la fois la gestion de l’affichage sur deux écrans tactiles et l’interprétation des commandes émises par l’utilisateur.

Intégration – Conception préliminaire

Résumé :

Cet article présente l’intégration, la dernière étape de la conception préliminaire de la plateforme rotative du diorama pédagogique de la Batcave, à l’échelle 1/12, du projet BATLab112.

Actualisé :


Introduction

La simulation de l’intégration des équipements industriels, consiste à rassembler tous les équipements industriels conçus séparément, dans une modélisation globale de l’atelier de la Batcave du projet BATLab112. Le premier objectif est de contrôler la cohérence du dimensionnement respectif de ces équipements, ainsi que la conformité de leurs interactions fonctionnelles. Le deuxième objectif est de définir la structure de l’architecture générale de l’atelier.

Pour plus d’informations :

Vue générale

Les quatre équipements industriels sont intégrés ici dans leurs dernières versions issues de la conception préliminaire. La structure générale du diorama supportant ces équipements est symbolisée par les deux plans horizontaux. Cette mise en situation permet de contrôler si les dimensions du diorama prévues dans le cahier des charges sont respectées.

Vues de détails

Situation n°1
Situation n°2

Cette simulation de l’intégration des équipements permet de contrôler l’implantation verticale des équipements.

  • La situation n°1 représente le pont roulant positionné au dessus de la plateforme de la Batmobile en position basse. Les bras robotiques en position initiale, passent au dessus de la Batmobile.
  • La situation n°2 représente la plateforme de la Batmobile en position haute. Les dimensions du pont élévateur assure le bon positionnement verticale de la plateforme par rapport au sol du niveau supérieur. Le dégagement du pont roulant permet l’élévation de la plateforme.

Simulation fonctionnelle 3D

L’intérêt de la simulation fonctionnelle en 3D, autrement dit visualiser à ce stade de la conception du projet, la mise en mouvement coordonné des équipements industriels composants l’atelier robotique de la Batcave du projet BATLab112, est double. Si la conception 3D permet une mise en situation statique des objets, la simulation 3D permet une appréhension plus fine des comportements dynamiques de ces objets. Cette approche a permis notamment d’expérimenter différents types d’organisation de l’atelier sans avoir besoin de réaliser de prototypes.

Modélisation 3D

FreeCAD

La modélisation de l’atelier de la Batmobile équipant la Batcave du projet BATLab112 a été réalisé avec le logiciel FreeCad V0.19.

Python

La simulation 3D des systèmes équipant la Batcave du projet BATLab112 a été réalisé par macros en langage Python sous FreeCad V0.19

Conclusion

La simulation fonctionnelle 3D de la version présentée de la configuration de l’atelier est satisfaisante, notamment la cinématique de la Batmobile et de l’ensemble ; pont roulant et bras robotiques. La conception préliminaire de chacun des quatre équipements est donc validée.

Voir Aussi

Articles – Conception préliminaire

Atelier de la Batcave – Cahier des charges – Ep2

Résumé :

Cet article présente l’analyse détaillée du cahier des charges de l’atelier du diorama pédagogique de la Batcave, à l’échelle 1/12, du projet BATLab112.

Actualisé :


Introduction

La vidéo du cahier des charge de l’atelier de la Batcave est présenté un article dédiée. Cet article apporte des compléments d’informations dans la traduction de ce cahier des charges.

Analyse du cahier des charges

Architecture générale

L’architecture verticale est imposée par un profil de grotte profonde et peu étalée horizontalement. Pour de pas occuper les niveaux supérieurs réservés aux accès quotidiens des personnes, l’implantation de l’atelier est donc située en profondeur, sous le niveau de l’entrée de la grotte.

Pour plus d’informations sur le profil de la grotte abritant la Batcave du diorama pédagogique du projet BATLab112, voir l’article suivant :

Dimensions du diorama pédagogique à l’échelle 1/12

Pour des raisons d’encombrement et de transportabilité, comme le montre la vidéo, les dimensions hors tout souhaitées de l’atelier du diorama de la Batcave correspondent à un code de 1 mètre de côté. Ces dimensions induisent une contrainte forte sur le diamètre maximum de la plateforme de transfert verticale de la Batmobile.

Cette contrainte se traduit par une restriction sur les modèles de Batmobiles acceptables par le projet BATLab112. Dans cette vidéo, le modèle utilisé est celui du film de 2016 de Zack Snyder – Batman vs Superman, Dawn of justice.

Plateforme rotative

Pour que la Batmobile puisse faire demi-tour sans manoeuvre et en temps masqué, la plateforme de stationnement doit assurer une fonction de rotation.

Translation verticale de la Batmobile

Si l’atelier est situé à un niveau inférieur de celui de l’entrée de la Batcave, un système doit donc assurer le transfert vertical de la Batmobile entre ces niveaux. Quelque soit la nature de ce système il apparaît évident qu’il doit être équipé d’une plateforme d’accueil de la Batmobile. Pour des raisons d’encombrement et d’optimisation de mouvement, cette plateforme doit être la même que celle de stationnement.

Bras robotiques

Deux types de robots possibles

La vidéo du cahier des charges présente deux configurations possibles pour l’utilisation de bras robotiques dans l’atelier de la Batcave. Soit des bras robotiques posés au sol, comme on le retrouve généralement sur les chaines de production automatiques, soit des bras robotiques suspendus de type « pick and place ».

Des bras robotiques posés au sol

La première solution, à base de robots posés, est d’une part, plus conforme avec le type de robots d’un environnement industriel automobile, et d’autre part, les performances de ces robots sont en adéquation avec le besoin de soulever des charges lourdes. Cependant, comme le montre la vidéo, la mise en oeuvre d’une telle solution, induit un nombre de contraintes vis-à-vis des autres systèmes automatiques, trop important.

Des bras robotiques suspendus

La deuxième solution à base de robots suspendus, présente moins de contraintes vis-à-vis des autres systèmes automatiques. C’est cette solution qui est retenue pour équiper l’atelier de la Batmobile.

Voir aussi

Articles : Conception préliminaire

Bras robotique – Prototype 1

Cet article présente la réalisation du prototype des bras robotiques qui équipent l’atelier de la Batcave du projet BATLab112. L’objectif de ce prototype est de permettre la validation de la conception du design général ainsi que le choix de fabrication par impression 3D.


Modélisation 3D

Logiciel de CAO 3D

La modélisation 3D des bras robotiques de la Batcave du projet BATLab112 a été réalisé avec le logiciel FreeCad V0.17.

Des bras robotiques à 4 degrés de liberté

Les bras robotiques disposent de 4 degrés de liberté, autrement dit 4 articulations. Un moteur installé dans chaque articulation en assure sa rotation.


Fabrication

Impression 3D des pièces mécaniques

Les impressions 3D des premières pièces de ce prototype sont réalisées par Paul membre de la communauté de soutien du projet BATLab112, avec une imprimante ANET A8.

Motorisation des articulations

Le choix des moteurs équipant les articulations est déterminant en terme de performance pour les bras robotiques en termes de vitesse et de fluidité des mouvements. Les moteurs sélectionnés pour la réalisation de cette première version sont des servomoteurs.

Servomoteurs

Qualification de ce choix

Avantages

Alimentation électrique en courant continu
- Intégration technique facilité
- Compatibilité avec l'électronique de commande (Arduino notamment)
Asservissement en position angulaire
- Commande simplifiée
- Conforme avec la logique mécanique des articulations
Maintien de la position
- Commande simplifiée
Dimensions réduites
- Intégration mécanique facillité
Approvisionnement et coût

Inconvénients

Technologie
Cette technologie n'est pas conforme avec celle des robots industriels. Cet aspect sera pris en compte dans une futur version
Couple
Capacité incertaine à assurer le mouvement

Voir le calcul de masses en fonction du couple

Tests de fonctionnement

Electronique de commande

Ce test de fonctionnement utilise une électronique de commande décrite dans l’article suivant :

Commande du bras robotique .V1

Présentation de la réalisation de la première version de l’électronique de commande des bras robotisés équipant l’atelier de la Batcave du projet BATLab112.

Pour valider cette électronique de commande, une maquette du bras robotique a été réalisée en emballage alimentaire. Le résultat obtenu est plutôt satisfaisant, compte tenu d’un niveau passable de qualité de fabrication, comme le montre la vidéo suivante.

Alimentation électrique

Le circuit d’alimentation électrique utilisé est le même que celui pour valider la commande électronique. Ce circuit est constitué des composants suivants :

Un convertisseur 230VAC / 12VDC – 180 W pour l’alimentation électrique des 2 convertisseurs suivants.

Source : www.amazon.fr

Un convertisseur 12V DC / 5V DC – 50W pour l’alimentation électrique de l’électronique de commande et de la carte Arduino Due.

Source : www.amazon.fr

Un convertisseur 12VDC / 6VDC – 60W pour l’alimentation électrique des 4 servomoteurs.

Source : www.amazon.fr

Test fonctionnel mécanique

Configuration mécanique

Le montage utilisé comprend la tourelle et l’épaule en impression 3D associé uniquement au bras, réalisé en emballage alimentaire.

Résultats

Les résultats des premiers tests sont plutôt décevants. Le bras entre en oscillation très rapidement.
Plusieurs pistes sont à explorer pour résoudre ce problème :
– Le découplage de l’alimentation électrique des servomoteurs.
– La modification de la fréquence des signaux PWM émis par la carte Arduino.
– Le changement du servomoteur de l’épaule.

A suivre !…

Commande du bras robotique .V1

Cet article présente la réalisation de la version 1 de l’électronique de commande des bras robotiques équipant le diorama de la Batcave du projet BATLab112.

Cahier des charges

  1. Objectif général
  2. Spécifications fonctionnelles
  3. Spécifications techniques

Objectif général

L’objectif opérationnel est de réaliser une maquette électronique assurant la commande en mode manuel et en mode automatique des bras robotisés équipant le diorama de la Batcave du projet BATLab112. Cette maquette doit permettre dans un premier temps, une commande des bras robotiques suivant trois modes de fonctionnement : Mode manuel, Mode automatique, Mode apprentissage.

L’objectif pédagogique consiste à se familiariser avec les principes de commande des servomoteurs.

Spécifications fonctionnelles

La sélection des différents mode de fonctionnement des bras robotiques par l’opérateur doit s’effectuer par des boutons poussoirs. Des voyants assurent la visualisation des états de fonctionnement.

Mode manuel

En mode manuel, les 2 bras robotiques sont commandés indépendamment. La commande des articulations est réalisée par l’intermédiaire de potentiomètres rotatifs. Cette commande doit s’effectuer en temps réel. La rotation de l’axe d’un potentiomètre doit entrainer la rotation de l’articulation correspondante.

Mode automatique

En mode automatique, les 2 bras robotisés sont commandés, indépendamment ou simultanément, suivant des consignes différentes. La commande des articulations est gérée par une unité de contrôle dans laquelle sont enregistrées l’ensemble des consignes nécessaires.

Mode apprentissage

En mode apprentissage, les 2 bras robotisés sont commandés indépendamment ou simultanément. L’enchainement des positions à apprendre pour chaque bras robotisé est défini par l’utilisation des commandes du mode manuel. La restitution de l’enchainement des positions enregistrées pour chaque bras est réalisée en mode automatique.

Spécifications techniques

Les actionneurs à commander

Chaque articulation des bras robotiques est équipée d’un servomoteur. Chaque bras est ainsi équipés de 4 servomoteurs.

L’unité de contrôle

L’unité de contrôle est une Carte Arduino Due.


Listes du matériel

Liste du matériel support

DésignationQtéRéférenceSource
Platine de prototype1Breadboard 830 NeufTechwww.amazon.fr
Alimentation 5VDC2USB
Alimentation 6VDC1Servomoteurs

Remarque : Les composants des alimentations électriques seront spécifiquement traités dans un prochain article.

Liste des composants utilisés

DésignationQtéRéférenceSource
Unité de contrôle1Carte Arduino Duestore.arduino.cc
Bouton rotatif8Potentiomètrewww.amazon.fr
Bouton poussoir6Bouton poussoir tactilewww.amazon.fr
Voyant rouge2Led 3mm rougewww.amazon.fr
Voyant bleu3Led 3mm bleuwww.amazon.fr
Voyant vert5Led 3mm vertewww.amazon.fr
*9Résistance

Schéma de câblage

Dans le cadre du projet BATLab112, les schéma électriques ou électroniques sont réalisés avec le logiciel KICAD. Vous pouvez télécharger le fichier du schéma de câblage au format PDF par le lien qui suit.


Code Arduino

Commentaires concernant ce code

Le code présenté ici est une première approche pour mettre en oeuvre les fonctions nécessaires aux commandes des servomoteurs et valider le principe général de commande de la maquette. Ce code n’est donc pas optimisé.


Validation technique et fonctionnelle

La maquette du bras robotisé

Cette maquette est réalisée pour les besoins de la validation technique et fonctionnelle de l’électronique de commande associée au code développé pour la carte Arduino Due qui pilote l’ensemble.

Cette maquette est réalisée avec des emballages de briques de jus de fruit. Cette matière légère, est suffisamment résistante pour supporter les assemblages nécessaires (ruban adhésif + boulon). Elle présente aussi une face dont l’état de surface est semblable à celui de l’aluminium, ce qui donne un rendu plutôt satisfaisant.

Cette maquette ne respecte pas fidèlement le design conçu en modélisation 3D et présente des défauts de fabrication qui induisent des perturbations dans les mouvements telles que des vibrations.

La vidéo du mode automatique


Conclusions

Electronique de commande

Ces tests permettent de valider le montage de l’électronique de commande des servomoteurs.

Trois points d’améliorations sont identifiés pour être intégrés dans les futures versions.

  • Point n°1 : Commandes manuelles
    • Constat : Les actions sur les potentiomètres de commande des servomoteurs impliquent l’usage d’un tournevis.
    • Evolution : Equiper les potentiomètres de boutons
  • Points n°2 : Enregistrement des positions en mode automatique
    • Constat : Les positions prédéfinies du mode automatique nécessitent la programmation de la Carte Arduino Due.
    • Evolution : Disposer d’un interface plus élaboré que des boutons poussoirs pour enregistrer ces positions sans avoir recours à la re-programmation systématique de la carte (exemples : clavier + écran ou écran tactile).
  • Points n°3 : Enregistrement des positions en mode apprentissage
    • Constat : Le nombre de positions disponible dans le mode apprentissage est limité à 5, ce qui est insuffisant pour envisager des enchaînement de trajectoires complexes.
    • Evolution : Disposer d’un interface plus élaboré que des boutons poussoirs et des Leds pour enregistrer ces positions (exemples : clavier + écran ou écran tactile).

Arduino Due + Code

Ces tests permettent de valider l’utilisation de la Carte Arduino Due et sa capacité à supporter le code nécessaire à la commande des servomoteurs.

Un point d’amélioration est identifié pour être intégré dans les futures versions.

  • Point n°4 : Codage de trajectoire plus fluide
    • Constat : Dans la démonstration réalisée en mode automatique les servomoteurs sont pilotés les uns après les autres pour atteindre chacune des positions. Cette méthode induit des mouvements lents et décomposés.
    • Evolution : Développer un pilotage simultané des servomoteurs pour obtenir des mouvement plus fluides et rapides

Servomoteurs

Ces tests permettent de valider l’utilisation de 3/4 servomoteurs comme actionneurs des articulations des bras robotisés. Une effet, le servomoteur utilisé pour l’articulation de l’épaule semble manqué par moment de couple. Cependant, compte tenu de la qualité de fabrication de la maquette qui n’est pas optimum il est difficile de conclure.

Bras robotiques – Conception préliminaire

Résumé :

Cet article présente la conception préliminaire des bras robotiques du diorama pédagogique de la Batcave, à l’échelle 1/12, du projet BATLab112.

Actualisé :


Introduction

Les bras robotiques du projet BATLab112 sont entièrement conçus pour répondre aux exigences du projet. Même si il existe de nombreux modèles commerciaux de bras robotiques dits d’apprentissage, la taille de ces modèles n’est pas forcément compatible avec l’échelle de réalisation au 1:12 du projet et leur esthétique n’est jamais conforme à celle d’un robot industriel.

Présentation générale

Les bras robotiques disposent de 4 degrés de liberté, autrement dit 4 articulations. Un moteur installé dans chaque articulation en assure la rotation.

Modélisation 3D

Evolution du design des versions des bras robotiques

Le design des bras robotiques est contraint par l’espace disponible dans l’atelier automatisé de la Batcave, notamment la hauteur sous plafond. A cette contrainte s’ajoute la contrainte de pouvoir accéder à tous les points de la surface de la Batmobile.

FreeCAD

La modélisation de la plateforme rotative de la Batmobile équipant la Batcave du projet BATLab112 a été réalisé avec le logiciel FreeCad V0.19.

Vues de détails

Base

La base est la pièce qui assure la fixation du bras robotique sur le pont roulant bipoutre. Ses dimensions sont conditionnées par l’implantation du servomoteur qui assure la rotation 1/2 de l’épaule.

Epaule

La pièce constituant l’épaule du bras robotique se fixe sur la base. Ses dimensions sont conditionnées par l’implantation du servomoteur qui assure la rotation 2/2 de l’épaule.

Bras et Avant-bras

Coude

La pièce qui assure la rotation 1/1 du coude intègre le Troisième servomoteur.

Poignet

La pièce constituant le poignet intègre un éventuel cinquième servomoteur dont la présence dépendra du design final du préhenseur.

Préhenseur

La conception du préhenseur reste à faire. L’objectif est de concevoir ( ou d’utiliser un concept existant ) un préhenseur capable de de s’équiper de différents outils spécialisés.

Calcul de masse

Le calcul de la masse maximale de chacune des composantes mécaniques du bras ; épaule, bras, avant-bras, permet de sélectionner le matériau adéquat pour la fabrication de ces pièces et de les dimensionner plus précisément ; épaisseur, densité …

Configurations de calcul

Configuration n°1 :

Cette première configuration présente des conditions favorables de ce calcul : Le bras à l’horizontal et l’avant bras vertical. Le poids équivalent aux poids de ces deux pièces (P) s’exerce à une distance restreinte du point de rotation. Par conséquent, le couple exercé par le moteur de l’épaule est plus faible que dans la deuxième configuration.

Configuration n°2 :

Cette configuration présente des conditions défavorables de ce calcul : le bras et l’avant bras sont tendus à l’horizontale. Le poids équivalent aux poids des deux pièces, s’exerce à une distance plus grande que dans la première configuration. Par conséquent, le couple exercé par le moteur de l’épaule est plus important.

Remarque : Même si la deuxième configuration reste improbable compte tenu de l’implantation des bras robotiques dans le diorama, elle permet une estimation des valeurs limites.

Données et approximations pour ce calcul

Le bras et l’avant-bras du bras robotique ont la même longueur (L = 15 cm).
Le bras et l’avant-bras du bras robotique ont la même masse (m) répartie de manière homogène.
La masse du poignet ( et du préhenseur ) sont négligées.

Caractéristiques techniques d’un servomoteur

Le site affiche un couple sous 4,8V de 1kg/cm (voir extrait). L’unité utilisée n’est pas conforme avec celle d’un couple qui devrait être 1kg.cm. Nous utiliserons cette valeur pour la suite des calculs.

Calculs

Configurations 1 :

C = L/2 x m + L x m
C = (L/2 + L) x m
C = 3/2L x m
m = C / 3/2L
m = 1 / (3/2×15)
m = 44g

Configuration 2 :

C = L/2 x m + 3/2L x m
C = (L/2 + 3/2L) x m
C = 2L x m
m = C / 2L
m = 1 / (2×15)
m = 33g

Voir aussi

Articles – Bras robotique

Articles – Conception préliminaire