L'idée est toujours la même : réaliser un robot Wifi équipé d'une camera et piloté à distance depuis un PC ou un téléphone mobile.

Cette fois le châssis à été fourni par la société wifibot qui conçoit des châssis de robots tous terrain.
Cela me permet de me concentrer sur l'intégration des modules (wifi/camera/µC/contrôleurs...) et le développement logiciel (contrôle, IA, asservissement...).

Description général :


Toujours architecturé autour d'une Foxboard, le module wifi est remplacé par un module Wiligear WBD500 et le contrôleur de servos par un Lynxmotion SSC32. Le Châssis est équipé de 4 moteurs avec encodeurs en quadrature ainsi que d'un circuit contrôleur piloté en I2C. Pour assister l'asservissement en direction, un compas électronique Ocean Server OS5000 vient s'ajouter.
La webcam reste une hercule deluxe dont l'objectif à été changé (par un 135 degrés). La tête Pan/Tilt reste la même et une led luxeon produit assez de lumière afin de voir dans le noir avec la webcam. Leds pilotées par un circuit de relais pilotés.

Voici un petit gribouillis schématisant tout ce beau monde :


Applications


Ce robot reprend les applications réalisées par les précédentes versions, à savoir :
Mais ouvre aussi de nouvelles applications comme :
  • Le suivis et la génération de trajectoires.
  • Les applications de platooning.
  • La modélisation d'environnement.


Programmation


Qui dit nouveau robot dit nouveaux programmes (clients et serveur).
Une fois n'est pas coutume, je ne distribuerai ni sources ni binaires des programmes développés.


Trois programmes tournent en parallèle sur le robot.
  • Un serveur de streaming vidéo (le même que sur les précédentes versions).
  • Un serveur permettant de piloter la tête de la camera ainsi que les leds.
  • Le programme de navigation du robot. Il pilote les moteurs, calcule les trajectoires, fait la détection d'obstacles, cartographie l'environnement...
Tous ces programmes sont codé en C, sont multiplateformes et sont embarqué dans le robot.
De l'autre coté d'autres programmes (codé en java) permettent de piloter et de récupérer les informations du robot. Ainsi il est possible de piloter le robot depuis un PC ou depuis un téléphone mobile (ou tout autre périphérique programmable équipé de wifi).


Projet


Cette liste décrit brièvement le temps passé sur chaque étapes de conception.
  • Conception (Choix technologiques): 2 semaines.
  • Prise en main du châssis : 1 jour.
  • Développement asservissement + navigation odometrie : 8 jours.
  • Développement communication réseau : 2 jours.
  • Développement intégration boussole : 2 jours.
  • Développement contrôle manuel (serveur + client) : 2 jours.
  • Développement Contrôle camera : 1 jour.
  • Portage linux (foxboard) : 3 jours.
  • Assemblage robot : 4 jours.
  • Tests et calibration : 9 jours.
Temps total entre "Ah tien, si je montais un nouveau robot" et "cool, il marche" : 3 mois.
Cela dit la détection et l'évitement d'obstacles n'a pas encore été intégrée.

Merci à la société R&D Tech France qui exploite maintenant le robot pour réaliser des démonstrations de ses produits.


Photos

(Les vidéos sont après)





Vidéos

Contrôle depuis un téléphone mobile avec affichage vidéo sur PC.



Pilotage au manuel avec navigation au compas + odometrie



Génération et suivis de trajectoire. (Premier Test).



Génération et suivis de trajectoire avec vue embarquée. (Les vibrations perturbent le compas...) : Précision de 50cm sur 20m



Génération et suivis de trajectoire (Les vibrations perturbent le compas...) : Précision de 20cm sur 20m



Prochaines vidéos : génération de trajectoires avec évitement d'obstacles...