Android aplikace RoboNav
Napsal: 04 pro 2017, 14:09
Ahoj. Zajímají mě možnosti využití chytrých mobilů pro hobby robotiku, tak jsem si pro svoje potřeby napsal Android aplikaci RoboNav (s využitím knihoven OpenCv a BlueTerm). Jde o využití "senzorů" integrovaných ve smartphonu (kamera, GPS, kompas) pro vyšší úroveň řízení mobilního robota (GPS navigace podle mapy, vizuální navigace podle obrazu z kamery, komunikace s robotem pomocí bluetooth). Aplikaci jsem dotáhnul do použitelného stavu a používám ji už od roku 2014 pro navigaci svých robotů na soutěžích Robotem rovně, Roboorienteering a Robotour. Výsledky jsou solidní (i když nijak oslnivé) a myslím, že má smysl to rozvíjet dál. Navíc mne zajímá umělá inteligence a v nejbližší době bych ji chtěl zkoumat a ověřovat právě v příští verzi mojí aplikace RoboNav.
Budu rád, pokud aplikaci vyzkouší další hobby robotici a pošlou mi svoje náměty a připomínky pro další vývoj. Zdrojový kód RoboNavu je volně dostupný na https://github.com/alesholub/RoboNav (pro vývojové prostředí Eclipse). Na zkoušení ale stačí i jen samotný výsledný APK soubor na adrese https://github.com/alesholub/RoboNav/ra ... oboNav.apk (pro instalaci je třeba mít v mobilu povolenu instalaci z neznámých zdrojů a také je třeba si nejprve z Google Play nainstalovat aplikaci OpenCv Manager). Můj proprietární způsob obousměrné komunikace je popsán v dokumentaci aplikace, ale pro základní vyzkoušení nepotřebujete ani žádného robota, protože aplikace svojí navigaci zobrazuje a píše i "říká" povely, které se snaží posílat robotovi.
Screenshot z aplikace Robonav:
Video ukázka navigace RoboNavu je na adrese https://youtu.be/K4NAOucGbWQ (stejná jízda zachycená kamerou mimo robota je na adrese https://youtu.be/uGqbYSZYkg8 ).
Protože v programování Androidu jsem samouk, tak kód aplikace je bohužel dost nepřehledný a rozhodně není optimální. Uvítám parťáka, který by chtěl se mnou spolupracovat na vývoji RoboNavu. I tady na fóru se chci ostatních zeptat, jak to udělat, aby RoboNav byl univerzálnější (uměl komunikovat s různými "bluetooth enabled" roboty), srozumitelnější (měl jasnější uživatelské rozhraní), spolehlivější (uměl lépe analyzovat obraz z kamery a sloučit všechny dostupné informace do řídicích příkazů) a chytřejší (aby se mohl sám učit a zdokonalovat, např. v oblasti segmentace obrazu, nebo třeba při volbě vhodné soutěžní strategie).
Ohledně univerzálnosti RoboNavu mi připadá důležité mít jasné komunikační rozhraní mezi mobilem a robotem. V RoboNavu mám teď "zadrátováno" svoje vlastní rozhraní (kterému lze přizpůsobit vašeho robota) ale rád bych ho měl obecnější. Pro začátek se tedy tady na fóru ptám. Jak doporučujete definovat a udělat bluetooth komunikační rozhraní, aby se dalo přizpůsobit většině robotů (ovladatelných přes bluetooth)?
Případně se tady zeptejte na cokoliv souvisejícího s RoboNavem, nebo sem pošlete libovolné připomínky k mé aplikaci.
Aleš H.
P.S.: Právě tato aplikace by měla být mým hlavním příspěvkem do případné (virtuální) týmové spolupráce na vývoji soutěžního mobilního robota (o této spolupráci jsem před pár dny založil jiné téma na tomto fóru). Aplikaci ale samozřejmě můžete použít i pro svoje vlastní potřeby (roboty) a můžete ji i sami podle svého uvážení libovolně upravovat (mám na ní MIT licenci, kterou považuji téměř za freeware).
Budu rád, pokud aplikaci vyzkouší další hobby robotici a pošlou mi svoje náměty a připomínky pro další vývoj. Zdrojový kód RoboNavu je volně dostupný na https://github.com/alesholub/RoboNav (pro vývojové prostředí Eclipse). Na zkoušení ale stačí i jen samotný výsledný APK soubor na adrese https://github.com/alesholub/RoboNav/ra ... oboNav.apk (pro instalaci je třeba mít v mobilu povolenu instalaci z neznámých zdrojů a také je třeba si nejprve z Google Play nainstalovat aplikaci OpenCv Manager). Můj proprietární způsob obousměrné komunikace je popsán v dokumentaci aplikace, ale pro základní vyzkoušení nepotřebujete ani žádného robota, protože aplikace svojí navigaci zobrazuje a píše i "říká" povely, které se snaží posílat robotovi.
Screenshot z aplikace Robonav:
Video ukázka navigace RoboNavu je na adrese https://youtu.be/K4NAOucGbWQ (stejná jízda zachycená kamerou mimo robota je na adrese https://youtu.be/uGqbYSZYkg8 ).
Protože v programování Androidu jsem samouk, tak kód aplikace je bohužel dost nepřehledný a rozhodně není optimální. Uvítám parťáka, který by chtěl se mnou spolupracovat na vývoji RoboNavu. I tady na fóru se chci ostatních zeptat, jak to udělat, aby RoboNav byl univerzálnější (uměl komunikovat s různými "bluetooth enabled" roboty), srozumitelnější (měl jasnější uživatelské rozhraní), spolehlivější (uměl lépe analyzovat obraz z kamery a sloučit všechny dostupné informace do řídicích příkazů) a chytřejší (aby se mohl sám učit a zdokonalovat, např. v oblasti segmentace obrazu, nebo třeba při volbě vhodné soutěžní strategie).
Ohledně univerzálnosti RoboNavu mi připadá důležité mít jasné komunikační rozhraní mezi mobilem a robotem. V RoboNavu mám teď "zadrátováno" svoje vlastní rozhraní (kterému lze přizpůsobit vašeho robota) ale rád bych ho měl obecnější. Pro začátek se tedy tady na fóru ptám. Jak doporučujete definovat a udělat bluetooth komunikační rozhraní, aby se dalo přizpůsobit většině robotů (ovladatelných přes bluetooth)?
Případně se tady zeptejte na cokoliv souvisejícího s RoboNavem, nebo sem pošlete libovolné připomínky k mé aplikaci.
Aleš H.
P.S.: Právě tato aplikace by měla být mým hlavním příspěvkem do případné (virtuální) týmové spolupráce na vývoji soutěžního mobilního robota (o této spolupráci jsem před pár dny založil jiné téma na tomto fóru). Aplikaci ale samozřejmě můžete použít i pro svoje vlastní potřeby (roboty) a můžete ji i sami podle svého uvážení libovolně upravovat (mám na ní MIT licenci, kterou považuji téměř za freeware).