P28 Modélisation d'un robot chirurgical déformable pour la simulation et le contrôle

De Wiki de Projets IMA
Révision datée du 15 décembre 2014 à 09:44 par Nmartin1 (discussion | contributions) (Journal de Bord)
Logo polytech.jpg

Charlotte BRICOUT & Nathan MARTIN

Élèves Ingénieurs à Polytech Lille

Projet de Fin d'Etudes (PFE)

Contexte du projet de fin d'études

Logo inria.jpg


Dans le cadre d'un projet commun avec le King's College de Londres, l'équipe Shacra de l'INRIA de Lille va travailler pendant 2 ans sur un projet de robot déformable. L'objectif est de contrôler des robots non-rigides qui pourraient faire progresser la chirurgie non invasive. A terme, le laboratoire envisage de créer un endoscope pneumatique. Actuellement, les robots sont de types pneumatiques et le contrôle est effectué en emplissant ou vidant des volumes d'air. Le projet pourrait évoluer avec un contrôle hydraulique qui serait plus précis grâce à une mesure de l'eau injectée dans les cavités.


Description des missions à réaliser

Les objectifs du projet sont :

- Développer un modèle FEM (Finite Element Method) du robot sur la plateforme logicielle SOFA

- Faire un prototype pneumatique simplifié de l'endoscope afin de valider le contrôle du robot par le biais d'une simulation informatique. Pour mener à bien le projet, une partie de contrôle bas-niveau des régulateurs de pression sera nécessaire

- Valider le modèle sur le robot développé au King's College de Londres

- Faire une étude de faisabilité pour passer de la technologie pneumatique à hydraulique

Matériel à disposition

Logo sofa.png

Le logiciel SOFA

SOFA est une plate-forme de recherche et développement dédiée aux simulations physiques interactives et en particulier à la simulation médicale. La plate-forme regroupe de nombreux algorithmes issus de domaines de recherche variés. Des modèles de nature différente peuvent être combinés de façon à produire des simulations complexes qui restent compatibles avec des temps de calcul optimaux.
Logo blender.png

Le logiciel Blender

Blender est un logiciel libre de modélisation, d’animation et de rendu en 3D. Il dispose de fonctions avancées de modélisation, de sculpture 3D, de texturage, d’animation 3D et de rendu. Le logiciel prend en charge diverses simulations physiques telles que les particules, les corps rigides, les corps souples et les fluides.
Logo gid.jpg

Le logiciel GID

GID est un logiciel adaptatif universel pré et post-processeur pour les simulations numériques. Il a été conçu pour couvrir tous les besoins en simulation numérique de pré à post-traitement: modélisation géométrique, définition efficace des données d'analyse, maillage, transfert de données à un logiciel d'analyse et visualisation des résultats numériques.

Journal de Bord

Semaine 1

Pour démarrer notre projet, nous avons commencé par élaborer un environnement de travail complet:

- Pour travailler depuis Polytech : Installation sur nos machines personnelles des logiciels Blender et SOFA

- Pour travailler depuis l'INRIA : Etablissement d'une convention et obtention des accès au bâtiment du laboratoire


Lors de la première séance complète, nous avons pris en main Blender. Ce logiciel va nous permettre de modéliser un prototype simplifié de l'endoscope. Dans un premier temps, nous concevons un modèle aux dimensions indiquées dans une publication de l'équipe. Blender nous fournira un rendu 3D de l'endoscope et nous réaliserons le maillage du prototype avec le logiciel SOFA.


Semaine 2

Une fois le robot entièrement modélisé sur Blender, on génère un modèle sous le format ".obj" afin d'effectuer le maillage. Mailler une forme conçue par Conception Assistée par Ordinateur (CAO) signifie la modéliser géométriquement par des éléments finis tels que des tétraèdres dans notre cas. Le prototype modélisé sous Blender contient des cavités très fines rendant le processus de maillage impossible sur le logiciel SOFA. Le nombre de nœuds du prototype est trop important et nos machines ne supportent pas les calculs. Un nombre de tétraèdres moins important ne fait pas apparaître les cavités sur le prototype maillé (trop grande imprécision). Après plusieurs tentatives de maillage vaines issues de Blender, nous avons décidé de travailler avec le logiciel GID. L'avantage de ce logiciel est qu'il propose non seulement une modélisation du prototype mais aussi son maillage.


Semaine 3

Sur GID, on modélise le prototype du robot. Une fois le modèle terminé, nous réalisons un maillage avec un nombre de nœuds moins important qu'auparavant mais le prototype n'est pas maillé correctement. Si l'on augmente le nombre de nœuds et par conséquent, le nombre de tétraèdres, le logiciel ne supporte pas les calculs. Nous nous retrouvons donc en face du même problème qu'avec Blender. De ce fait, nous décidons de doubler les dimensions du prototype afin d'obtenir des cavités plus grandes et de soumettre le résultat à l'équipe du King's College.

Le prochain objectif est donc de prendre contact avec eux pour connaître les possibilités de modification du prototype qui permettraient un maillage correct du modèle.

Coupe transversale du prototype
Vue de profil à 3000 noeuds


Semaine 4

Après discussion avec le King's college, notre modèle est validé. Les dimensions retenues sont donc deux fois plus grandes que celles initialement prévues. Les cavités ont donc un diamètre de 3 mm pour une longueur de 100 mm. Le robot mesurera 110 mm et aura un diamètre extérieur de 34 mm.

A présent, notre travail se scinde en deux parties.

La première partie consiste à modéliser deux prototypes sur GID avec des nombres d'éléments différents:

- un modèle allégé (entre 2000 et 3000 nœuds) pour que la simulation avec SOFA soit fluide et temps réel

