Table des matières:
Vidéo: Localino suit le Roomba IRobot, cartographie l'environnement et permet le contrôle : 4 étapes
2024 Auteur: John Day | [email protected]. Dernière modifié: 2024-01-30 09:09
Afin de construire le pont WiFi-UART, vous pouvez consulter ce référentiel github:
Il a une bonne base pour commencer. Assurez-vous de bien lire la directive, car le Roomba VCC pendant la charge augmente jusqu'à 20 Volts ! Si vous ajoutez un ESP8266 sans convertisseur buck approprié qui fonctionne même jusqu'à 20V et down-convertit à 3,3V, vous endommagerez votre ESP.
Assurez-vous également d'utiliser un décaleur de niveau (par exemple en utilisant un diviseur de tension) pour décaler les niveaux logiques 5V UART du Roomba à 3,3V, qui sont utilisés par l'ESP.
Un autre détail important est que le convertisseur abaisseur doit avoir 300mA, mais beaucoup moins ou beaucoup plus (selon le convertisseur abaisseur lui-même). Il y en a qui peuvent faire beaucoup plus de courant, mais font planter le Roomba car ils consomment trop de courant au démarrage. Nous avons découvert que le régulateur de tension abaisseur Pololu 3.3V, 300mA (D24V3F3) fonctionne parfaitement. Les versions alternatives qui ont 500mA / 600mA ont causé le crash de l'interface Roomba UART. Fondamentalement, le Roomba réagissait à la pression d'un bouton, mais pas aux commandes via l'interface UART. Une fois que cela s'est produit, nous avons dû retirer la batterie du Roomba et redémarrer à froid le Roomba avec le pont WiFi-UART connecté. Cependant, seul le D24V3F3 fonctionnait bien.
Mis à part ce détail technique, vous devez ajouter des commandes supplémentaires au code, que vous pouvez trouver dans les spécifications de l'interface ouverte Roomba. Vous devrez ajouter toutes les commandes auxquelles vous souhaitez que votre roomba réagisse (par exemple, reculer, avancer, vitesse, etc.).
exemples dans l'IDE Arduino:
void goForward() { car c = {137, 0x00, 0xc8, 0x80, 0x00}; // 0x00c8 == 200 Serial.print(c); }
void goBackward() { char c = {137, 0xff, 0x38, 0x80, 0x00}; // 0xff38 == -200 Serial.print(c); }
void spinLeft() { char c = {137, 0x00, 0xc8, 0x00, 0x01}; Serial.print(c); }
void spinRight() { char c = {137, 0x00, 0xc8, 0xff, 0xff}; Serial.print(c); }
si vous écrivez en lua, cela semble un peu différent, un exemple de virage à GAUCHE ressemblerait à ceci:
if(_GET.pin == "LEFT") then print ('\137'); --VOR
tmr.delay(100);
imprimer ('\00'); -- Vitesse = 200 = 0x00C8 -> 0 et 200
tmr.delay(100);
imprimer ('\200'); -- Rapidité
tmr.delay(100);
imprimer ('\254'); -- Rayon = 500 = 0x01F4 = 0x01 0xF4 = 1 244
tmr.delay(100);
print ('\12'); -- Tourner
finir
Assurez-vous que vous devez corriger la description de l'interface ouverte pour votre Roomba. Il existe au moins deux spécifications d'interface ouverte disponibles.
pour la série Roomba 5xx:
pour la série Roomba 6xx:
Une fois que vous avez construit votre pont WiFi-UART et testé les commandes, vous avez fait un grand pas en avant. Cette vidéo montre que l'application et l'approche fonctionnent. Nous étions un peu paresseux, il manque toutes les autres commandes de contrôle à l'interface Web, comme avancer, reculer, vitesse, droite, gauche, etc., mais vous pouvez émettre les commandes via http. Quoi qu'il en soit, ce n'est qu'une démonstration que la télécommande du Roomba fonctionne avec un matériel et un logiciel simples utilisant un ESP8266.
Maintenant que vous pouvez contrôler votre Roomba à distance depuis une application PC, il ne manque plus que la localisation en intérieur. Nous en avons besoin pour fermer la boucle de rétroaction, car notre objectif était de diriger le robot dans une certaine direction. Faisons cela.
Étape 3: Configurez votre système de localisation intérieur
Pour fermer la boucle de rétroaction, nous utilisons un système de localisation intérieur. Nous utilisons Localino pour cela. Le système Localino se compose d'"ancres" et de "tags". Les ancrages sont positionnés à des endroits fixes à l'intérieur de la pièce et localisent la position de la balise mobile (qui est placée sur le Roomba). Le traitement de la localisation est effectué dans une application PC. C'est un grand avantage, car vous pouvez également contrôler le Roomba depuis le même PC ! Il existe un code source gratuit disponible sur le site Web de Localino, il est écrit en python et il existe également un flux en temps réel disponible qui offre les coordonnées XYZ de la balise. Le flux de données est disponible via le réseau UDP, mais vous pouvez également ajouter MQTT ou tout autre élément de fantaisie que vous aimez. Si vous connaissez Python, il existe des tas de bibliothèques qui vous aident.
Dans cette vidéo, la localisation du Roomba est démontrée. Par conséquent, nous avons installé 4 ancrages dans la pièce à des emplacements fixes, qui permettent le positionnement 3D du Roomba. En général, nous n'aurions besoin que de 3 ancres, car le Roomba ne bougera probablement pas dans l'axe Z, donc la 2D serait suffisante. Mais parce que les ancres sont situées à la hauteur des prises principales CA (qui est à environ 30 cm au-dessus du sol), une configuration 2D entraînerait peu d'erreurs d'estimation de position. Nous avons donc décidé d'avoir 4 ancres et de localiser en 3D.
Maintenant que nous avons la position du Roomba, notre prochaine étape consiste à contrôler le Roomba à partir de la même application. L'idée est d'utiliser la vérité terrain et d'estimer un chemin de nettoyage parfait pour le robot. Avec l'utilisation du Localino, nous pouvons fermer la boucle de rétroaction et contrôler le robot depuis l'application PC.
Remarques sur la configuration
Positionnez les ancres Localino à l'intérieur de la pièce à différentes positions x, y et trois d'entre elles à la même position z. Positionnez un ancrage sur quatre à une hauteur z différente par pièce. Assurez-vous qu'il y a une bonne couverture de la balise Localino, qui se déplacera avec le Roomba.
Toutes les ancres ont un identifiant d'ancre unique, qui est affiché sur le code-barres du Localino et peut être lu avec l'outil de « configuration localino ».
Notez les positions en X, Y, Z et les identifiants d'ancrage. Ceci est requis pour le logiciel du processeur Localino et doit être adapté dans le fichier « localino.ini » dans le dossier « LocalinoProcessor »
Les ancrages doivent pointer vers le haut ou vers le bas en Z (lorsque la zone XY est couverte), mais pas en direction de la zone couverte. Les ancres ne doivent pas non plus être recouvertes de métal ou de tout autre matériau perturbant le signal sans fil. Si cela n'est pas possible, il doit également y avoir un certain espace d'air entre tout matériau et l'ancrage.
…plus à venir.
Étape 4: Adaptez le logiciel Python
restez à l'écoute. plus à venir.
Conseillé:
Conseils de cartographie : 3 étapes
Conseils de cartographie : Quelle que soit votre activité, que ce soit la marche, la randonnée, le vélo ou même la conduite, vous pouvez enregistrer les itinéraires que vous empruntez. Ensuite, vous pouvez partager ces itinéraires avec vos amis et votre famille. De plus, vous pouvez utiliser l'itinéraire enregistré pour ajouter des emplacements à toutes les photos que vous pouvez h
Permet de réparer un Fitbit Charge 2 ensemble. Lignes à l'écran : 3 étapes
Permet de réparer un Fitbit Charge 2 ensemble. Lignes à l'écran.: Donc, environ 13 supports après l'achat de mon premier Fitbit, j'ai commencé à obtenir des lignes qui traversaient l'écran. Chaque jour, un autre se présentait parfois plus d'un par jour. J'ai très bien pris soin de mon Fitbit, pensai-je et je ne savais pas pourquoi cela avait commencé. une fois que
Scanner 3D de base pour la cartographie numérique 3D : 5 étapes
Scanner 3D de base pour la cartographie 3D numérique : Dans ce projet, je décrirai et expliquerai les fondements de base de la numérisation et de la reconstruction 3D appliquées principalement à la numérisation de petits objets semi-plans, et dont le fonctionnement peut être étendu aux systèmes de numérisation et de reconstruction qui peuvent b
Le Mappifier - Cartographie + Système de Notification : 9 Étapes
Le Mappifier - Mapping + Notification System : La conduite de nuit est très amusante. Mais souvent, cela s'avère être un cauchemar, sous la forme d'animaux traversant la route (surtout ces chats et chiens errants, qui attendent que vous conduisiez près d'eux pour qu'ils puissent traverser !!). Alors j'ai pensé à faire ainsi
Alerte précoce Raspberry PI Runway Light utilisant les données de cartographie de vol : 14 étapes (avec photos)
Alerte précoce Raspberry PI Runway Light utilisant les données de cartographie de vol : Cette lampe est née de plusieurs raisons en ce que je suis toujours intéressé par les avions qui survolent et pendant l'été le week-end, il y en a souvent des assez excitants qui volent. Bien que vous n'ayez tendance à les entendre qu'au fur et à mesure qu'ils passent