Simulateur de bras : cinématique et planification ROS
Explorez les limites articulaires, cinématiques directe et inverse et planification de mouvements sûrs dans ce simulateur de bras robotique au navigateur.
- Catégorie
- ROS
- Durée
- 3–6 heures
- Plateforme
- Navigateur · ROS 2
01 / Commencez ici
Introduction
Un bras robotique transforme les commandes articulaires en mouvements d'outil précis par la géométrie, la rétroaction et la planification. Ce simulateur présente cette chaîne sans en masquer les difficultés : repères de coordonnées, poses accessibles, limites articulaires et singularités, pour que les utilisateurs ROS et les étudiants en robotique comprennent pourquoi un mouvement demandé réussit ou échoue.
Live lab / Forward & inverse kinematics · pick-and-place
Robot arm simulator
Pose the joints, drag a target and watch inverse kinematics solve it live, or set a pick-and-place task and run it — with honest reach, singularity, and limit reporting on a full 360° workspace.
The filled dot is the base at the centre; segments are links with round joints; the tool shows a small x/y frame. The shaded ring is the reachable workspace (between the two dashed circles). In inverse mode the cross-marker is the draggable target and the faint arm is the other elbow solution. In pick-and-place mode, drag the box (pick) and the dashed square (place), then press Run.
- Tool X
- 0 px
- Tool Y
- 0 px
- Tool angle
- 0°
- Status
- Reachable
- Reach
- 0 / 240 px
Keyboard: focus the workspace, then use Space to run a pick-and-place, R to reset, B to switch elbow, and F for full screen.
Commandes
Le simulateur fournit des curseurs articulaires, une cible d’outil à tirer, des superpositions de repères et des réglages de dimensions des segments, avec la base centrée pour que tout l’espace de travail accessible à 360° soit visible. Le mode direct calcule la pose de l’outil à partir des angles articulaires que vous réglez. Le mode inverse suit une cible que vous tirez — en résolvant les angles articulaires en direct et en signalant les cibles inaccessibles ou ambiguës plutôt que de s’y accrocher silencieusement. Un troisième mode pick-and-place permet de placer un point de prise et une destination, puis fait exécuter au bras toute la tâche : il va à l’objet, le saisit, le transporte et le relâche dans la zone de dépôt — le travail canonique pour lequel tout manipulateur réel est construit.
Théorie
Chaque articulation apporte une transformation entre repères de coordonnées. Multiplier ces transformations de la base à l’outil donne la pose cinématique directe. La cinématique inverse travaille à rebours et peut n’avoir aucune solution, une solution, ou plusieurs solutions.
Près d’une singularité, un petit mouvement d’outil peut exiger un très grand mouvement articulaire. Un planificateur doit aussi respecter les limites de position, vitesse, accélération, couple et collision. La seule portée géométrique ne rend pas une trajectoire sûre.
Algorithme
- Définissez les longueurs de segments, les axes articulaires, les transformations d’origine et les limites articulaires.
- Calculez la cinématique directe pour l’état articulaire actuel.
- Comparez la pose actuelle de l’outil à la cible demandée.
- Utilisez un solveur analytique ou numérique pour réduire l’erreur de pose dans les limites.
- Rejetez les candidats en collision ou singuliers et sélectionnez une solution continue.
- Paramétrez le chemin en temps et envoyez des consignes synchronisées aux contrôleurs articulaires.
Code source
Un bras plan à deux segments a un modèle direct compact :
from math import cos, sin
def forward_kinematics(theta_1, theta_2, link_1, link_2):
elbow = (link_1 * cos(theta_1), link_1 * sin(theta_1))
tool = (
elbow[0] + link_2 * cos(theta_1 + theta_2),
elbow[1] + link_2 * sin(theta_1 + theta_2),
)
return elbow, tool
Pour les bras physiques, validez chaque trajectoire planifiée dans un environnement borné et conscient des collisions avant d’alimenter les actionneurs.
Hypothèses et différences avec le matériel
Le bras est plan avec deux ou trois articulations rotoïdes, des segments parfaitement rigides, une réponse en vitesse instantanée et ni gravité, ni dynamique, ni collision — vous pouvez passer de coude haut à coude bas sans limite de couple. Les vrais servomoteurs ont des limites de position et de vitesse, du jeu de réducteur, un couple limité en courant et un affaissement dépendant de la charge, et un bras à 6 axes doit aussi gérer l’orientation, les singularités et le travail près des limites articulaires. Ce labo est l’endroit où vous apprenez pourquoi une cible dans l’anneau peut avoir deux solutions et pourquoi une cible sur son bord est singulière, avant d’ajouter la dynamique qui rend ces poses difficiles à tenir.
Schéma de câblage
Séparez l’alimentation des actionneurs à fort courant de l’alimentation de calcul tout en maintenant les signaux de référence et de sécurité exigés par le matériel choisi.
Expériences guidées
Tirer une cible partout est le moyen le plus rapide de construire l’intuition de choses fastidieuses à prouver sur papier et coûteuses à découvrir sur le matériel.
1. Trouvez la forme de l’espace de travail
Tirez la cible lentement vers l’extérieur jusqu’à ce que le solveur signale inaccessible, puis suivez cette frontière tout autour. Tirez ensuite vers l’intérieur, vers la base.
Avec des longueurs de segments inégales, vous trouverez deux frontières : un cercle extérieur à L1 + L2 et un cercle intérieur à |L1 − L2|. L’espace de travail est un anneau, pas un disque, et il y a un trou au milieu que le bras ne peut physiquement pas atteindre.
| Segments | Portée extérieure | Trou intérieur | Forme |
|---|---|---|---|
| 100 + 90 | 190 | 10 | Anneau avec un petit trou |
| 100 + 50 | 150 | 50 | Anneau avec un grand trou |
| 100 + 100 | 200 | 0 | Un disque plein — des segments égaux peuvent se replier sur eux-mêmes |
Cette dernière ligne est un fait de conception réellement utile : des longueurs de segments égales suppriment entièrement la zone morte. Si votre bras doit travailler près de sa propre base, c’est la raison de les choisir.
2. Regardez les deux solutions fusionner
Basculez entre les branches coude haut et coude bas sur une cible près du milieu de l’espace de travail : deux poses de bras clairement différentes atteignant le même point.
Tirez maintenant cette cible vers l’extérieur, vers la frontière. Les deux poses convergent, et à pleine extension elles deviennent la même pose. C’est une singularité, et c’est là que le bras perd la capacité de déplacer l’outil dans une direction quoi que fassent les articulations.
3. Sentez ce que coûte une singularité
Tirez la cible le long d’une droite qui passe près de la pleine extension, lentement et régulièrement. Regardez les angles articulaires plutôt que le bras.
L’outil se déplace à vitesse constante ; les articulations non. Près de la frontière, un petit mouvement d’outil exige un énorme mouvement articulaire, donc une trajectoire cartésienne lisse devient un mouvement articulaire violent. Sur le matériel, c’est un servo qui claque à sa limite.
Gardez les parcours planifiés dans environ 95 % de la portée maximale, et cela cesse d’être un problème.
4. Franchissez une frontière de branche et regardez le basculement
Réglez le solveur pour toujours choisir coude haut, puis tirez la cible dans une zone où cette branche heurte une limite articulaire et où le solveur bascule. Le bras pivote par un mouvement ample, rapide et complètement non planifié.
C’est pourquoi la bonne valeur par défaut est le mouvement minimal — choisir la branche la plus proche de la pose actuelle — plutôt qu’une branche fixe. Un basculement de branche silencieux en milieu de parcours sur du matériel réel est alarmant et peut être destructeur.
Ce que vous devriez observer
| Action | Résultat attendu | Si vous observez autre chose |
|---|---|---|
Cible au-delà de L1 + L2 |
Un « inaccessible » net | Un NaN ou une pose accrochée signifie que le solveur teste la portée trop tard |
Cible dans |L1 − L2| |
Aussi inaccessible | Correct — c’est le trou, pas un bogue |
| Cible derrière la base | Atteinte correctement | Si elle se reflète, c’est atan au lieu de atan2 |
| Bascule de branche de coude | Même position d’outil, articulations différentes | Les deux sont valides ; choisir est votre décision |
| Traction vers la frontière | Les vitesses articulaires montent fortement | C’est la singularité |
| Aller-retour via FK puis IK | Les angles d’origine reviennent | Un écart signifie une convention de signe ou d’écart incohérente |
Transposition au matériel
La géométrie se transfère exactement. Rien d’autre, et l’écart est là où un premier montage de bras passe son temps :
| Ce labo | Un vrai bras à servomoteurs |
|---|---|
| Les articulations vont exactement où commandé | Le zéro du servo est là où le palonnier a été monté ; certains tournent à l’envers |
| Pas de gravité | L’épaule s’affaisse à l’extension — pire exactement là où la précision est pire |
| Pas de jeu | Plusieurs degrés de jeu, facturés à chaque inversion |
| Mouvement instantané | Un saut commandé part à pleine vitesse, avec une pointe de courant |
| Longueurs de segments parfaites | Mesurez entre les axes articulaires, pas entre les bords des supports |
| Couple infini | Un SG90 à 58 % du blocage ne tiendra pas la position précisément |
Deux nombres font la démonstration. Quatre degrés de jeu à l’épaule sur une portée de 190 mm font plus de 13 mm à la pince — plus grand que toute erreur introduite par les maths. Et une longueur de segment mesurée 10 mm trop longue sur un segment de 95 mm est une erreur systématique de 10 % qu’aucun réglage ne supprimera.
La conséquence pratique est que la précision du matériel vient de l’étalonnage et d’un sens d’approche cohérent, pas d’une meilleure cinématique. Approchez toujours une cible depuis le même sens et le jeu devient un écart répétitif que vous pouvez soustraire. Le solveur complet, avec chaque cas d’échec traité, est dans cinématique inverse pour un bras à deux segments.
Liste de vérification du matériel
Composants
- Bras robotique à trois axes ou plus
- Contrôleur capable de mises à jour articulaires synchronisées
- Rétroaction articulaire ou servomoteurs intelligents
- Base rigide et point central d'outil défini
- Arrêt d'urgence et alimentation limitée en courant
Explorer le graphe
Où ce simulateur est utilisé
Les projets, parcours d'apprentissage et tutoriels qui s'appuient sur ce labo.
Continuer la construction
Ressources à télécharger
Utilisez ces références sur la page pendant que vous avancez dans le projet. Les archives de projet téléchargeables ne seront ajoutées qu'une fois leur source et leur version publiées.
Questions courantes
Questions fréquentes
Quelle est la différence entre cinématique directe et cinématique inverse ?
La cinématique directe calcule la pose de l'outil à partir des valeurs articulaires connues. La cinématique inverse part d'une pose d'outil désirée et cherche une ou plusieurs configurations articulaires capables de la produire.
Pourquoi un bras à 2 segments a-t-il deux solutions (coude haut et coude bas) ?
Pour la plupart des cibles accessibles, le coude peut plier dans un sens ou l'autre tout en plaçant l'outil au même point, donnant une configuration coude haut et une configuration coude bas. Les deux solutions proviennent du plus-ou-moins dans l'angle en loi des cosinus pour la seconde articulation. Elles ne coïncident qu'à une singularité, où le bras est complètement tendu ou complètement replié.
Comment choisir entre coude haut et coude bas ?
Choisissez la configuration la plus sûre et la plus efficace pour la tâche : celle qui garde les articulations loin de leurs limites, minimise le mouvement depuis la pose actuelle, ou évite les obstacles. Ce simulateur permet de basculer entre les branches et montre la solution alternative en fantôme pour que le compromis soit visible.
Qu'est-ce qu'une singularité dans un bras robotique ?
Une singularité est une configuration où le bras perd la capacité de déplacer l'outil dans une direction — généralement quand il est complètement tendu ou complètement replié. Près d'une singularité, un petit mouvement d'outil peut exiger un très grand mouvement articulaire, donc les planificateurs ralentissent ou contournent ces poses. C'est aussi là que les solutions coude haut et coude bas fusionnent en une seule.
Quand la cinématique inverse n'a-t-elle aucune solution ?
Une cible plane à deux segments n'est accessible que dans l'anneau entre la portée la plus courte (la différence des longueurs de segments) et la portée la plus longue (leur somme). Un point hors de cet anneau ne peut être atteint à aucun angle articulaire. Une pose peut aussi être inaccessible parce qu'elle exige un angle articulaire interdit, une orientation que les articulations disponibles ne peuvent pas produire, ou entrerait en collision avec le bras lui-même.
Pourquoi utiliser la cinématique inverse analytique plutôt qu'un solveur numérique ?
Pour un bras plan à deux ou trois segments, la géométrie a une solution en forme fermée (analytique), donc vous pouvez calculer les angles articulaires exacts directement, de façon déterministe et rapide — idéal pour enseigner et tester. Les solveurs numériques sont nécessaires pour les bras redondants ou spatiaux où aucune forme fermée n'existe, mais ils itèrent, peuvent manquer des solutions, et sont plus difficiles à raisonner.
Pour aller plus loin
Références
Des sources faisant autorité pour aller plus loin que le modèle pédagogique, borné, de ce simulateur.