- un modèle précis pour évaluer les besoins en pression (entre 10000 et 11000 noeuds) et obtenir un modèle réaliste

La seconde partie consiste à mettre en simulation le prototype exporté de GID au format ".msh". Ce fichier mesh contient les coordonnées des points et les éléments de l'objet maillé. A partir de ce mesh, on cherche à générer un fichier au format ".xml" afin que les données contenues dans le mesh soient exploitables dans une scène Sofa. Pour ce faire, on utilise un script existant qui génère le fichier souhaité. Enfin, on rédige un fichier ".scn" qui va permettre de mettre en mouvement le prototype modélisé auparavant. Ce fichier scène nous permet par exemple de régler la rigidité du silicone, ou encore de définir le remplissage des cavités.

A la fin de cette semaine, nous avons conçu un premier modèle à 2600 noeuds.


Semaine 5

On souhaite valider notre modèle avec la technologie pneumatique. Pour ce faire, il est nécessaire de contrôler le prototype dans Sofa en pneumatique. Pour cela, on utilise le plug-in de Sofa SoftRobots. Sur notre modèle, on dessine des "BoxROI" qui sont des boîtes permettant de sélectionner les tétraèdres d'un volume. Ici, on crée quatre "BoxROI": une boîte permettant de fixer la base du robot déformable et trois boîtes pour sélectionner une cavité sur deux de notre modèle. En effet, il n'y aura que trois cavités sur les six de contrôlées. Une fois les tétraèdres des cavités sélectionnées par le biais des BoxROI, on récupère tous les triangles qui composent les cavités. Cette opération permet de sélectionner la surface au lieu du volume et nous permettra le contrôle par pression leur remplissage. Maintenant, il est nécessaire de fixer un point que l'on nommera "Goal" et un second point nommé "Effector". "Goal" est le point que va suivre le modèle."Effector" est un point du modèle qui cherchera à converger vers le "Goal". Une fois ces deux points définis, il nous reste à tester différentes pressions pour connaître la tolérance de notre système ainsi que plusieurs valeurs du module de Young pour avoir la rigidité souhaitée. Après plusieurs tests, on retiendra une pression maximale de 2MPa et un module de Young de 18MPa.


Semaine 6

Durant cette séance, nous avons rendu notre code fonctionnel en essayant de mettre en mouvement le robot dans notre scène. Celui-ci a un mouvement correct s'il parvient à converger vers le point demandé. Actuellement, la convergence est imparfaite.


Semaine 7 & 8

Pas de séance de projet allouée.


Semaine 9

Cette semaine, nous reprenons en main la scène SOFA afin de mettre en mouvement le robot. En parallèle, nous élaborons plusieurs modèles FEM afin de trouver le bon compromis entre le nombre de noeuds qui ne doit pas être trop important pour que le prototype soit fonctionnel et la géométrie qui doit restée fidèle à celle fixée auparavant.


Semaine 10

Nous parvenons maintenant à simuler notre robot cylindrique en temps réel. Lorsque le "Goal" se déplace, notre robot va, par injection d'air dans ses cavités, essayer d'atteindre le point "Goal" avec son centre outil ("Effector").

D'un autre côté, nous entamons les réflexions quant à la réalisation matérielle du robot. En effet, nous devons réaliser un moule aux dimensions précises afin de couler le silicone.

Semaine 11

Nous avons à présent acheté le matériel et avons élaborer une stratégie de fabrication du moule. Pour cela, nous avons acheté:

- 6 tiges filetées pour créer des cavités

- 1 tube en PVC d'un diamètre intérieur de 34 mm pour donner une forme cylindrique au prototype

- 1 tube en cuivre d'un diamètre extérieur de 16 mm pour creuser la géométrie

L'extrémité basse du robot sera fixée sur une plaque de PVC et la haute, sur une plaque de plexiglas afin de contrôler le remplissage. Les tiges filetées seront fixées à l'aide de boulons sur chaque extrémité. Le tube de cuivre sera rentré en force dans chaque place et sera ainsi immobile lors de la phase de coulage. Un "chapeau" en silicone sera ensuite coulé et soudé à une extrémité du robot pour assurer l'étanchéité des cavités.

Vue de profil du prototype à 10 000 noeuds
Coupe transversale

Semaine 12

Nous avons conçu le moule et avons coulé du silicone "Dragon Skin" dans celui-ci. Nous avons laissé sécher environ 3 heures avant de démouler. En parallèle, nous avons terminé les différents modèles en CAO et les soumettons à validation avant de faire l'implantation en simulation du modèle retenu.

Nous avons démoulé notre premier prototype physique mais nous constatons que les cavités ne sont pas parallèles entre elles. De ce fait, il est nécessaire de réitérer le processus de fabrication et de fixer d'avantage les extrémités afin que celles-ci n'aient aucun degré de liberté. Ainsi, le nouveau prototype devrait être opérationnel.


Semaine 13

Nous avons crée une seconde scène SOFA qui intègre le modèle à 10 000 nœuds. Etant donné que celui-ci est particulièrement précis, il nous est impossible d'utiliser SOFA en temps réel pour évaluer les besoins en pression. De ce fait, nous devons programmer un enchaînement de mouvements qui seront exécutés par notre robot. Nous pourrons ainsi réaliser une série captures "step by step" de la position du robot sous SOFA. Enfin, nous réaliserons une vidéo qui récupérera toutes les images et qui reconstituera de manière fluide la trajectoire qu'aura pris le robot.

En parallèle, nous entamons un second cycle de fabrication en réutilisant le moule. Nous avons en effet améliorer le processus de coulage du silicone par rapport au premier essai.