Obsah:

Localino sleduje Roomba IRobot, mapuje prostredie a umožňuje ovládanie .: 4 kroky
Localino sleduje Roomba IRobot, mapuje prostredie a umožňuje ovládanie .: 4 kroky

Video: Localino sleduje Roomba IRobot, mapuje prostredie a umožňuje ovládanie .: 4 kroky

Video: Localino sleduje Roomba IRobot, mapuje prostredie a umožňuje ovládanie .: 4 kroky
Video: Philosophy, Free Will, Human AI Clones | Daniel Dennett 2024, November
Anonim
Image
Image

Ak chcete postaviť most WiFi-UART, môžete sa pozrieť na toto repo servera github:

Na začiatok to má pekný základ. Uistite sa, že ste si dobre prečítali pokyny, pretože Roomba VCC sa počas nabíjania zvyšuje až na 20 voltov! Ak pridáte ESP8266 bez riadneho prevodníka buck, ktorý funguje dokonca až do 20 V a down-konvertuje na 3,3 V, poškodíte svoje ESP.

Nezabudnite tiež použiť radič úrovní (napr. Pomocou deliča napätia) na posunutie 5V logických úrovní UART z robota Roomba na 3,3 V, ktoré používa ESP.

Ďalším dôležitým detailom je, že prevodník buck by mal mať 300 mA, ale oveľa menej alebo oveľa viac (v závislosti od samotného prevodníka buck). Existujú niektoré, ktoré môžu robiť oveľa viac prúdu, ale spôsobujú poruchu robota Roomba, pretože pri spustení odoberajú príliš veľa prúdu. Zistili sme, že Pololu 3,3 V, 300 mA regulátor napätia (D24V3F3) funguje perfektne. Alternatívne verzie, ktoré majú 500mA / 600mA, spôsobili zlyhanie rozhrania Roomba UART. Roomba v zásade reagovala na stlačenie tlačidla, ale nie na príkazy cez rozhranie UART. Akonáhle sa to stalo, museli sme vybrať batériu Roomba a reštartovať Roombu za studena s pripojeným mostíkom WiFi-UART. Dobre však fungoval iba D24V3F3.

Okrem týchto technických podrobností musíte do kódu pridať ďalšie príkazy, ktoré nájdete v špecifikáciách otvoreného rozhrania Roomba. Budete musieť pridať všetky príkazy, na ktoré chcete, aby váš robot Roomba reagoval (napríklad dozadu, dopredu, rýchlosť atď.).

príklady v arduino IDE:

void goForward () {char c = {137, 0x00, 0xc8, 0x80, 0x00}; // 0x00c8 == 200 Serial.print (c); }

neplatné goBackward () {char c = {137, 0xff, 0x38, 0x80, 0x00}; // 0xff38 == -200 Serial.print (c); }

neplatný spinLeft () {char c = {137, 0x00, 0xc8, 0x00, 0x01}; Serial.print (c); }

neplatné spinRight () {char c = {137, 0x00, 0xc8, 0xff, 0xff}; Serial.print (c); }

Ak píšete lua, vyzerá to trochu inak, príklad ľavého odbočenia by vyzeral takto:

if (_GET.pin == "LEFT") then print ('\ 137'); --VOR

tmr.zdržanie (100);

tlač ('\ 00'); -Rýchlosť = 200 = 0x00C8 -> 0 a 200

tmr.zdržanie (100);

tlač ('\ 200'); - Rýchlosť

tmr.zdržanie (100);

tlač ('\ 254'); - Polomer = 500 = 0x01F4 = 0x01 0xF4 = 1 244

tmr.zdržanie (100);

tlač ('\ 12'); - Otoč sa

koniec

Uistite sa, že ste opravili popis otvoreného rozhrania pre svoju Roomba. K dispozícii sú najmenej dve špecifikácie otvoreného rozhrania.

pre sériu Roomba 5xx:

pre sériu Roomba 6xx:

Akonáhle postavíte svoj most WiFi-UART a vyskúšate si príkazy, urobili ste veľký krok ďalej. Toto video ukazuje, že aplikácia a prístup fungujú. Boli sme trochu leniví, vo webovom rozhraní chýbajú všetky ostatné ovládacie príkazy, ako napríklad dopredu, dozadu, rýchlosť, doprava, doľava a podobne, ale príkazy môžete zadávať prostredníctvom http. Každopádne je to len ukážka toho, že diaľkové ovládanie Roomba funguje s jednoduchým hardvérom a softvérom pomocou ESP8266.

Teraz, keď môžete Roombu ovládať na diaľku z PC aplikácie, chýba už len vnútorná lokalizácia. Potrebujeme to na uzavretie slučky spätnej väzby, pretože naším cieľom bolo nasmerovať robota do určitého smeru. Poďme to spraviť.

Krok 3: Nastavte svoj vnútorný lokalizačný systém

Na uzatvorenie spätnej väzby používame vnútorný lokalizačný systém. Na to používame Localino. Systém Localino sa skladá z „kotiev“a „značiek“. Kotvy sú umiestnené na pevných miestach vo vnútri miestnosti a lokalizujú polohu pohyblivého štítku (ktorý je umiestnený na robote Roomba). Spracovanie polohy sa vykonáva v počítačovej aplikácii. To je veľká výhoda, pretože Roombu môžete ovládať aj z rovnakého počítača! Na webovej stránke Localino je k dispozícii bezplatný zdrojový kód, je napísaný v jazyku Python a je k dispozícii aj stream v reálnom čase, ktorý ponúka súradnice XYZ značky. Dátový tok je k dispozícii prostredníctvom siete UDP, ale môžete tiež pridať MQTT alebo akékoľvek iné obľúbené položky, ktoré sa vám páčia. Ak poznáte Python, existuje veľa knižníc, ktoré vám pomôžu.

V tomto videu je demonštrovaná lokalizácia robota Roomba. Preto máme v miestnosti na pevných miestach nainštalované 4 kotvy, ktoré umožňujú 3D polohovanie Roomby. Vo všeobecnosti by sme požadovali iba 3 kotvy, pretože Roomba sa pravdepodobne nebude pohybovať v osi Z, preto by stačilo 2D. Pretože sú však kotvy umiestnené vo výške hlavných konektorov striedavého prúdu (čo je približne 30 cm nad zemou), 2D nastavenie by spôsobilo malé chyby pri odhadovaní polohy. Preto sme sa rozhodli mať 4 kotvy a lokalizovať v 3D.

Keď už máme pozíciu robota Roomba, ďalším krokom je ovládanie robota Roomba z tej istej aplikácie. Cieľom je použiť základnú pravdu a odhadnúť perfektnú čistiacu cestu pre robota. Použitím Localina môžeme uzavrieť spätnoväzbovú slučku a ovládať robota z PC aplikácie.

Poznámky k inštalácii

Umiestnite kotvy Localino do miestnosti v rôznych polohách x, y a tri z nich v rovnakej polohe z. Umiestnite jednu zo štyroch kotiev do inej výšky z na izbu. Zaistite dobré pokrytie zo značky Localino, ktorá sa bude pohybovať spolu s robotom Roomba.

Všetky kotvy majú jedinečné ID ukotvenia, ktoré je zobrazené na čiarovom kóde Localino a je možné ho načítať pomocou nástroja „konfigurácia localino“.

Poznamenajte si polohy v X, Y, Z a ID kotvy. Vyžaduje sa to pre procesorový softvér Localino a musí sa prispôsobiť v súbore „localino.ini“v priečinku „LocalinoProcessor“

Kotvy by mali smerovať nahor alebo nadol v Z (keď je oblasť XY zakrytá), ale nie v smere krytej oblasti. Kotvy by tiež nemali byť zakryté kovom alebo iným materiálom, ktorý ruší bezdrôtový signál. Ak to nie je možné, medzi akýmkoľvek materiálom a kotvou by mala byť aj určitá vzduchová medzera.

…čaká nás viac.

Krok 4: Prispôsobte softvér Python

Zostaňte naladení. čaká nás viac.

Odporúča: