Projet-2014-2015-RobAIR: Difference between revisions
Line 121: | Line 121: | ||
* http://air.imag.fr/index.php/Int%C3%A9gration_d%27Espruino_%C3%A0_RIOT_OS |
* http://air.imag.fr/index.php/Int%C3%A9gration_d%27Espruino_%C3%A0_RIOT_OS |
||
*http://www.ros.org/ |
*http://www.ros.org/ |
||
* http://wiki.ros.org/ROS/Tutorials/WritingPublisherSubscriber%28c%2B%2B%29 (c++) |
|||
* http://wiki.ros.org/ROS/Tutorials/WritingPublisherSubscriber%28python%29 (python) |
Revision as of 23:02, 7 February 2015
Présentation
RobAIR est une plate forme de télé-présence. Sa principale fonction est d'agir à la place de son utilisateur, lorsque ce dernier ne peut être physiquement présent dans un lieu. Ses domaines d'application sont variés, on peut notamment citer le cas des conférenciers ne pouvant pas se permettre un déplacement, ou bien pour qu'un élève continue d'assister à ses cours lors d'une hospitalisation. Il s'agit d'un projet qui a débuté il y a quelques années, sur lequel nous travaillons en parallèle avec la filière 3I. Nous reprenons aussi le travail effectué précédemment par des élèves de l'ENSIMAG. Notre objectif est le portage sur une nouvelle gamme utilisant le micro-contrôleur STM32 au lieu d'Arduino. Ainsi que l'ajout d'une carte MEMS intégrant divers capteurs, et communiquant avec une tablette via Bluetooth low consomation. Nous prendrons aussi en compte l'implémentation d'une interface sous FirefoxOS pour le téléguidage.
Équipe
Encadrant/Client
- Olivier Richard(olivier.richard@imag.fr)
- Didier Donsez(didier.donsez@imag.fr)
Étudiants
- KLIPFFEL Tararaina (tararaina.klipffel@e.ujf-grenoble.fr) <-- Chef de projet
- MICHEL Vivien (vivien.michel@e.ujf-grenoble.fr)
- HAMMERER Jeremy (jeremy.hamerer@e.ujf-grenoble.fr)
- VIALLET Etienne (etienne.viallet@e.ujf-grenoble.fr)
Gestion de projet
The project started January 14th, 2015.
Progression du projet
Week 1 (January 13th - January 18th)
Découverte de la Fab Lab et du robot "RobAIR"
- Rencontre avec les étudiants de l'ENSIMAG travaillant sur le sujet
- Récupération du matériel hardware et prise en main de la documentation :
- STM32F030R8T6 Nucleo
- MEMES Inertial and Environmental -- Nucleo Expansion
Week 2 (January 19th - January 25th)
- Prise en main de la documentation de la carte STM32F030R8T6.
- Initialisation de la board par GitHub :
- Lancement d'un programme de test des leds de la carte
Problèmes rencontrés
Après avoir installé les fichiers de configurations, nous n'arrivons pas à compiler le programme d'exemple "hello-world". En effet la board STM32F030R8T6 n'a pas encore était implémentée (board inexistante). Il est ainsi pour le moment impossible de flasher celle ci.
Week 3 (January 26th - February 01st)
- Récupération du matériel hardware :
- STM32F407VGT6 Discovery
- 18-D80NK Adjustable Infrared Obstacle Avoidance Detection Sensor Switch Detect 3-80cm for Arduino
- Ultrasson Sensor
Problèmes rencontrés
Après avoir installé les fichiers de configurations, nous avons réussi à flasher le programme d'exemple "hello-world" sur la board STM32F407VGT6 Discovery. Cependant, notre objectif premier est de faire le portage d'une carte Arduino à une STM32f-NUCLEO et non une STM32f-DISCOVERY. En effet, les cartes NUCLEO sont nettement plus performantes et compatibles avec les cartes MEMS et les cartes ARDUMOTO. Pour l'instant nous prenons connaissance de l'utilisation de la carte.
Week 4 (February 02nd - February 08th)
- Récupération du matériel hardware :
- STM32L152-Nucleo et STM3F334-Nucleo
- SparkFun Ardumoto Shield
- DC geared Motor x2
- Téléphone ZTE avec FirefoxOs pré-installé
Tutorial d'initialisation du projet
ATTENTION --- Si vous tournez sur une machine de 64 bit, vous devez installer le paquet gcc-multilib, pour pouvoir compiler avec succés sur RiotOS. explication
| sudo apt-get install gcc-multilib
Dans un premier temps nous allons récupérer toute les librairie nécessaire pour commencer notre projet.
- Récupération des différentes board sur GitHub
- Récupération du compilateur ARM
- Récupération de STLINK pour flasher la carte (autre solution : OpenOCD)
| Download le ZIP | Créer un nouveau dossier (par exemple LIBRAIRIE_EXT dans votre $HOME ) | Placer l'archive dans ce dossier et l'extraire
ATTENTION --- pour STLINK vous devez faire quelques manipulations supplémentaires.
| Rentrer dans le dossier stlink-master et executer les lignes suivantes. | # ./autogen | # ./configure | # make | | PS : Si vous obtenez la ligne d'erreur suivante " configure: error: *** Required libusb-1.0 >= 1.0.0 not installed ***" | Pas de panique! Il vous manque seulement une librairie. | sudo apt-get install libusb-1.0
| N'oubliez pas de rajouter le chemin des dossiers extraits dans votre $PATH. | # export PATH=$PATH:$HOME/LIBRAIRIE_EXT/Dossier_a_ajouter
Pour éviter de taper cette commande à chaque initialisation de terminal, vous pouvez la placer dans votre fichier ".bashrc". Ci dessous, voici les lignes de code ajouté à mon ".bashrc". Noté que vous devez remplacer les variables $HOME par votre propre chemin!
|# LIGNE STLINK pour flash une carte |export PATH=$PATH:$HOME/LIBRAIRIE_EXT/stlink-master | |# LIGNES AJOUTEES POUR RIOT_OS compilateur ARM |export PATH=$PATH:$HOME/LIBRAIRIE_EXT/arm-2014.05/arm-none-eabi/bin |export PATH=$PATH:$HOME/LIBRAIRIE_EXT/arm-2014.05/bin
Votre projet est maintenant initialisé, nous pouvons commencer la partie sérieuse.
Tutoriel d'utilisation de RiotOS
Voici un très bon tutoriel de RiotOS : lien
| Ce placer dans un dossier d'exemple "hello-world" | # cd $HOME/LIBRAIRIE_EXT/RIOT-master/examples/hello-world/ | Compiler le programme en fonction de la BOARD utilisée | make BOARD=nucleo-l1 | Ce mettre en super utilisateur, puis flasher le programme sur la carte | # sudo -s | # st-flash write bin/nucleo-l1/hello-world.hex 0x8000000
Prise en main de Mbed
- Récupération du code de Didier Donsez sur mbed.
- Adaptation de ce code pour qu'il fonctionne avec la carte Ardumoto branché à la STM32-NUCLEO avec le Compilateur Mbed.
- Pour tester le programme d'activation des moteurs, il suffit de glisser le fichier motor_NUCLEO_L152RE.bin[3] dans la carte STM32-NUCLEO
Installation et prise en main de ROS-INDIGO
Voici un très bon tutoriel pour prendre en main ROS[4]
Problème rencontrés
Le projet des Ensimag fonctionne avec la version Hydr o de ROS. Cependant "ROS Hydro ONLY supports Precise, Quantal, and Raring for debian packages"[7]. Pour une utilisation avec ROS Indigo, il sera nécessaire de modifier quelques éléments pour obtenir la compatibilité.
Week 5(February 09th - February 15th)
Week 6 (February 16th - February 22th)
Week 7 (February 23rd - march 01st)
Références
- RobAIR
- [8]
- https://launchpadlibrarian.net/186124315/release.txt
- EXEMPLE_LED
- [9]STM32L1
- http://air.imag.fr/index.php/Int%C3%A9gration_d%27Espruino_%C3%A0_RIOT_OS
- http://www.ros.org/
- http://wiki.ros.org/ROS/Tutorials/WritingPublisherSubscriber%28c%2B%2B%29 (c++)
- http://wiki.ros.org/ROS/Tutorials/WritingPublisherSubscriber%28python%29 (python)