script_303cvmn_303.py

49,00 

Simulation interactive d’un bras robotique industriel articulé utilisant l’algorithme FABRIK pour l’IK (Cinématique Inverse) et intégrant des calculs de stabilité physique.

UGS : script_303cvmn_303.py Catégorie : Étiquette :

🔷 INFORMATIONS GÉNÉRALES

Champ Détail

Nom du script script_303cvmn_303.py

Version 1.0.0

Date de création 09/03/2026

Auteur / Demandeur IA Généré (Gemini)

Objectif principal Simulation interactive d’un bras robotique industriel articulé utilisant l’algorithme FABRIK pour l’IK (Cinématique Inverse) et intégrant des calculs de stabilité physique.

🎯 DESCRIPTION FONCTIONNELLE

📌 Que fait ce script ?

Le script simule un bras robotique à segments multiples qui suit le curseur de la souris en temps réel. Il gère les contraintes angulaires des joints (épaule, coude, poignet), calcule le centre de gravité de l’ensemble et évalue le couple exercé sur la base. Une charge lourde peut être activée pour tester la stabilité du robot.

📌 Problème résolu

Il permet de visualiser l’impact d’une charge utile sur la mécanique d’un robot : calcul du moment de force (torque) et vérification du basculement (stabilité du CoG) tout en maintenant une trajectoire fluide via une résolution cinématique complexe.

⚙️ SPÉCIFICATIONS TECHNIQUES

🐍 Environnement

Élément Valeur

Version Python 3.x

OS cible Tous (Windows / Linux / MacOS)

Mode d’exécution Interface Graphique (GUI)

📦 Dépendances / Librairies

Standard : math

Externes : * pygame (Rendu graphique et événements)

numpy (Calculs mathématiques et vecteurs)

📥 ENTRÉES (INPUTS)

# Nom Type Obligatoire Description Exemple

1 mouse_pos Vector2 ✅ Oui Position du curseur pour la cible (x, y)

2 MouseButtonDown Event ❌ Non Clic gauche pour activer/désactiver la charge Event(LeftClick)

📤 SORTIES (OUTPUTS)

# Nom Type Description Exemple

1 cog Vector2 Position du centre de gravité (610.5, 550.2)

2 torque float Couple calculé à la base en N.m 1250.0

3 is_stable bool État de l’équilibre au sol True/False

🧱 STRUCTURE DU SCRIPT

script_303cvmn_303.py

├── 📌 IMPORTS (pygame, numpy, math)

├── 📌 CLASSES

├── Joint : Stocke position et limites angulaires.

├── HeavyRobotChain : Cœur algorithmique (IK + Physique).

└── Simulation : Boucle principale et rendu.

└── 📌 MAIN : Point d’entrée lançant la simulation.

🔧 Détail des fonctions principales

Fonction Paramètres Retour Rôle

solve(target) target: Vector2 bool Algorithme FABRIK pour positionner les joints.

constrain_angle() idx, prev, next None Applique les limites articulaires (min/max).

calculate_physics() Aucun tuple Calcule CoG, Torque et Stabilité.

run() Aucun None Gère la boucle de rendu et les entrées.

🔄 LOGIQUE / ALGORITHME

Saisie : Capture de la position cible (souris).

Lissage : Utilisation d’un Lerp pour simuler l’inertie du bras (vitesse réduite si chargé).

Résolution IK : L’algorithme FABRIK itère (aller-retour) pour aligner les segments vers la cible.

Contraintes : Application des limites angulaires industrielles à chaque étape du solver.

Physique : * Calcul du poids total et du levier horizontal.

Comparaison du couple (Torque=F×d) au seuil critique (4500N.m).

Rendu : Affichage du robot en blanc (OK) ou rouge (Alerte/Surcharge).

✅ CONTRAINTES & RÈGLES MÉTIER

Règle 1 : La base est fixe au point (600, 700).

Règle 2 : Chaque segment a une masse fixe de 5.0 kg.

Règle 3 : La charge utile (40.0 kg) modifie instantanément l’inertie du système.

Règle 4 : Si le CoG sort de la base_width (150px), le robot est considéré comme instable.

🧪 TESTS ATTENDUS

# Cas de test Entrée Résultat attendu Statut

1 Cas nominal Souris à (300, 300) Le bras suit fluidement ⬜ À tester

2 Surcharge Charge active + bras tendu Alerte « SURCHARGE » et CoG rouge ⬜ À tester

3 Portée max Souris hors limite Le bras reste tendu vers la cible ⬜ À tester

📝 EXEMPLE D’UTILISATION

▶️ Lancement en ligne de commande

Bash

python script_303cvmn_303.py

📋 Contrôles

Mouvement souris : Pilote l’effecteur du robot.

Clic gauche : Attrape ou relâche un bloc de 40 kg (simule un transport de charge).

Avis

Il n’y a pas encore d’avis.

Soyez le premier à laisser votre avis sur “script_303cvmn_303.py”

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *