Zásady pro autonomní mobilní robotiku

Chcete si postavit robota, ale tak nějak nevíte kudy do toho?
Uživatelský avatar
jrt
Příspěvky: 1921
Registrován: 17 úno 2013, 17:13

Re: Zásady pro autonomní mobilní robotiku

Příspěvek od jrt »

gilhad píše:... s cílem vytvořit neodpálitelný můstek - tedy spíš systém řízení, který ho nenechá překročit bezpečné parametry...
V době, kdy spousta firem nabízí nezničitelné "automotive" drivery a celé H-můstky je snad až zbytečné pokoušet se vytvořit nějakou vlastní originální konstrukci. Myslím, že je lepší použít už osvědčené řešení a napřít svou invenci na méně triviální problémy.
jrt
AlesH
Příspěvky: 323
Registrován: 25 úno 2013, 09:18

Re: Zásady pro autonomní mobilní robotiku

Příspěvek od AlesH »

Díky za další bezva čtení, náměty i otázky. Je vidět, jak je hobby robotika různorodá. Ještě nevím, jak si to všechno utřídit, takže můj dnešní příspěvek bude asi trochu nesourodý. Pardon.

Obdivuji Bedřichův poctivý a profesionální přístup i Martinův směr k jednoduchosti a efektivitě. Obojí určitě doporučuji i ostatním, ale každý si musí najít svoji cestu a i já se musím vypořádat se svojí pohodlností (leností) a nešikovností.

Plně souhlasím s postupem po krocích. Také jsem prošel od PICAXE a nepájivého pole, přes Arduino a univerzální plošný spoj, až k ArduPilotu a Androidu. Vyzkoušel jsem toho dost, ale u některých věcí jsem prostě zjistil, že mi nejdou (například mechanika a speciální elektronika). Nelámal jsem to přes koleno a rozhodl jsem se nakupovat to, co neumím postavit a soustředit se na to, co mi jde a co mne nejvíc baví (to je programování). Jiným možným přístupem ke specializaci je práce v týmu. Pokud se chcete věnovat jen určité části robotiky, přidejte se ke skupině, kde ostatní členové budou dobře dělat to, co vy nechcete nebo neumíte. Navíc se i naučíte spolupracovat, což se vždycky hodí.

Souhlasím i s tím, že je velmi důležitá i otázka motivace (proč vlastně hobby robotiku dělat). Podle mne je to hodně individuální. Osobně se chci hobby robotikou hlavně bavit, vzdělávat a chápat moderní technologie. Dlouhodobějším směrem je umělá inteligence a příprava na neodvratnou technologickou Singularitu :)

Jaký podvozek na venek? Podle mne by to měla být zmenšenina nejpoužívanějšího "velkého" řešení a tím je terénní automobil. Proto se domnívám, že optimální je postavit, nebo koupit (a upravit) RC terénní autíčko (buď modelářské v měřítku 1:8 a větší, nebo dětské elektrické autíčko s rodičovským ovládáním [to je mnou zvolené řešení]). Faktem ale je, že poslední RoboTour vyhrál tým Kamaro Engineering, jehož podvozek měl samostatně řiditelné každé ze čtyř kol. Naopak třeba robotický klub Mariánské lázně, který letos vyhrál a excelentně jezdil na Roboorienteringu, používá čtyřkolový, ale diferenciálně řízený podvozek (podobný podvozek používal i tým LEE, který dvakrát vyhrál RoboTour). Použitelných řešení je tedy zřejmě více a člověk se musí rozhodnout spíš podle toho, co je mu bližší a co dokáže snáze získat nebo postavit.

Ještě tu vyjádřím svoji podporu konceptu logického oddělení podvozku (s jasně definovaným rozhraním) a vyššího řídicího systému (s modulárním SW). To skutečně umožňuje vyvíjet obě části relativně nezávisle a např, "recyklovat" jeden řídicí systém pro více různých podvozků. Sám se tento koncept teď pokouším ověřovat tím, že jsem přestavěl dvě RC "vozidla" tak, že umí zastavit před překážkou (díky sonarům) a určit svůj azimut kompasem. S vyšším řídicím systémem komunikují přes bluetooth pomocí příjmu jednoduchých příkazů (např. r=right, l=left, f=forward, b=backward a s=stop) a vysílání unifikované "telemetrie" (azimut, odometr, rychlost, směr jízdy, PWM, měření sonarů, stav STOP tlačítka). Jako vyšší řídicí systém se snažím použít běžný smartphone s Androidem (hlavně proto, že dnešní mobily jsou dostupné, mají už v sobě kameru i GPS, mají solidní výpočetní výkon a relativně dobře programovatelný Android). Toto řešení mi zatím vyhovuje, ale teprve uvidím, jestli bude fungovat opravdu dobře a spolehlivě. To snad poznám na robotických soutěžích příští rok.

P.S.: Měl by někdo zájem se mnou spolupracovat na vývoji Android aplikace RoboNav pro navigování robota na RoboTour nebo Roboorienteering nebo Robotem rovně? Myslíte, že má smysl, abych tu aplikaci RoboNav zveřejnil jako opensource?
Uživatelský avatar
Dex
Administrátor
Příspěvky: 1519
Registrován: 16 úno 2013, 14:26

Re: Zásady pro autonomní mobilní robotiku

Příspěvek od Dex »

Pánové takhle "šťavnatá" diskuze tu dlouho nebyla, pokud vůbec někdy ;) Já jen mlčky poslouchám a dohledávám si hesla na netu ;)

Zkusím také trochu přispět i když to bude takové namíchané.

Pokud jde o podvozek, tak právě moje vysněná 4kolka by měla umožňovat všechny možné varianty. Může se totiž chovat jako auto, vysokozdvižný vozík nebo off-road, který umí zatáčet přední i zadní nápravou. Navíc má být i všesměrová tj. když vím, že se potřebuji dostat z bodu kde jsem do bodu, který je ode mne 2 metry a 25st vpravo, tak prostě natočím kola o 25st a pomocí odometrie ujedu 2 metry. Pochopitelně je u toho potřeba dělat ještě další věci a navíc je to jen teorie, ale mohlo by to fungovat. Podvozek by díky tomu měl být docela univerzální. Každý motor (natáčecí i pojezdový) bude řízen jedním malým "broukem". Ovládat se to bude pomocí servopulzů. Jen odometrie pojezdových kol bude vyvedena mimo.

Celkově plánuji použít hodně "brouků". Přesně dle hesla "rozděl a panuj". Při dnešních cenách to myslím vůbec není problém a mělo by to umožnit i snadnější recyklaci či přestavby. Někteří brouci budou v hirearchii úplně dole, další o úroveň výš atd. Jakým způsobem propojujete jednotlivé části robota?

Docela by mne také zajímalo, jaký hardware a software používáte pro jaké úlohy a co se osvědčilo či nikoliv. Nehledám dokonalý jazyk ani nic podobného, jen se chci případně inspirovat. Dneska není problém nacpat do robota klidně i Windows 10 8-)

