script_308cvmn_308.py

49,00 

Simuler en temps réel la physique, la cinématique et la consommation énergétique d’un bras robotisé industriel à 5 degrés de liberté (DOF) sous différentes charges.

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

🔷 INFORMATIONS GÉNÉRALES

Champ Détail

Nom du script script_308cvmn_308.py

Version 1.0.0

Date de création 09/03/2026

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

Objectif principal Simuler en temps réel la physique, la cinématique et la consommation énergétique d’un bras robotisé industriel à 5 degrés de liberté (DOF) sous différentes charges.

🎯 DESCRIPTION FONCTIONNELLE

📌 Que fait ce script ?

Le script fournit une interface graphique interactive permettant de manipuler un bras articulé. Il calcule dynamiquement la position des segments (cinématique directe), le centre de gravité global (CoG) et les couples de force exercés sur chaque moteur en fonction de la charge transportée (de 0 à 2,5 tonnes).

📌 Problème résolu

Il permet de visualiser l’impact mécanique d’une charge lourde sur la stabilité et la puissance requise d’un robot, aidant à comprendre les limites opérationnelles (couple max, zone de danger) avant une mise en œuvre réelle.

⚙️ SPÉCIFICATIONS TECHNIQUES

🐍 Environnement

Élément Valeur

Version Python 3.8+

OS cible Windows / Linux / MacOS

Mode d’exécution Interface Graphique (GUI)

📦 Dépendances / Librairies

# Librairies standard (built-in)

math, dataclasses, typing

# Librairies externes (pip install)

pygame (Moteur de rendu graphique et gestion des entrées)

numpy (Calculs matriciels/vectoriels)

📥 ENTRÉES (INPUTS)

📂 Fichiers / Sources de données en entrée

Interactions Utilisateur : Clavier (Flèches pour les angles, Pavé numérique pour les charges).

Configuration Interne : Liste d’objets Load et Joint définis en dur dans le code.

📤 SORTIES (OUTPUTS)

📂 Fichiers / Données en sortie

Visuel : Fenêtre Pygame 1400×900 avec rendu 60 FPS.

Données HUD : Affichage en temps réel des couples (N·m), de la puissance (kW) et des positions (m).

🧱 STRUCTURE DU SCRIPT

script_308cvmn_308.py

├── 📌 CONFIGURATION (Couleurs, Gravité, Échelle)

├── 📌 DATACLASSES (Joint, Load)

├── 📌 UTILITAIRES DE DESSIN (Segments 3D, flèches, arrondis)

├── 📌 CLASSE PRINCIPALE (IndustrialArmSim)

├── _forward_kinematics() (Calcul des positions)

├── _compute_torques() (Calcul des forces/moments)

└── draw_…() (Méthodes de rendu du HUD et du bras)

└── 📌 MAIN (Initialisation et boucle de jeu)

🔄 LOGIQUE / ALGORITHME

[Image d’un schéma cinématique de bras robotisé]

Entrée : L’utilisateur modifie l’angle cible d’un joint.

Interpolation : Le script applique un LERP (Linear Interpolation) pour fluidifier le mouvement du bras.

Cinématique Directe : Calcul récursif de la position (x,y) de chaque articulation.

Statique : Calcul des moments de force : τ=∑(m⋅g⋅dx​).

Rendu : Mise à jour du HUD et dessin des vecteurs de force.

🚨 GESTION DES ERREURS

Limites d’angles : Utilisation de clamp_target() pour empêcher le bras de se replier sur lui-même au-delà des butées mécaniques.

Surcharge : Indicateur visuel (couleur rouge) sur les barres de couple si τ>max_torque⋅0.8.

✅ CONTRAINTES & RÈGLES MÉTIER

Règle 1 : La puissance totale est limitée par MAX_MOTOR_POWER_KW (45 kW).

Règle 2 : L’échelle est fixée à 80 pixels pour 1 mètre.

Règle 3 : La base du robot est fixe aux coordonnées monde (0,0).

🧪 TESTS ATTENDUS

# Cas de test Entrée Résultat attendu

1 Rotation Base Flèches gauche/droite Le bras pivote sans déformation

2 Charge Maximum Touche [6] (Transfo 2.5T) Les couples J1/J2 passent en critique (rouge)

3 Reset Touche [R] Retour immédiat à la position de repos

📝 EXEMPLE D’UTILISATION

▶️ Lancement en ligne de commande

Bash

python script_308cvmn_308.py

🎮 Contrôles en jeu

[Tab] : Sélectionner l’articulation (Base > Épaule > Coude > Poignet > Pince).

[Flèches] : Faire pivoter l’articulation sélectionnée.

[Espace] : Activer/Désactiver la prise de la charge.

[1-6] : Changer le type d’objet à soulever.

Avis

Il n’y a pas encore d’avis.

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

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