Stylet
Simulation ROS 2 d'insertion robotisée d'aiguille guidée par perception LiDAR, du repérage de la cible jusqu'à l'insertion asservie en effort.
Contexte
Stylet simule le geste d'insertion percutanée guidée par imagerie utilisé en biopsie ou en ablation tumorale : repérer une cible, s'en approcher avec un bras robotique, puis insérer une aiguille en surveillant l'effort ressenti pour détecter tout écart de trajectoire. La contrainte que je me suis fixée : le planificateur ne reçoit aucune position de vérité terrain. La cible n'est connue que via un nuage de points capté par des capteurs de distance, exactement comme un système réel devrait la retrouver.
Architecture
Le pipeline est découpé en briques indépendantes, du repérage de la cible jusqu'au geste final :
Perception
Planification
Insertion asservie
- Perception — fusion de plusieurs capteurs de distance pour reconstruire la surface de la cible et déterminer sa position exacte, sans aucune information donnée à l'avance.
- Planification — calcul de la trajectoire d'approche, puis pilotage de l'insertion en surveillant l'effort ressenti pour détecter tout écart.
- Actionnement — un bras robotique couplé à un actionneur d'insertion sur mesure, conçu spécifiquement pour ce geste.
- Interface — un panneau de contrôle personnalisé pour sélectionner le point d'entrée et suivre la procédure en direct.
Environnement de simulation réaliste avec modèle 3D complet du bras et de l'actionneur, et tests automatisés à chaque mise à jour du code.
Fiabilité & validation
Plutôt que de présenter un seul essai réussi, j'ai mis en place un protocole de test répété pour vérifier que le pipeline tient dans la durée, pas seulement une fois.
Philosophie d'ingénierie
Au-delà du code, trois principes ont guidé les décisions les plus importantes du projet :
La robustesse par redondance plutôt que par correction ponctuelle. Repérer une cible à partir d'un nuage de points peut, dans de rares cas, se tromper d'orientation — un peu comme confondre l'avant et l'arrière d'un objet symétrique. Plutôt que de corriger l'erreur après coup, j'ai fait tester plusieurs hypothèses de départ à l'algorithme et je ne garde que la plus cohérente.
Corriger la cause, pas le symptôme. Ma première approche pour insérer l'aiguille suivait un chemin direct, ce qui provoquait des collisions dans certaines configurations. Plutôt que de contourner chaque cas ponctuellement, j'ai repensé la pièce mécanique responsable pour supprimer cette famille d'erreurs à la racine.
Diagnostiquer avant de corriger. Un crash intermittent et difficile à reproduire est apparu pendant les tests d'intégration, causé par un accès concurrent mal maîtrisé entre deux parties du programme. Plutôt que de le contourner par un simple redémarrage automatique, j'ai pris le temps d'isoler précisément sa cause avant de corriger le problème à la racine.
Où en est le projet
Les phases de mise en place de l'environnement, de modélisation, de perception et de planification sont terminées, avec une démonstration de bout en bout lançable en une seule commande. Les phases suivantes (retour haptique simulé sur les tissus, cible mobile pour simuler la respiration) sont planifiées mais pas encore développées.