script_605cvmn_605.py

49,00 

Décoder et visualiser graphiquement la télémétrie des roues d’un système de robotique de type Swerve Drive.

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

🔷 INFORMATIONS GÉNÉRALES

Champ Détail

Nom du script script_605cvmn_605.py

Version 1.0.0

Date de création 17/03/2026

Auteur / Demandeur refoïa jeremy

Objectif principal Décoder et visualiser graphiquement la télémétrie des roues d’un système de robotique de type Swerve Drive.

🎯 DESCRIPTION FONCTIONNELLE

📌 Que fait ce script ?

Ce script simule la réception de paquets de données binaires provenant d’un robot. Il extrait l’identifiant de la roue, sa vitesse et son angle de braquage, puis génère une représentation visuelle vectorielle montrant l’état de chaque module de propulsion sur un châssis en 2D.

📌 Problème résolu

Il permet de déboguer visuellement l’orientation et l’intensité de la poussée des roues d’un robot, transformant des chaînes hexadécimales brutes (difficiles à lire pour un humain) en un graphique intuitif.

⚙️ SPÉCIFICATIONS TECHNIQUES

🐍 Environnement

Élément Valeur

Version Python 3.x

OS cible Tous (Windows / Linux / MacOS)

Mode d’exécution CLI / Script de visualisation

📦 Dépendances / Librairies

# Librairies standard (built-in)

struct : Pour le dépaquetage des données binaires.

# Librairies externes (pip install)

matplotlib : Pour la génération du graphique.

numpy : Pour les calculs trigonométriques.

📥 ENTRÉES (INPUTS)

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

Type Chemin / Format Description

Liste statique raw_packets (Hex) Liste de chaînes hexadécimales simulant un flux réseau.

📤 SORTIES (OUTPUTS)

📂 Fichiers / Données en sortie

Type Chemin / Format Description

Graphique Fenêtre interactive Visualisation Matplotlib montrant les vecteurs de force des roues.

🧱 STRUCTURE DU SCRIPT

script_605cvmn_605.py

├── 📌 IMPORTS (matplotlib, numpy, struct)

├── 📌 FONCTION DE DÉCODAGE (decode_swerve_packet)

├── 📌 DONNÉES SIMULÉES (raw_packets)

├── 📌 BOUCLE DE TRAITEMENT (Décodage des hex vers liste)

└── 📌 VISUALISATION (Configuration plt.subplots et rendu quiver)

🔧 Détail des fonctions principales

Fonction Paramètres Retour Rôle

decode_swerve_packet(hex_data) hex_data: str tuple ou None Convertit l’hexa en (ID, vitesse, angle).

🔄 LOGIQUE / ALGORITHME

ÉTAPE 1 → Réception d’une chaîne hexadécimale (ex: « 000000803f… »)

ÉTAPE 2 → Conversion de la chaîne en octets (bytes.fromhex)

ÉTAPE 3 → Dépaquetage binaire via le format Little-Endian

ÉTAPE 4 → Conversion de l’angle en radians (rad=180deg×π​)

ÉTAPE 5 → Calcul du vecteur (dx, dy) et affichage sur le graphique.

🚨 GESTION DES ERREURS

Cas d’erreur Type d’exception Comportement attendu

Données hexa corrompues Exception Capture via try/except, affichage d’un message d’erreur et retour None.

✅ CONTRAINTES & RÈGLES MÉTIER

Règle 1 : L’ID de la roue doit correspondre aux clés du dictionnaire wheel_positions (0 à 3).

Règle 2 : Le format binaire attendu est strictement : 1 octet (ID) suivi de deux floats de 4 octets chacun.

Règle 3 : L’angle fourni dans les données est exprimé en degrés.

🧪 TESTS ATTENDUS

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

1 Cas nominal « 000000803f00000000 » ID 0, Speed 1.0, Angle 0 ✅

2 Hexa invalide « ZZZZ » Message d’erreur de décodage ⬜ À tester

📝 EXEMPLE D’UTILISATION

▶️ Lancement

Bash

python script_605cvmn_605.py

📋 Exemple de sortie attendue (Console & Graphique)

Graphique : Un carré de 4 points (roues) avec des flèches bleues indiquant la direction de la marche.

Console : (Vide si pas d’erreur, ou messages Erreur de décodage en cas de problème).

Avis

Il n’y a pas encore d’avis.

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

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