Robot holonome : Différence entre versions

De Wiki d'activités IMA
(Vidéo)
 
(13 révisions intermédiaires par 2 utilisateurs non affichées)
Ligne 1 : Ligne 1 :
 +
  
 
== Objectif ==
 
== Objectif ==
 
+
[[Fichier:IMG 0347.JPG|400px|thumb|right]]
 
Ce projet à pour objectif de réaliser la commande locale et à distance d'une plate-forme mobile, permettant le déplacement plus aisé d'un robot industriel .
 
Ce projet à pour objectif de réaliser la commande locale et à distance d'une plate-forme mobile, permettant le déplacement plus aisé d'un robot industriel .
  
Ligne 8 : Ligne 9 :
 
Pour ce projet nous disposons:
 
Pour ce projet nous disposons:
  
-d'un bâtie réalisé par les CM5
+
-d'un bâti réalisé par les CM5
  
 
-de 4 moteurs Escon
 
-de 4 moteurs Escon
  
 
-de 4 controleurs Escon (50/5)
 
-de 4 controleurs Escon (50/5)
 
  
  
Ligne 19 : Ligne 19 :
  
 
==Rapport de projet==
 
==Rapport de projet==
 +
 +
 +
[[Fichier:Philippe gombault IMA4.pdf|rapport|]]
 +
  
 
== Stratégie de commande==
 
== Stratégie de commande==
Ligne 24 : Ligne 28 :
 
Pour ce projet, la stratégie de commande n'était pas définie. J'avais donc à la déterminer ou/et à la choisir.
 
Pour ce projet, la stratégie de commande n'était pas définie. J'avais donc à la déterminer ou/et à la choisir.
  
Possédant un Raspberry pi, j'ai choisis de l'utiliser pour réaliser la commande de ce robot.
+
Possédant un Raspberry pi, j'ai choisi de l'utiliser pour réaliser la commande de ce robot.
  
 
Pour le rappeler le raspberry pi est un petit ordinateur développé par une fondation, voulant promouvoir l'informatique. Il dispose d'interface entrées/sorties (GPIO) facilement programmable.
 
Pour le rappeler le raspberry pi est un petit ordinateur développé par une fondation, voulant promouvoir l'informatique. Il dispose d'interface entrées/sorties (GPIO) facilement programmable.
Ligne 31 : Ligne 35 :
  
  
Pour la programmation, le language choisit fut le python. Un code simple n'ayant pas besoins de compilation et étant parfaitement optimisé pour gérer le GPIO du raspberry.
+
Pour la programmation, le language choisi fut le python. Un code simple n'ayant pas besoin de compilation et étant parfaitement optimisé pour gérer le GPIO du raspberry.
  
 
Pour la commande à distance, après quelque recherche j'ai trouvé une librairie python, permettant la communication avec une wiimote (manette de la console wii).
 
Pour la commande à distance, après quelque recherche j'ai trouvé une librairie python, permettant la communication avec une wiimote (manette de la console wii).
  
Pour la commande locale, mon choix se portait sur la récupération des évènements clavier. Mais après plusieurs heures de recherche sur internet et de codage avec la librairie ncruses, je me suis rendue compte que ce n'était pas faisable, car le noyau Unix n'est pas capable de récupérer de façon logique le fait de "relâcher" une touche. La commande choisit fut donc un boitier avec des boutons poussoirs et un arduino. La liaison entre le raspberry pi et l'arduino est de type série.
+
Pour la commande locale, mon choix se portait sur la récupération des évènements clavier. Mais après plusieurs heures de recherche sur internet et de codage avec la librairie ncruses, je me suis rendu compte que ce n'était pas faisable, car le noyau Unix n'est pas capable de récupérer de façon logique le fait de "relâcher" une touche. La commande choisit fut donc un boitier avec des boutons poussoirs et un arduino. La liaison entre le raspberry pi et l'arduino est de type série.
 
   
 
   
 
Le système devant être le plus simple possible, une boite dialoge a été mise en place pour facilité l'interface homme machine. celle-ci s'affiche dès le démarrage de la machine.
 
Le système devant être le plus simple possible, une boite dialoge a été mise en place pour facilité l'interface homme machine. celle-ci s'affiche dès le démarrage de la machine.
Ligne 77 : Ligne 81 :
 
-cablage électrique des moteurs
 
-cablage électrique des moteurs
  
-Prise de contacte avec les CM5 ayant réalisé le châssis
+
-Prise de contact avec les CM5 ayant réalisé le châssis
  
  
Ligne 86 : Ligne 90 :
  
  
-prise de contacte avec la société MDP pour des problèmes de dimensionnement.
+
-prise de contact avec la société MDP pour des problèmes de dimensionnement.
  
 
-régulation du moteur à vitesse constante
 
-régulation du moteur à vitesse constante
Ligne 99 : Ligne 103 :
  
  
-instalation de 'rasbian' sur le rasberry pi
+
-installation de 'rasbian' sur le rasberry pi
  
 
-recherche sur internet de la façon pour commander le GPIO du raspberry pi
 
-recherche sur internet de la façon pour commander le GPIO du raspberry pi
Ligne 172 : Ligne 176 :
  
  
-mise en place de la stratégie de commande des roues. (déterminer le sense de rotation de chaque en fonction du movement du robot)
+
-mise en place de la stratégie de commande des roues. (déterminer le sens de rotation de chaque en fonction du movement du robot)
  
  
Ligne 219 : Ligne 223 :
  
  
-commande de materiels: raspberry, écran, gertboard,...
+
-commande du materiel: raspberry, écran, gertboard,...
  
 
-test de la librairie ncruse: échec car elle ne détecte pas le fait de relâcher une touche
 
-test de la librairie ncruse: échec car elle ne détecte pas le fait de relâcher une touche

Version actuelle datée du 27 novembre 2013 à 22:50


Objectif

IMG 0347.JPG

Ce projet à pour objectif de réaliser la commande locale et à distance d'une plate-forme mobile, permettant le déplacement plus aisé d'un robot industriel .

Materiel

Pour ce projet nous disposons:

-d'un bâti réalisé par les CM5

-de 4 moteurs Escon

-de 4 controleurs Escon (50/5)


Vidéo

Rapport de projet

Fichier:Philippe gombault IMA4.pdf


Stratégie de commande

Pour ce projet, la stratégie de commande n'était pas définie. J'avais donc à la déterminer ou/et à la choisir.

Possédant un Raspberry pi, j'ai choisi de l'utiliser pour réaliser la commande de ce robot.

Pour le rappeler le raspberry pi est un petit ordinateur développé par une fondation, voulant promouvoir l'informatique. Il dispose d'interface entrées/sorties (GPIO) facilement programmable.

La commande des controleurs se faisant par entrées numériques, le choix du raspberry pi fut naturel.


Pour la programmation, le language choisi fut le python. Un code simple n'ayant pas besoin de compilation et étant parfaitement optimisé pour gérer le GPIO du raspberry.

Pour la commande à distance, après quelque recherche j'ai trouvé une librairie python, permettant la communication avec une wiimote (manette de la console wii).

Pour la commande locale, mon choix se portait sur la récupération des évènements clavier. Mais après plusieurs heures de recherche sur internet et de codage avec la librairie ncruses, je me suis rendu compte que ce n'était pas faisable, car le noyau Unix n'est pas capable de récupérer de façon logique le fait de "relâcher" une touche. La commande choisit fut donc un boitier avec des boutons poussoirs et un arduino. La liaison entre le raspberry pi et l'arduino est de type série.

Le système devant être le plus simple possible, une boite dialoge a été mise en place pour facilité l'interface homme machine. celle-ci s'affiche dès le démarrage de la machine.

Déroulement des séances

Dans cette partie, vous pourrez suivre l'avancement du projet.




séance 1: 04/02/2013


-découverte du materiel

-recherche de documentation

-installation des outils nécessaires: "parallele desktop"




séance 2: 07/02/2013


-prise en main du logiciel "escon studio"




séance 3: 11/02/2013


-prise en main du materiel

-cablage électrique des moteurs

-Prise de contact avec les CM5 ayant réalisé le châssis




séance 4: 14/02/2013


-prise de contact avec la société MDP pour des problèmes de dimensionnement.

-régulation du moteur à vitesse constante

-prise en main des entrées/sorties des controleurs escon.




séance 5: 25/02/2013


-installation de 'rasbian' sur le rasberry pi

-recherche sur internet de la façon pour commander le GPIO du raspberry pi




séance 6: 27/02/2013


-prise en main de python

-test sur une DEL




séance 7: 28/02/2013


-découverte de la librairie 'cwiid' permettant l'interface avec une wiimote.

-analyse de programme sur internet




séance 8: 04/03/2013


-codage du programme Wii.py




séance 9: 05/03/2013


-codage du programme Wii.py

-installation des librairies nécessaire




séance 10: 06/03/2013


-câblage entre le raspberry et les moteurs




séance 11: 07/03/2013


-test du programme

-résolution de certain bug lié au relâchement des touches (les moteurs continuaient à tourner)




séance 12: 08/03/2013


-mise en place de la stratégie de commande des roues. (déterminer le sens de rotation de chaque en fonction du movement du robot)




séance 13: 11/03/2013


-résolution d'un bug qui faisait planter le raspberry (problème de dongle bluetooth et de carte mémoire )




séance 14: 18/03/2013


-résolution d'un problème sur la partie mécanique du système




séance 15: 20/03/2013


-création de la boite dialogue pour une bonne interaction homme machine




séance 16: 20/03/2013


-recherche sur internet pour la commande 'filaire'

-test de la librairie pygame: échec car elle nécessite le bureau graphique




séance 17: 21/03/2013


-commande du materiel: raspberry, écran, gertboard,...

-test de la librairie ncruse: échec car elle ne détecte pas le fait de relâcher une touche




séance 18: 25/03/2013


-mise en place d'une autre stratégie de commande filaire

-mise en place d'une liaison série entre arduino et raspberry pi.

-installation des librairies nécessaires




séance 19: 27/03/2013


-gestion des vitesses des moteurs

-test liaison serie entre un arduino et un programme python




séance 20: 28/03/2013


-mise à jour de la page

-codage programe usb.py utilisant la liaison serie et un arduino




séance 21: 03/04/2013


-codage programe usb.py utilisant la liaison serie et un arduino




séance 22: 03/04/2013


ABS: rendez-vous avec Festo.




séance 23: 08/04/2013


-câblage électrique de la commande filaire



séance 24: 10/04/2013


-câblage électrique de la commande filaire

-codage du code Usb.py



séance 25: 11/04/2013


-codage du code usb.py



séance 26: 29/04/2013


-gestion de la boite dialogue au démarrage