Robot Centaure 2013 : Différence entre versions

De Wiki d'activités IMA
Ligne 68 : Ligne 68 :
  
 
*La communication entre la carte Arduino et le Robot  
 
*La communication entre la carte Arduino et le Robot  
PROBLÈME DE TIMEOUT  
+
> PROBLÈME DE TIMEOUT  
  
 
*La communication entre le télécommande et le PC :
 
*La communication entre le télécommande et le PC :
Ligne 84 : Ligne 84 :
 
''Objectif de semaine 4:''  
 
''Objectif de semaine 4:''  
 
Résoudre les problèmes trouvé pendant la troisième semaine. Essayer de contrôler le Robot avec le télécommande.
 
Résoudre les problèmes trouvé pendant la troisième semaine. Essayer de contrôler le Robot avec le télécommande.
 +
 +
'''Semaine 4'''
 +
 +
Pendant cette semaine, nous avons travaillé sur les probmèmes que l'on a trouvé pendant la semaine précédente.
 +
 +
D'abord, nous avons touvé que les ports définies ne correspondent pas à notre PC, nous avons changé le port  de télécommande , et puis le programme a pu recevoir les commandes envoyés par le télécommande.
 +
 +
> #define PORTCOMM1 "dev/ttyUSB0"
 +
 +
''Dans le fichier gestionIrc.c''
 +
 +
[[Fichier:image_exec_irc.png]]
 +
 +
Ensuite, nous avons changé le port de Arduino:
 +
 +
> #define PORTCOMM2 "dev/ttyACM0"
 +
 +
Il n'y a plus de problème de TIMEOUT.Nous avons essayé d'envoyer des commandes directement en utilisant le minicom, et nous avons trouvé que le Robot reçoit les commandes mais son comportement ne correspond au code de Arduino.
 +
 +
> EXPLICATION DES PROBS TROUVÉS PAR CLÉMENT(CE QUI MARCHE ET CE QUI NE MARCHE PAS)
 +
 +
Mais le programme gestionSerie.c ne reçoit toujours rien, cela veut dire que il n'y a toujours rien dans le tube.
 +
 +
[[Fichier:code_tubeIS.png]]
 +
 +
'Le programme n'execute pas cette partie de code'
 +
 +
Après avoir étudié l'ensemble de codes, nous avons trovué que les commandes ne sont pas écrits dans le tube ''tubeIS[0]''. Pour résoudre ce problème, nous avons modifié le code dans le fichiers gestionIrc.c pour que les commandes soient écrits dans le tube:
 +
 +
[[Fichier:code_ecrit_tubeIS_png]]
 +
 +
Nous avons aussi modifié le fichier gesitonSerie.c , pour que le programme puisse choisir entres les quatres tubes correctement:
 +
 +
[[Fichier:code_select.png]]
 +
 +
Il y a trois façpon de communiquer avec le robot:
 +
*Par Kinect
 +
*Par Télécommande
 +
*Par Une application Android
 +
 +
[[Fichier:image_fonc_2.png]]
 +
 +
Nous avons aussi modifié le code de la partie Arduino:
 +
 +
> EXPLIQUATION DES MODIFICATIONS FAIT PAR CLÉMENT
 +
 +
Après les modifications, nous avons réussit à faire contrôler le Robot en utilisant le télécommande.
 +
Mais nous avons trouvé que …
 +
> EXPLIQUATION DES PROBLÈMES DU ROBOT QUAND IL BOUGE...
 +
 +
[[Fichier:exec_global.png]]
 +
 +
 +
Semaine 5
 +
 +
Pendant cette semaine, nous avons travaillé sur la partie IHM de code, pour que le robot puisse afficher les images correspondents quands il avance, tourner à droite, à gauche...etc.
 +
 +
Nous avons travaillé principalement sur deux fichiers, gestionIhm.c et gestionEcouteIhm.c . Les codes sont déjà écrit mais ils ne fonctionnent pas correctement, le programme ne charge pas d'image.
 +
