Cinématique de bras : de la PWM servo à la cinématique inverse
Vous savez amener un bras à servos au point choisi — en comprenant cinématique directe et inverse, espace de travail atteignable et singularités avant de toucher au matériel.
La cinématique des bras robots est la géométrie qui relie deux choses qu’un manipulateur doit concilier : les angles articulaires qu’il peut réellement commander, et la position de l’outil voulue dans le monde. Aller dans un sens — des angles à la position — est la cinématique directe, et c’est facile. Aller dans l’autre sens — de la position aux angles — est la cinématique inverse, et c’est là que vivent les problèmes intéressants : deux solutions, des bords inatteignables, et des poses où le bras perd brièvement le contrôle d’une direction.
Ce parcours construit cette compréhension depuis la base. Vous commencez par le matériel — faire bouger un servomoteur vers un angle commandé via un pilote PCA9685, étalonnage compris. Puis vous apprenez la géométrie : comment les angles d’un bras à deux segments placent son outil, et comment inverser cela pour atteindre une cible. Enfin vous l’explorez en direct dans le simulateur, en tirant une cible et en regardant le solveur choisir des angles articulaires, heurter le bord de l’espace de travail, et signaler l’inatteignable.
Suivez les nœuds dans l’ordre — chacun déverrouille le suivant une fois accompli, et votre progression est sauvegardée sur cet appareil. Quand vous êtes prêt à construire le vrai, ce parcours mène directement au projet de bras robot 4 axes.
Avant de commencer
Il faut de la trigonométrie — spécifiquement sin, cos et atan2 — et assez de programmation pour
écrire une fonction qui renvoie deux valeurs. Une expérience des servomoteurs aide mais le parcours la couvre.
Rien ici n’exige le bras physique ; toute la géométrie s’apprend dans le simulateur.
Ce que vous saurez faire
- Calculer où se trouve l’outil d’un bras à deux segments d’après ses angles articulaires, et inverser cela pour trouver les angles qui atteignent un point donné.
- Choisir délibérément entre les deux solutions — coude haut et coude bas — au lieu de prendre celle que les maths ont renvoyée.
- Prédire la frontière de l’espace de travail atteignable et détecter une cible hors de lui avant que le bras tente de bouger.
- Reconnaître une singularité à l’approche de l’extension complète, où un petit changement de position d’outil exige un énorme changement d’angle articulaire.
- Mesurer le jeu de vos propres articulations, et dire combien de l’erreur du préhenseur vient du mécanisme plutôt que des maths.
Où l’on se heurte
Utiliser atan au lieu d’atan2. atan simple ne sait pas dans quel quadrant se trouve la cible,
donc le bras atteint correctement devant et en miroir derrière. atan2 prend les
deux composantes séparément et traite correctement les quatre quadrants.
Une erreur de domaine sur acos. Quand la cible est plus loin que les segments ne peuvent atteindre, la
règle du cosinus produit un argument hors de −1 à 1 et acos renvoie NaN. Ce NaN coule dans la
commande du servomoteur comme un angle aberrant. Vérifiez l’atteignabilité avant la trigonométrie, pas après.
Confondre angle articulaire et angle de servomoteur. Le zéro d’un servomoteur est là où son palonnier a été monté, et il peut tourner à l’inverse de vos maths. Chaque articulation exige un décalage d’étalonnage et parfois une inversion de signe. Le sauter produit un bras qui bouge en douceur et tombe loin de la cible.
Ignorer la gravité en extension. La géométrie suppose que le bras va où on lui dit. Un servomoteur modélisme tenant un segment complètement déployé est à son pire avantage mécanique, et la position réelle s’affaisse sous la position commandée — le plus visiblement au bord lointain de l’espace de travail.
Régler une erreur mécanique. Si le bras atteint le même point différemment selon le côté d’où il est venu, aucun gain ne le corrigera : c’est du jeu de réducteur, multiplié par toute la longueur du bras. Quatre degrés à une épaule entraînant un segment de 150 mm font plus de 10 mm au préhenseur.
Traverser une singularité. Près de l’extension complète, la solution inverse devient mal conditionnée, et une trajectoire d’outil lisse devient un mouvement articulaire violent. Gardez les trajectoires dans une marge du bord plutôt que contre lui.
Ce qu’il vous faut
| Quoi | Pourquoi ce parcours en a besoin | Notes |
|---|---|---|
sin, cos et atan2 |
Toute la boîte à outils mathématique | Si vous savez à quoi sert atan2, vous êtes prêt |
| Une fonction qui renvoie deux valeurs | La cinématique inverse renvoie une paire d’angles, et souvent deux paires | Un tuple, une structure, un paramètre de sortie — n’importe lequel |
| Un rapporteur et une règle | Comparer où le bras est allé à où on lui a dit d’aller | Le seul test honnête d’une implémentation cinématique |
| Un bras et un PCA9685 (facultatif) | La moitié matérielle | La géométrie s’apprend entièrement dans le simulateur |
Pourquoi le parcours suit cet ordre
Le pilotage des servomoteurs vient avant la géométrie, sans que ce soit évident. La raison est l’étalonnage. Dès que vous pouvez commander une articulation et voir où elle tombe vraiment, vous avez un moyen de tester chaque résultat ultérieur contre la réalité. Apprenez la géométrie d’abord et vous n’avez aucun moyen de distinguer un solveur faux d’un palonnier mal monté — deux fautes très différentes d’aspect identique à distance.
Les types de bras viennent ensuite car ils expliquent ce qu’est un « segment ». Bras cartésiens, SCARA et delta résolvent le même problème avec des géométries complètement différentes, et en voir trois montre clairement que la cinématique traite de l’agencement des articulations plutôt que d’un bras particulier. Cela dit aussi pourquoi la cinématique inverse d’un SCARA est presque triviale et celle d’un delta non.
La cinématique inverse vient troisième, quand les deux prérequis sont en place. C’est le cœur du parcours, et c’est le seul nœud où vous passerez vraiment du temps sur les maths.
Le simulateur vient quatrième car il rend visible l’invisible. Atteignabilité, les deux branches de coude et singularités sont des choses démontrables sur papier que vous ne comprendrez vraiment qu’après avoir tiré une cible au bord de l’espace de travail et observé le changement de comportement du solveur. Tirer est aussi la façon la plus rapide de trouver la forme d’un espace de travail, qui est un anneau plutôt qu’un disque dès que les segments sont inégaux.
Le jeu clôt délibérément le parcours. C’est le point où vous cessez de pouvoir améliorer la précision du bras avec de meilleures maths. Chaque nœud précédent traite de calculer le bon angle ; celui-ci traite des millimètres entre le bon angle et la bonne position.
Étapes : comment savoir qu’une étape est acquise
| Étape | Le test | Ce à quoi ressemble la réussite |
|---|---|---|
| Pilotage des servomoteurs | Commandez 0°, 90° et 180° sur chaque articulation | Le palonnier tombe où commandé, et vous avez noté le décalage et le signe de chaque articulation |
| Étalonnage PWM | Trouvez les largeurs d’impulsion des vraies butées de chaque servomoteur | Vos comptes min et max sont par servomoteur, pas le défaut de bibliothèque, et rien ne bourdonne aux limites |
| Cinématique directe | Fixez des angles connus, calculez la position de l’outil, mesurez-la | Calculé et mesuré concordent à quelques millimètres près |
| Aller-retour | Réinjectez une position calculée dans la cinématique inverse | Les angles obtenus correspondent à ceux injectés |
| Gestion des quadrants | Demandez des cibles dans les quatre quadrants | Les quatre fonctionnent — si deux sont en miroir, vous utilisez atan |
| Atteignabilité | Demandez une cible bien au-delà de la portée du bras | Vous obtenez un « inatteignable » propre, pas un NaN ni une embardée |
| Forme de l’espace de travail | Cartographiez le bord atteignable dans le simulateur | Vous pouvez le décrire, et expliquer pourquoi des segments inégaux donnent un anneau avec un trou |
| Branches de coude | Atteignez le même point des deux façons | Les deux fonctionnent, vous en avez choisi une délibérément, et vous pouvez dire pourquoi |
| Singularité | Faites suivre à l’outil une trajectoire droite en extension presque complète | Vous avez vu le pic de vitesse articulaire, et vous planifiez désormais une marge |
| Jeu | Approchez le même point depuis chaque sens, mesurez | Vous avez un nombre en millimètres au préhenseur — et il n’est pas nul |
Où ce parcours s’arrête
Ce parcours couvre la solution planaire à deux segments résolue en forme fermée — la géométrie derrière l’épaule et le coude de presque chaque bras amateur. C’est la bonne chose à apprendre d’abord car vous pouvez la dériver, la vérifier, et voir exactement pourquoi chaque échec arrive.
Il s’arrête avant plusieurs choses rencontrées ensuite. La cinématique générale à n axes utilise les paramètres de Denavit–Hartenberg et les matrices de transformation homogènes pour décrire systématiquement toute chaîne d’articulations, plutôt que de résoudre la géométrie de chaque bras à la main. La cinématique inverse numérique — itération basée sur le jacobien — est ce qu’on utilise quand aucune solution en forme fermée n’existe, situation normale au-delà de quatre ou cinq articulations ; elle se dégrade aussi gracieusement près des singularités où une solution en forme fermée casse simplement.
La résolution de redondance est la question de quoi faire quand un bras a plus d’articulations que la tâche n’en contraint et donc une infinité de solutions valides — un problème vraiment intéressant auquel ce parcours n’a jamais à faire face, car un bras à deux segments en a exactement deux.
Et la dynamique est toute l’autre moitié de la manipulation : la cinématique ne dit rien des forces, de l’inertie, ni de la vitesse à laquelle une articulation peut bouger sans dépasser. Tout ici suppose que le bras va où on lui dit, assez lentement pour que l’hypothèse tienne.
Parcours d'apprentissage
Le parcours
Suivez les nœuds dans l'ordre — chacun débloque le suivant une fois terminé. Votre progression est enregistrée sur cet appareil.
0 / 5 terminés
Questions courantes
Questions fréquentes
Quelle est la différence entre cinématiques directe et inverse ?
La cinématique directe répond à « avec ces angles articulaires, où est l'outil ? » C'est un calcul direct, il a toujours exactement une réponse, et c'est vraiment facile. La cinématique inverse répond à la question utile — « pour mettre l'outil ici, quels angles faut-il ? » — et elle est plus difficile à tous égards. Elle peut avoir deux réponses, ou aucune si la cible est hors d'atteinte, ou une infinité si le bras a plus d'articulations que la tâche n'en contraint. Chaque problème intéressant de la commande des bras vit du côté inverse.
Pourquoi mon bras robot atteint-il du mauvais côté pour les cibles derrière lui ?
Vous utilisez presque sûrement atan au lieu d'atan2. Atan simple prend un seul rapport et ne distingue pas une cible devant de son image miroir derrière, car les deux produisent le même quotient — donc le bras atteint correctement dans deux quadrants et en miroir dans les deux autres. Atan2 prend les deux composantes séparément et résout les quatre quadrants. C'est le bogue le plus fréquent d'une première implémentation de cinématique inverse, et il se présente comme un bras qui fonctionne parfaitement jusqu'à ce qu'on demande quelque chose derrière.
Que sont coude haut et coude bas en cinématique inverse ?
Pour un bras à deux segments, presque chaque point atteignable peut être atteint de deux façons — coude plié vers le haut ou vers le bas — et les maths renvoient les deux car les deux sont correctes. Celle à vouloir dépend des environs du bras : l'une peut heurter la table, ou la pièce, ou tordre le câble. L'important est de choisir délibérément et avec constance, car commuter silencieusement de branche en cours de trajectoire fait faire au bras un mouvement ample, rapide et non planifié.
Pourquoi mon code de cinématique inverse renvoie-t-il NaN ?
Parce que la cible est plus loin que les segments ne peuvent atteindre et que la règle du cosinus a produit un argument hors de la plage −1 à 1 acceptée par acos. Le NaN coule ensuite directement dans la commande du servomoteur comme un angle aberrant, et c'est pourquoi une cible inatteignable produit si souvent un mouvement violent plutôt qu'un refus de bouger. Testez l'atteignabilité avant la trigonométrie — comparez la distance à la cible à la somme et à la différence des longueurs de segments — et renvoyez « inatteignable » comme un vrai résultat plutôt que de laisser acos le découvrir.
Qu'est-ce qu'une singularité sur un bras robot ?
Une configuration où le bras perd momentanément la capacité de bouger l'outil dans une direction, quelle que soit la façon dont il bouge ses articulations. Sur un bras à deux segments, l'évidente est l'extension complète : bras tendu, éloigner davantage l'outil est impossible, et le déplacer légèrement dans cette direction exige un énorme changement d'angle articulaire. En pratique, une trajectoire d'outil lisse passant près de l'extension complète devient un mouvement articulaire violent. Gardez les trajectoires planifiées dans une marge du bord de l'espace de travail plutôt que contre lui.
Pourquoi mon bras ne tombe-t-il pas où les maths le disent ?
Trois causes, à peu près par probabilité. Étalonnage : le zéro d'un servomoteur est là où son palonnier a été monté, et il peut tourner à l'inverse de votre convention, donc chaque articulation exige un décalage et parfois une inversion de signe. Gravité : un servomoteur modélisme tenant un segment complètement déployé est à son pire avantage mécanique et s'affaisse simplement sous l'angle commandé. Et jeu : quatre degrés de jeu à une épaule entraînant un segment de 150 mm font plus de 10 mm d'erreur au préhenseur, avec un signe dépendant du sens d'approche.