Pokud jde o Android, tak toho používá na ovládání robota brácha (jestli sem nenapíše, tak do něj "dloubnu" ;)) a s podvozkem je také propojený přes bluetooth (něco málo tady http://www.rxd.cz/mumobot). Jako zajímavost, která se hůře hledá musím zmínit, že pokud je na Android zařízení podpora OTG a vezmete webkamery s podorou UVC, tak fungují i dvě najednou a máte stereo vidění. Paradoxně UVC webkamerky s nejlepším poměrem cena/výkon vyrábí asi Microsoft :)

Na RoboNav jsem zvědavý a klidně bych ho zveřejnil. Možná bych ale zvolil nějakou licenci zabraňující komerčnímu použití. Co všechno by měl vlastně umět?

O víkendu jsem narazil na takový trochu jiný dron http://www.ascentaerosystems.com/sprite ovšem proč to sem pletu. V tom videu je vidět aplikace pro Android na jeho ovládání. Plánují se tam waypointy atd. Možná to poslouží jako inspirace.

Ještě krátce k "nezničitelným" H-můstkům. Vývoj něčeho takové považuji v dnešní době za zbytečnost. Tohle vyrábí mnoho firem a tuším, že některé mnohem lépe, než se dá doma rozumně zvládnout. Tu spoustu ušetřeného času bych věnoval něčemu, co se koupit nedá a nebo je to třeba obtížně dostupné.
"all your robots are belong to us"
robodoupe.cz
Uživatelský avatar
jrt
Příspěvky: 1921
Registrován: 17 úno 2013, 17:13

Re: Zásady pro autonomní mobilní robotiku

Příspěvek od jrt »

Ta co vše nefungovalo už jsme se dozvěděli, tak teď se, pánové, pochlubte, co fungovalo, od čeho máte zpracovanou dokumentaci a o co se můžete podělit s ostatními.

Včera jsem - velmi předběžně - začal plánovat, že lednové (2016) Malostranské Robodoupě by mohlo být na téma "mobilní robotika", takže máte 3 měsíce na přípravu... :D
jrt
MartinL
Příspěvky: 252
Registrován: 24 úno 2013, 14:13
Kontaktovat uživatele:

Re: Zásady pro autonomní mobilní robotiku

Příspěvek od MartinL »

Za sebe můžu říci, že mám zvládnuté řízení pohonů (enkodéry, regulátor, poměrový regulátor pohonů pro diferenciální řízení) a navigaci po trajektorii dané lomenou čárou (viz. odkaz v minulém příspěvku). Pokud mi termín robodoupěte nebude v lednu s ničím kolidovat, tak rád přijedu a můžu se, na výše uvedená témata, podělit o rozumy.
Uživatelský avatar
jrt
Příspěvky: 1921
Registrován: 17 úno 2013, 17:13

Re: Zásady pro autonomní mobilní robotiku

Příspěvek od jrt »

jrt
AlesH
Příspěvky: 323
Registrován: 25 úno 2013, 09:18

Re: Zásady pro autonomní mobilní robotiku

Příspěvek od AlesH »

Inspirace je perfektní. Díky za odkaz. Tak dobrou dokumentaci bohužel nemám k žádné své konstrukci. Pokusím se to napravit v příštích měsících.

Jinak s funkčností svých robotických výtvorů jsem celkem spokojen (když už se robot dostal na start, tak vždycky odstartoval a bojoval jak jen mohl [nerozbil se a nevzdal to předčasně]). Fungovaly mi přestavby RC autíček na programovatelné řízení pomocí Arduina, včetně doplnění jednoduchého enkodéru pro odometrii a regulaci rychlosti. Solidně mi fungovaly programy pro ta Arduina (určování azimutu magnetometrem [zatím bez korekce náklonem], PID regulace směru a rychlosti, integrace infračervených a ultrazvukových dálkoměrů, integrace GPS do systému, komunikační bluetooth rozhraní). Za úspěch považuji i svoji navigační Android aplikaci RoboNav, kterou jsem tu zmiňoval (ovšem její spolehlivou funkci budu teprve muset ověřit při dalších reálných venkovních testech a na robotických soutěžích příští rok). Chci kód aplikace ještě vylepšit a upravit tak, aby byl srozumitelný nejen pro mne, a pak zveřejnit jako opensource, případně předvést na nějakém setkání (třeba na tom v lednu 2016).
AlesH
Příspěvky: 323
Registrován: 25 úno 2013, 09:18

Re: Zásady pro autonomní mobilní robotiku

Příspěvek od AlesH »

Vypadá to, že všichni jsme tu už napsali všechno, co jsme chtěli. Snad už je tedy vhodná doba na nějaké shrnutí a závěr.

Možná, že zásady pro autonomní mobilní robotiku by se daly zapsat pomocí kontrolního seznamu potřebných vlastností robota a pomocí několika ověřených doporučení.

Z celé diskuze mi to zatím vychází nějak takto.

Před soutěží typu RoboTour si u svého robota zkontrolujte že:
- robot umí jet i s nákladem rychlostí 0,5 m/s do svahu, travou a přes výmoly
- robot dokáže samostatně a naráz ujet alespoň 1 km a fungovat alespoň hodinu
- robot dokáže spolehlivě zabránit srážce s překážkou v každém směru pohybu
- robot má dostatečně dimenzované napájení a je pečlivě odrušen
- robot (včetně elektroniky) spolehlivě funguje v dešti, blátě, chladu i horku
- robot obsahuje přesný kompas, odometrii, dálkoměry, GPS a počítačové vidění
- počítačové vidění robota umí spolehlivě poznat cestu (za různých podmínek)
- robot obsahuje solidní mapu sjízdných cest (z Open Street Map)
- robot umožňuje snadno, rychle a přesně zadat trasu, kontrolní body a cíl
- robot umí určit přesný reálný čas a odstartovat v předem stanovenou dobu
- robot umí směřovat k cíli přes průjezdní body, po cestě a mimo překážky
- robot si dokáže poradit s křižovatkami a různými světelnými podmínkami
- robot umí u cíle vyložit náklad a pak se vrátit zpět ke startu
- kompletní robot je důkladně otestován venku za různého počasí

Komu robot spolehlivě plní všechny uvedené body, ten má velmi dobrou šanci na výborné umístění v RoboTour (měl by dokonce splnit hlavní cíl soutěže [dopravit náklad do cíle], což je zatím těžší, než vyhrát). Současně je robot dobře připraven i na soutěže Robotem rovně a RoboOrienteering.

Při konstrukci vhodného robota použijte ověřená řešení a doporučení, např. tato:
- inspirujte se informacemi dostupnými na internetu (a navažte na ně svou originalitou)
- postupujte po menších krocích (pořádně dokončených)
- snažte se dělat všechno co nejjednodušší (je to pak zvládnutelnější)
- co nedokážete nebo nechcete sami postavit, to kupte hotové (kvalitní)
- stavbu usnadňuje modularita HW i SW
- základem je robustní a spolehlivý podvozek s jasně definovaným rozhraním
--- cílem je co nejdokonalejší HW (přesný, silný, odolný)
--- velkou pozornost věnujte odrušení všech motorů a elektroniky
--- použijte samostatnou baterii pro motory a samostatnou pro elektroniku
--- používejte kompas kompenzovaný náklonem (odvozeným z gyra a akcelerometru)
--- magnetometr umístěte co nejdál od motorů
- řídicí systém je vhodné rozdělit do dvou úrovní
--- nižší úroveň je v podvozku, řídí motory, brání srážkám a bere povely shora
--- vyšší úroveň naviguje podle mapy, GPS a kamery a poveluje podvozek
- řídicím systémem nižší úrovně může být Arduino nebo podobné systémy
- řídicím systémem vyšší úrovně může být malý počítač, notebook, tablet nebo mobil
- rozhraní mezi oběma úrovněmi udělejte obousměrné (povely dolů, telemetrie nahoru)
- jako senzory použijte AHRS/IMU, sonary, GPS, kameru a/nebo lidar
- kameru umístěte co nejvýš (z nadhledu je všechno přehlednější)
- nechte systém zapisovat do logu všechny podstatné informace (a logy pak důkladně analyzujte)
- při vývoji SW používejte hotové knihovny, frameworky a hotové části kódu (aby SW zůstal přehledný)
- řídicí algoritmus musí být spolehlivý, přesný a pružný (reagující na změny)
--- nejprve určete trasu (definujte průjezdní body) a odvoďte itinerář (odbočky)
--- čekejte na určený startovní čas a teprve pak vozidlo rozjeďte (v RoboTour)
--- základní požadovaný směr jízdy určete pomocí mapy, kompasu, odometrie a GPS
--- směr jízdy průběžně upřesňujte podle spolehlivé detekce cesty (okrajů cesty)
--- vždy je třeba rychle a přesně reagovat na překážky (zastavení, změna směru) [překážky mohou být i pohyblivé (lidé, ostatní roboti)]
--- směřujte k nejbližšímu průjezdnímu bodu (a přitom hlídejte překážky a okraje cesty)
--- po dosažení průjezdního bodu začněte směřovat k následujícímu bodu trasy
--- na křižovatkách se orientujte i podle směru odbočení daného itinerářem (a přitom dávejte pozor na okraj cesty)
--- rozpoznejte problémy s dosažením průjezdního bodu a vhodně reagujte (přeplánujte další trasu)
--- u cíle (nebo v označeném kontrolním bodu) je třeba vyložit náklad (nebo zvukově oznámit nutnost ručního vyložení nákladu)
- udržujte si dobrou dokumentaci a podělte se o svoje výsledky a zkušenosti s ostatními
- sami si vyberte směr, kterým v robotice půjdete, protože hobby robotika vás musí hlavně bavit

To je zatím vše. Podle potřeby to zkritizujte, upravte, doplňte nebo ignorujte. Má smysl to zveřejňovat ještě v extra článku na Robodoupěti? Nebo je lepší každého nechat přečíst celou diskuzi, ať si udělá závěr podle svého?
Uživatelský avatar
jrt
Příspěvky: 1921
Registrován: 17 úno 2013, 17:13

Re: Zásady pro autonomní mobilní robotiku

Příspěvek od jrt »

Po pravdě řečeno, v odstavci ... u svého robota zkontrolujte že... mi chybí ještě:

- má hodně peněz nazbyt... :|

Pokud si tohle přečte nějaký nováček, tak když si spočítá všechny náklady, koupí si radši hotovou luxusní kvadrokoptéru, se kterou si rozhodně užije víc zábavy.
Proto jsem navrhoval, abychom zkusili něco menšího, co nebude na začátku vyžadovat tak velkou a nejistou investici.

Na článek do RoboDoupěte tahle diskuze samozřejmě není, spíš jsem očekával, že sem každý z nás napíše:
"Mám ověřený takový a takový senzor, takhle ho programově zpracovávám a funguje mi to k mé plné spokojenosti."
jrt
Uživatelský avatar
Dex
Administrátor
Příspěvky: 1519
Registrován: 16 úno 2013, 14:26

Re: Zásady pro autonomní mobilní robotiku

Příspěvek od Dex »

Klidně se ještě trochu rozepišme ;)

Jaké sběrnice např. v robotech používáte respektive které Vám fungují a které moc ne?

Co napájení? Jak ho řešíte?

To jsou (pro přehlednost) jen dva příklady konkrétních praktických zkušeností, které mne zajímají. Ostatní se určitě přidají.
"all your robots are belong to us"
robodoupe.cz
Odpovědět