Pour résoudre ce problème, nous avons pris connaissance d'utilisation l'outil GTK 2++. Voir lien pour le tuto:     
 +
http://gtk.developpez.com/cours/gtk2/
 +
En gros , GTK est un outil pour créer des interfaces graphics. Après les modifications, le programme charge une image en acceuillant l'utilisateur.

Version du 5 avril 2014 à 15:57

Cahier des charges.

Le robot de grande taille ou robot centaure est un projet qui a été reprit l'an dernier après plusieurs années d'abandon, à l'heure actuelle il est dans un état de fonctionnement correct mais des améliorations doivent lui être apportées afin qu'il puisse remplir sa tache de manière sure et autonome: à savoir se déplacer dans le hall sans danger pour le matériel et les personnes présentes dans celui-ci.


Objectifs principaux:

  • Permettre au robot de se déplacer de manière autonome dans le hall de l'école (ou ailleurs) de manière autonome et "fluide".
  • Assurer la fiabilité de fonctionnement du robot d'un point de vue électrique.


Travail à réaliser:

Partie Kinect:

  • Améliorer le système de détection des distances à l'aide de la Kinect: Meilleur gestion des "zones d'ombres", augmentation du champ de vision (si possible).
  • Création d'une application afin de faciliter le dépannage du robot en cas de problème.
  • Affichage de messages sur l'écran du robot afin de le rendre plus "sympathique" pour le grand public. (ex: smiley, photo, ...)

120202 kinect windows2.jpg

Partie Robot:

  • Optimiser le calcul de trajectoire afin que le robot se déplace de manière plus fluide.
  • Optimiser la gestion des capteurs afin que ceux ci soit plus fiable (problème dut a la lumière du jour sur les capteurs infrarouges).
  • Réglage du problème lié à la présence d'une roue folle à l'avant du robot qui entraîne des déviations de trajectoire lors de la remise en marche de celui-ci.

200px-Robot centaure.jpg

Semaine 1 :

Lors de cette première semaine, nous avons effectué des recherches sur le Robot Centaure en testant et en étudiant le rapport édité précédemment, afin de mieux comprendre son fonctionnement:

  • Installantion touts les outils nécessaires pour executer le programme. ex. IDE, GTK 2++, Video.h etc.
  • Lien pour télécharger la bonne version des libraries et le logiciel IDE:
> IDE : http://arduino.cc/en/main/software ou utilisez sudo apt-get install arduino
> GTK 2++ : sudo apt-get install gtk2

Sachant que l'on a besoin de créer et réparer l'application GUI, il faut écrire un programme ainsi qu'un makefile en dehor des répertoires existants pour tester. Pour compiler executer le code qui utilise la package GTK2++, voir lien :

> http://gtk.developpez.com/cours/gtk2/

Prise en main d'utilisation du logiciel IDE:

Ide.png

Pendant la première semaine, nous avons trouvé que les codes sont étoitement liés ensemble, et que la compréhension des codes est très importante pour démarrer le robot. Pour la semaine 2, nous allons étudier le code pour Arduino ainsi que le code pour la partie Informatique.

Semaine 2

Pendant cette semaine, nous avons étudié les fonnctionnements du Robot Centaure. Nous avons compris que : Pour lancer la fenêtre de kinect, il faut ajouter

> make -video 

pour la compilation.

Fenetrekinect.png

Pour arrêter le Robot dans le cas d'urgence, il faut tirer le boutton rouge

Bouttonrouge.jpg

Pour alimenter le Robot il faut

Fichier:Batterie.jpg

Limit: Sachant que la carte de mère de l'ordinateur de ce robot est cassée le semestre précédent, nous travaillons sur notre PC pour tester le code. Mais notre PC n'est pas assez puissant pour lancer le Kinect, c'est à dire que le programme s'arrête brutalement quelque fois, nous devons attendre l'arrivée d'une nouvelle carte de mère pour tester la partie Kinect. Il prendra 36 heures pour charger le Robot en batterie pleine, en vue de cela, nous avons décidé de travailler sur le code avant de tester le Robot, pour que l'on ne gaspiller pas trop de battrie pour rien faire.

