Kit de robot de navigation intérieure intelligente pour projets Arduino
Composants et fournitures
| Kit châssis robot intelligent avec boîte à piles, encodeur de vitesse pour Arduino | ×1 |
| Oblu - IMU open-source pour navigation piétonne intérieure | ×1 |
| Plaque d'essai sans soudure (demi-taille) | ×1 |
| Fils de connexion mâle/femelle | ×1 |
| Condensateur 1000 µF | ×2 |
| Double pont en H L293D (Texas Instruments) | ×1 |
| Arduino Mega 2560 | ×1 |
| Piles AA Ni-MH 2800 mAh rechargeables | ×1 |
Outils et machines nécessaires
- Fer à souder (générique)
Applications et services en ligne
- Arduino IDE
- Xoblu (application Android pour suivi en temps réel)
À propos du projet
Notre histoire
Ce projet vise à faire déplacer un robot le long d'un parcours pré-défini avec précision, sans utiliser de GPS, Wi-Fi, Bluetooth pour le positionnement, ni même de carte ou plan du bâtiment. Le robot dessine son trajet réel (à l'échelle) en temps réel. Le Bluetooth sert uniquement à transmettre les informations de localisation en temps réel, remplaçant ainsi une liaison filaire.
L'histoire en coulisses
Nous recherchions une solution robuste pour la navigation intérieure de notre robot basé sur Arduino. Lors du choix du capteur de mouvement adapté, nous avons envisagé l'Oblu (IMU open-source). Son faible coût et sa nature open-source en faisaient un candidat prometteur. Le programme open-source de l'Oblu est conçu pour la navigation piétonne par reckoning (PDR) avec capteur monté au pied. Ses performances en navigation intérieure sont impressionnantes. Un atout majeur : l'application Android gratuite Xoblu pour le suivi de position en temps réel. Cependant, nous ne savions pas comment exploiter son algorithme de navigation piétonne basé sur le modèle de marche humaine.
Les calculs internes de l'Oblu reposent sur la marche humaine. Il fournit le déplacement entre deux pas successifs et le changement de cap. Lorsque le pied touche le sol, la vitesse de la semelle est nulle (arrêt momentané). L'Oblu détecte ainsi les « pas » et corrige certaines erreurs internes. Cette correction fréquente d'erreurs assure un excellent suivi. L'idée clé : et si notre robot marchait de la même façon — avancer, s'arrêter, avancer, s'arrêter…
Nous avons opté pour l'Oblu et avons rapidement assemblé notre robot et le système de suivi. La suite en vidéo…
Comment ça fonctionne
Le robot suit un parcours pré-programmé et transmet (via Bluetooth) ses informations de mouvement réelles à un téléphone pour un suivi en temps réel.
L'Arduino est pré-programmé avec le parcours et l'Oblu sert à détecter le mouvement du robot. L'Oblu transmet les informations de mouvement à l'Arduino à intervalles réguliers. En fonction de ces données, l'Arduino contrôle le mouvement des roues pour que le robot suive le parcours prédéfini.
Le parcours du robot est programmé comme un ensemble de segments de ligne droite. Chaque segment est défini par sa longueur et son orientation par rapport au précédent. Le mouvement du robot est maintenu discret : il avance en ligne droite, mais par segments plus petits (appelons-les « enjambées » pour simplifier). À la fin de chaque enjambée, l'Oblu transmet la longueur de l'enjambée et l'écart d'orientation (changement de cap) par rapport à la ligne droite, à l'Arduino. Ce dernier corrige l'alignement du robot à chaque pas s'il détecte un écart par rapport à la ligne droite programmée.
Selon le programme, le robot doit toujours avancer en ligne droite. Cependant, il peut dévier en raison de non-idéalités : surface inégale, déséquilibre de masse dans l'assemblage, déséquilibre architectural ou électrique des moteurs CC, ou orientation aléatoire de la roue libre avant. Faire un pas… corriger le cap… avancer. Le robot recule également s'il parcourt plus que la longueur programmée pour ce segment.
La longueur de l'enjambée suivante dépend de la distance restante à parcourir pour ce segment. Le robot fait de grandes enjambées quand la distance est grande, et de petites enjambées à l'approche de la destination (fin du segment).
L'IMU Oblu transmet les données à l'Arduino et au téléphone (via Bluetooth) simultanément. Xoblu (l'application Android) effectue des calculs simples pour reconstruire le parcours à partir des informations de mouvement reçues, permettant le suivi en temps réel sur le téléphone.
En résumé, l'Oblu détecte le mouvement et communique les informations de déplacement à l'Arduino et au téléphone à intervalles réguliers. En fonction du parcours programmé et des informations de mouvement (envoyées par l'Oblu), l'Arduino contrôle le mouvement des roues. Le mouvement du robot n'est PAS contrôlé à distance, sauf pour les commandes de démarrage/arrêt.
Modélisation du parcours
Le robot est optimalement contrôlé s'il avance uniquement en segments de ligne droite. Le parcours doit donc d'abord être modélisé comme un ensemble de segments de ligne droite. Les images ci-dessous montrent quelques exemples de parcours et leur représentation en termes de déplacement et d'orientation. C'est ainsi que le parcours est programmé dans l'Arduino.
Tout parcours composé de segments de ligne droite peut être défini et programmé de cette manière dans l'Arduino.
Assemblage du circuit
Reportez-vous à la section matériel pour les connexions électriques entre Arduino, Oblu, pilote de moteur et pack de batteries.
Protocole de communication :
- Étape 1 : Xoblu envoie une commande START à l'Oblu
- Étape 2 : L'Oblu accuse réception en envoyant un ACK approprié à Xoblu
- Étape 3 : L'Oblu envoie un paquet DATA contenant les informations de déplacement et d'orientation pour chaque enjambée, à chaque pas, à Xoblu (pas = détection de vitesse nulle ou d'arrêt).
- Étape 4 : Xoblu accuse réception du dernier paquet DATA en envoyant un ACK approprié à l'Oblu. (Le cycle des étapes 3 et 4 se répète jusqu'à ce que Xoblu envoie STOP. À la réception de STOP, l'Oblu exécute l'étape 5)
- Étape 5 : STOP — (i) Arrêt du traitement dans l'Oblu (ii) Arrêt de toutes les sorties de l'Oblu
Consultez la note d'application de l'Oblu pour les détails sur START, ACK, DATA et STOP.
Comment fonctionne l'IMU Oblu (optionnel)
Quelques références sur l'Oblu et le principe de base des capteurs PDR montés au pied :
- Le code source disponible de l'Oblu cible la navigation monté au pied et est optimisé pour cela. Une vidéo couvre son principe de base.
- Articles simples sur les capteurs PDR montés au pied : « Track my steps » et « Continue tracking my steps ».
- Document de référence sur le reckoning piétonnier avec capteurs au pied.
- Vidéo de présentation de l'Oblu.
Vos commentaires, suggestions et retours sont les bienvenus !
Meilleures salutations !
Code
Robot basé sur Arduino
Le robot suit un parcours pré-programmé et transmet ses coordonnées actuelles à un téléphone pour un suivi en temps réel.
https://github.com/vijkumsha/oblu_Robot
Schémas

Processus de fabrication
- Construire un robot Raspberry Pi piloté par Bluetooth avec retour audio
- Simple Pi Robot – Construire un rover autonome 2 roues motrices avec Raspberry Pi
- Robot Évitement d'Obstacles Piloté par Servomoteur : Construction avec Arduino et HC-SR04
- Joy Robot : Robot Humanoïde Intelligent Arduino/ESP8266 pour Hôpitaux Pédiatriques
- Créez un robot suiveur de ligne autonome avec Arduino UNO
- Robot commandé par la voix avec Arduino Nano et Bluetooth
- PiBot : Robot pianiste Arduino pour performance musicale de précision
- Kit de Formation Arduino Complet : Mega 2560, Capteurs, Moteurs et PCB Personnalisé
- Robot Assistant Domestique Autonome : Liste Complète et Guide de Configuration