Stránka 1 z 1

Mapování bludiště robotem

Napsal: 21 bře 2019, 22:47
od Thalorn
Dobrý den,
potřeboval bych poradit s projektem, ve kterém robotem projíždím celé bludiště a vykresluji mapu na pc. Můj problém spočívá v tom, že nevím jak převést pohyb do souřadnic x a y.

Děkuji za rady.

Re: Mapování bludiště robotem

Napsal: 22 bře 2019, 04:32
od gilhad
V podstate to mas jednoduche - budes si zaznamenavat, kam ses otocil a jak dlouho jsi jel (pripadne jakou rychlosti). Pak z toho zpetne dopocitas trasu.

Problem je, jak urcit presne ty uhly a vzdalenosti, protoze pokud pojedes "jen tak" tak se ti ty chyby budou kumulovat.

Pokud je to bludiste pravouhle a pravidelne (nakreslene na ctvercove siti), tak je to jednoduche - pokazde kdyz dojedes ke krizovatce, tak se zaokrouhlis k ni a k nejblizsimu "pravouhlemu" smeru a tim se zbavis nepresnosti (pokud zatim nedosahly az k dalsi krizovatce).

Takze kdyz zacnes "vodorovne doprava" v bodu 0,0 a pojedes rovne (1,0, >), rovne(2,0,>), doleva(2,0,^), rovne(2,1,^), doprava (2,1,>), rovne(3,1,>) doleva (3,1,^), rovne(3,2,^), doleva(3,2,<), rovne (2,2,<), rovne(1,2,<) tak skoncis ve vzdalenosti 1 ve smeru osy X, 2 ve smeru osy Y a natoceny vodorovne doleva


kdyz jedes ctverec doprava, X se zvysi o 1, kdyz doleva, snizi se o 1, kdyz nahoru, y se zvysi o 1, kdyz dolu tak se snizi.

(Nebo si zmeris hranu ctvrece a prepoctes to na centimetry, treba ctverec bude 25x25 cm)

Re: Mapování bludiště robotem

Napsal: 22 bře 2019, 05:47
od Axamith
Co použít Arduino kompas, tím by se úhly daly měřit poměrně slušně.

Re: Mapování bludiště robotem

Napsal: 22 bře 2019, 07:19
od pavel1tu
Hehe
teď si hraji s mBootem - pohledej po internetu - někdo to už řešil,
já se na to nechci koukat - chci to řešit s mladým "sám" bez pomoci - je třeba trénovat mozek.

Re: Mapování bludiště robotem

Napsal: 24 bře 2019, 10:30
od zbysek
Dobrý den,
tyto problémy jsou celkem dobře prozkoumané a jsou různé způsoby, jak k nim přistupovat.

Zkuste pohledat Arduino and SLAM.
SLAM jsou obecně algoritmy pro současné mapování a lokalizaci robota v neznámém prostředí.

K tomo převodu pohybu na polohu. Úplně nejjednodušší možností je
a) počáteční polohu si označit jako souřadnice [0, 0]
b) natočení robota zjišťovat pomocí kompasu (tím se dá zjistit směr pohybu)
c) rychlost robota spočítáte z úhlové rychlosti otáčení motoru a obvodu pneumatik (přibližně), čas pohybu taky změříte - prostě měříte jak dlouho se ovládají kola
d) protože znáte velikost rychlosti i směr, můžete rozložit rychlost do jednotlivých os (sinus a cosinus) a z toho dopočítávat polohu

To, co jsem popsal, je velice základní algoritmus a využívá tzv. odometrie. Je celkem náchylný k chybám. Někde se ale začít musí :)
Potom se dají ještě kombinovat měření z různých senzorů (akcelerometr, gyroskop, kamery, ...). To už ale roste komplexita. Pokud vás to zajímá, hledejte SLAM algoritmy.

Docela pěkná práce, která mapování robotem řeší je: https://dspace.cvut.cz/handle/10467/68406