Semaine 3 Pendant cette semaine, nous avons travaillé pour réparer le fonctionnement de télécommande de ce Robot. Après avoir effectué plusieurs tests , nous avons trouvé que:

  • La communication entre la carte Arduino et le Robot
> PROBLÈME DE TIMEOUT 
  • La communication entre le télécommande et le PC :

La communication entre le télécommande et le PC se divise en deux parties: Dans le fichier gestionIrc.c : Cette partie de code sert à récupérer les commandes envoyés par le télécommande. Le problème est que le programme n'affiche pas les commandes qu'il a reçu, cela veut dire que les commandes ne sont pas pris en compte.

Fichier:GestionIrc.png

Dans le fichier gestionSerie.c : Cette partie de code sert à récupérer les commande envoyés par l'un des quatres tubes, et puis les envoient vers la carte Arduino. Le problèm est que, quand on lance le programme, il n'a rien reçu.

Image fonc 1.png

Objectif de semaine 4: Résoudre les problèmes trouvé pendant la troisième semaine. Essayer de contrôler le Robot avec le télécommande.

Semaine 4

Pendant cette semaine, nous avons travaillé sur les probmèmes que l'on a trouvé pendant la semaine précédente.

D'abord, nous avons touvé que les ports définies ne correspondent pas à notre PC, nous avons changé le port de télécommande , et puis le programme a pu recevoir les commandes envoyés par le télécommande.

> #define PORTCOMM1 "dev/ttyUSB0" 

Dans le fichier gestionIrc.c

Image exec irc.png

Ensuite, nous avons changé le port de Arduino:

> #define PORTCOMM2 "dev/ttyACM0" 

Il n'y a plus de problème de TIMEOUT.Nous avons essayé d'envoyer des commandes directement en utilisant le minicom, et nous avons trouvé que le Robot reçoit les commandes mais son comportement ne correspond au code de Arduino.

> EXPLICATION DES PROBS TROUVÉS PAR CLÉMENT(CE QUI MARCHE ET CE QUI NE MARCHE PAS)

Mais le programme gestionSerie.c ne reçoit toujours rien, cela veut dire que il n'y a toujours rien dans le tube.

Code tubeIS.png

'Le programme n'execute pas cette partie de code'

Après avoir étudié l'ensemble de codes, nous avons trovué que les commandes ne sont pas écrits dans le tube tubeIS[0]. Pour résoudre ce problème, nous avons modifié le code dans le fichiers gestionIrc.c pour que les commandes soient écrits dans le tube:

Fichier:Code ecrit tubeIS png

Nous avons aussi modifié le fichier gesitonSerie.c , pour que le programme puisse choisir entres les quatres tubes correctement:

Code select.png

Il y a trois façpon de communiquer avec le robot:

*Par Kinect
*Par Télécommande
*Par Une application Android 

Image fonc 2.png

Nous avons aussi modifié le code de la partie Arduino:

> EXPLIQUATION DES MODIFICATIONS FAIT PAR CLÉMENT

Après les modifications, nous avons réussit à faire contrôler le Robot en utilisant le télécommande. Mais nous avons trouvé que …

> EXPLIQUATION DES PROBLÈMES DU ROBOT QUAND IL BOUGE...

Fichier:Exec global.png


Semaine 5

Pendant cette semaine, nous avons travaillé sur la partie IHM de code, pour que le robot puisse afficher les images correspondents quands il avance, tourner à droite, à gauche...etc.

Nous avons travaillé principalement sur deux fichiers, gestionIhm.c et gestionEcouteIhm.c . Les codes sont déjà écrit mais ils ne fonctionnent pas correctement, le programme ne charge pas d'image. Pour résoudre ce problème, nous avons pris connaissance d'utilisation l'outil GTK 2++. Voir lien pour le tuto: http://gtk.developpez.com/cours/gtk2/ En gros , GTK est un outil pour créer des interfaces graphics. Après les modifications, le programme charge une image en acceuillant l'utilisateur.