Eurobot 2003 za 45 dní
aneb neříkej hop, dokud nepřeskočíš...
Dalších X dní uteklo jako voda, kde X mělo být původně 10, ale v době sepisování této zprávy to už je 15… a zároveň se zdá, že práce nijak zásadně nepokročily. Dana dostala nové senzory, Daisy si začala trošku hrát s puky a už jsme narazili na první krizi při integraci řízení robota po lomené čáře.
Pomalu, ale jistě, začínáme mít takový ten klasický pocit, že zase něco
nestíháme . Myslím, že určitě každý z nás tento pocit zná možná
důvěrněji, než by si přál. Doufejme, že to bude spíše vítaná motivace, než
zdroj depresivních nálad .
Dana - nové senzory
Robot Dana byl posledních pár dní zase v rozebraném stavu. Jedná se vždy
o problémový krok, kdy software není na čem zkoušet a není zaručeno, že
nové zásahy neponičí již funkční moduly. Za poslední dva měsíce se však
nastřádalo již dostatek drobností, ke kterým by se už později nejspíše
nedostalo, a tak „Dana šla pod nůž” hned teď.
V rámci přestavby byly namontovány nové i staro-nové senzory. Mezi nové
patří např. dva infračervené detektory na měření výšky věží puků a
na detekci nových puků, pokud je ruka již zvednutá. Tyto senzory mají umožňovat
záložní řešení, pro případ, kdy by nefungovala kamera nebo selhávaly
algoritmy na zpracování obrazu. Stavba věží tak asi bude zásadní výhoda
Dany: přeci jenom za dvoj-věž jsou 3 body a za troj-věž 5 bodů.
Mezi staro-nové senzory pak patří další CNY70 na detekci barvy podlahy.
Ukazuje se, že čím více senzorů, tím je algoritmus navigace spolehlivější
a přesnější. Přesto stále dochází tak v jedné z pěti jízd ke ztátě
pozice a robot zabloudí. To by snad mohly vyřešit další senzory, optické
myši, které byly na robotu namontovány již loni, a teď s novým USB hubem
byly nově zapojeny.
Daisy - první hrátky
Daisy se již pustila do otáčení puků. Na ruce tvaru L byla použita
stejná technologie jako u Dany – dvě CNYčka, kdy jedno směřuje nahoru a
druhé dolu. V případě dvoubarevných puků bude jedna vnitřní strana černá
a druhá bílá. Pokud se tedy použije rozdíl měřených hodnot, vychází
spolehlivost detekce barvy zatím na 100%. Že situace není tak růžová jak
se zdá se nejspíše projeví až pak na samotném Eurobotovi…
Nestačilo by jedno CNYčko? Pro Danu rozhodně ne, protože si chce poradit
i s jednobarevnými puky, které lze sestřelit pomocí ping-pongových míčků.
Daisy tuto situaci bude zřejme ignorovat, i když jsme rozebírali řešení,
kdy by mohla puk postavit opět na svou hranu. Tato úloha je však hluboko na
našem „seznamu priorit”.
Daisy se tedy již rozhoduje podle barvy, která je nahoře, zda puk otočit či
neotočit. Jak se jí to daří si můžete prohlédnout na videích:
- doma
- na hřišti
- neotočení na hřišti (protože již byl správně)
- jízda bez puků
Černá středa
Byla 9/4/2003. Ne že by jsme odpalili nějaký hardware, ale polevili jsme v
zásadách inkrementalního vývoje a dopadlo to přesně tak, jak se dalo očekávat.
Na programu byla integrace „Path Following behavior”, který je pěkně
demonstrován na
http://www.red.com/cwr/steer/,
ale jeho popis už je o něco vágnější. Robotovi se pak předá pouze cesta
ve tvaru lomené čáry a o nic dalšího se už není třeba
starat.
V čem byl problém? Netriviální algoritmus, jenom zběžné vyzkoušení v
simulatoru, do toho pokus o regulaci rychlosti motorů a navigace pomocí
pozice, kterou si MCL občas trošku upravilo podle sebe. To snad ani dobře
dopadnout nemohlo ;). Člověk se holt musí občas popálit, aby příště
nezapoměl…
Závěr? Algoritmus jsme zjednodušili, byly doplněny Unit Testy na ověření
základních principů, MCL pro rozchození nahradilo DummyMCL, které slepě věří
enkoderům a nedělá žádné podivné skoky/posuny, a na testování jízdy
samotné jsme si napsali nový (malinký) program. Druhý pokus o integraci by měl
proběhnout dnes, tentoráte však snad bude úspěšný.
Řízení po lomené čáře
Úkolem robota je jet po předem zadané lomené čáře (teoreticky by se
mohlo jednat i o složitější křivky, ale pro naše účely je lomená čára
naprosto dostačující). Zjednodušený algoritmus je následující: nechť
pozice robota je určena souřadnicema x, y a směrem heading
(na obrázku zelený kroužek se šipkou). Tento bod promítneme na nejbližší
bod na lomené čáře (kolmý průmět) a posuneme ho o předem definovanou vzdálenost
po lomené čáře (červená šipka). Nový bod budeme nazývat „seek
point” a je to místo, kam chceme aby robot směřoval.
Řízení po lomené čáře |
Pokud by dopředná rychlost byla nulová, tak se robot pouze stočí ve směru
přerušované čáry. Při pohybu však seek point bude „utíkat” a
robot podle toho bude vzniklou chybu v natočení korigovat. Jednoduché, není-liž
pravda? :) Zrada je samozřejmě v detailech: jaká má být vzdálenost pro
seek point, jak se má korigovat chyba v natočení, jak se to promítne na
samotné řízení PWM na motorech? Po několika pokusech byl problém přeformulován
a řešen pomocí PD-kontroleru (P = proporcionální, D = derivační), kde
chybu, kterou se snažíme minimalizovat, je rozdíl v úhlu. Vzdálenost po
lomené čáře jsme nakonec zvolili 30cm, což odpovídá velikosti čtverce na
šachovnici pro Eurobota.
Další plán
K zápasu mezi Danou a Daisy dosud nedošlo. Je to tedy stále plán číslo
jedna. Dále se chystá v Bratislavě soutěž Istrobot, kde by se oba (možná
jenom Dana) roboti měli předvést, takže plán je, aby bylo co.
Send email to the editors
Your message could not be sent
but you can also reach us at webmaster-at-robotika.cz
Your message was successfully sent.
You need to turn on javascript to submit this form.