IMA4 2016/2017 P34
De Wiki de Projets IMA
Sommaire
Cahier des charges
Contexte Général
Qu'est-ce que l'haptique ?
- L'haptique est la science du toucher. Elle permet de simuler des sensations comme la forme, la texture d'objets qui existent mais qui ne sont pas présents.
Quelques exemples d'application actuels
- Ecran tactile (smartphone, tablette), créer du relief pour sentir les touches d'un clavier.
- Chirurgie à distance, retour de force...
Présentation générale du projet
Actuellement
- Nous disposons d'une plate-forme à 6 axes de liberté et contrôlée par 6 moteurs pilotés deux à deux.
- Le programme permettant de contrôler ces moteurs se fait via un Raspberry déjà présent dans la maquette.
- Un étudiant ayant déjà travaillé sur ce projet a déjà chargé un programme permettant de contrôler les translations Tx, Ty et Tz selon les axes x, y et respectivement z.
Objectif du projet
- Le but de notre projet est de déplacer une plate-forme pour qu'une personne ayant placé un doigt sur cette surface plane puisse sentir la forme d'un objet. C'est à dire que la plate-forme devra suivre le doigt qu'une personne aura placé dessus tout en restant tangente à celui-ci.
Tâches à réaliser
- Concernant les déplacements de la plate-forme :
- Les déplacements en translation suivant x, y et z ont déjà été programmés.
- Objectif : comprendre comment les déplacements en translation ont été réalisés afin de pouvoir, par la suite, programmer les déplacements en rotation.
- Réalisation du programme :
- Pour réaliser le programme permettant la rotation de la plate-forme, nous allons utiliser le logiciel Matlab / Simulink.
- Utilisation d'un modèle mathématique pour pouvoir tester notre travail sur ordinateur.
- Programmer dans le Raspberry avec un code C réalisé avec Matlab qui traduit notre simulation mathématique.
Exemple d'application de notre projet
- Créer l'illusion de la présence d'une orange en sentant sa forme arrondie et sa texture en utilisant uniquement un plan sans relief.
Environnement général et tuteurs
Lieu de travail principal
- IRCICA, 50 Avenue du Halley à Villeneuve-d'Ascq
Tuteurs du projet
- Betty SEMAIL
- Frédéric GIRAUD
- Laurent GRISONI
Choix techniques : matériel et logiciel
- Logiciel principalement utilisé :
- Matlab / Simulink
- Matériel fourni :
- Maquette : interface plate-forme à 6 axes de liberté
- Raspberry
- Matériel à acheter :
- Aucun matériel nécessaire
Calendrier prévisionnel
Calendrier
- Présentation du contexte et du projet. Définition du cahier des charges.
- Prise de contact par mail le 29-11-2016 ;
- Rencontre le 13-12-2016 pour présentation du projet à l'IRCICA.
- Première séance à l'IRCICA : Mercredi 25 Janvier
Feuille d'heures
Tâche | Prélude | Heures S1 | Heures S2 | Heures S3 | Heures S4 | Heures S5 | Heures S6 | Heures S7 | Heures S8 | Heures S9 | Heures S10 | Total |
---|---|---|---|---|---|---|---|---|---|---|---|---|
Rendez-vous présentation |
1h |
|||||||||||
Définition cahier des charges |
1h |
|||||||||||
Explications complémentaires | 1h | |||||||||||
Lecture rapport de stage et thèse | 4h | |||||||||||
Récupération, tri, lecture et tests anciens programmes | 5h | 4h | 4h | 1h | ||||||||
Modification programme pour tester rotations | 2h | |||||||||||
Tester programmes | 1h | |||||||||||
Rédaction Wiki | 1h | |||||||||||
Dont problèmes logiciels | 3h (lundi) | 1h (mercredi<br\>+jeudi) |
Avancement du Projet
Semaine 1
<br\> Séance du mercredi :
- Découverte du lieu de travail
- Lecture du rapport de stage de la personne ayant effectué les déplacements en translations sur le robot Hexapod (Valentin CATTIAU)
<br\>
Semaine 2
<br\> Séance du lundi (3h):
- Découverte et premiers aperçus des programmes/code Simulink avec Michel AMBERG et Frédéric GIRAUD
- Impossibilité d'ouvrir les fichiers Simulink, problèmes de compilation avec Matlab :
- On a donc dû réinstaller Matlab, ce qui a pris beaucoup de temps.
<br\> Séance du mercredi (4h):
- Michel AMBERG nous a montré comment compiler les différents programmes avec Matlab. Cependant, la compilation Matlab entraînait directement le lancement du programme sur le Raspberry PI 3B, donc nous devions effectuer la commande "kill" depuis le terminal dans le Raspberry.
- Nous avons ensuite effectué une copie du fichier "reset.sh" permettant d'initialiser les codeurs sur les positions fixées par l'utilisateur sur le robot Hexapod. Pour cela, nous plaçons des cales en plexiglas afin de permettre d'avoir un angle à peu près identique au niveau de chaque codeur. Ces positions étant nécessaires à l'utilisation des programmes réalisés par notre prédécesseur.
- Dans un second temps, nous avons débuté la répartition des anciens programmes dans des sous-dossiers afin de s'organiser au mieux. En même temps, nous avons compilé les programmes pour voir ceux qui peuvent encore fonctionner (certaines parties de programme sont communes sur plusieurs programmes, si elles ont été modifiées pour un programme plus récent, les anciennes versions ne fonctionnerons plus).
<br\> Séance du jeudi (2h):
- Suite de la répartition du mercredi
- Création d'un tableau de suivi permettant de savoir à quoi correspondent chaque fichier et les GPIO du raspberry.
<br\>
Semaines 3 et 4
<br\>
- Durant ces séances, nous avons étudié le code réalisé par Valentin CATTIAU (code non commenté), afin de comprendre ce qu'il avait réalisé.
- A partir de cette recherche, nous avons pu déterminer quels étaient les programmes fonctionnels et ceux non utilisables. Cela nous a permis de poursuivre notre tableau de suivi démarré en semaine 2.
<br\>
- Afin de pouvoir libérer notre poste de travail (utilisé par une autre personne), nous avons dû changer de PC. Cependant, le package de Matlab Simulink pour travailler avec un Raspberry s'installait mais n'était pas utilisable. Cela nous a donc un peu ralenties dans la poursuite de notre travail d'étude du projet.
<br\>
Semaine 5
<br\>
- Dans un premier temps, nous avons terminé la phase de tri des fichiers non utilisés.
<br\>
- Modification code existant :
- Récupération du code fonctionnel "cercle.slx" :
- Initialement, les moteurs étaient contrôlés deux à deux en utilisant un unique capteur de position par groupe de deux moteurs (moteurs 1-2, 3-4 et 5-6).
- Notre modification consiste à récupérer les valeurs des six capteurs pour contrôler nos six moteurs indépendamment.
- Ce que nous avons réalisé : METTRE CAPTURE ECRAN AVANT / APRES
- Tests :
- Problème rencontré : suite au détachement des bras, qui étaient reliés deux à deux par un petit tube transparent (voir photo ci-dessous), nous avons remarqué que les mouvements ne sont plus synchronisés. En effet, nous observions un léger décalage entre deux bras commandés à l'identique.
- Nous avons donc relancé l'exécutable initial afin de voir si le problème persistait, et en effet, ce problème existait déjà mais comme les deux bras étaient reliés, un moteur en entraînait un autre. METTRE PHOTO LIAISON / VOIR POUR METTRE VIDEOS DE TEST
- Récupération du code fonctionnel "cercle.slx" :
<br\>
- Objectif prochaine séance : comprendre le phénomère, peut être consigne erronée (couple différents), ou dû à la succession envoi des données.
<br\>