WhyCon: Rozdiel medzi revíziami
Zo stránky SensorWiki
dBez shrnutí editace |
dBez shrnutí editace |
||
| Riadok 38: | Riadok 38: | ||
<div style='text-align: center;'> | <div style='text-align: center;'> | ||
[[Súbor:WhyConDemo.png| | [[Súbor:WhyConDemo.png|800px]]<BR> | ||
[[Súbor:WhyConDemo2.png|800px]]<BR> | |||
''Jednotlivé kroky algoritmu WhyCon.'' | ''Jednotlivé kroky algoritmu WhyCon.'' | ||
</div> | </div> | ||
Verzia z 18:33, 16. máj 2026
A precise, efficient and low-cost localization system
Presná a spoľahlivá lokalizácia je jedným z kľúčových problémov mobilnej robotiky. Obvykle sa tento problém rieši metódami simultánnej lokalizácie a mapovania (SLAM). Napriek tomu sa však často používajú aj externé lokalizačné systémy, či už pre riadenie v uzavretej slučke, alebo pre meranie polohy. WhyCon je rýchly a presný vizuálny softvér pre lokalizáciu viacerých robotov. Jadrom je nový a efektívny algoritmus pre rozpoznávanie čierno-bielych vzorov. Metóda je robustná a odolná voči zmenám osvetlenia, má presnosť na úrovni pixelov a jej výpočtová zložitosť nezávisí od veľkosti spracovaného obrazu. Je dostatočne rýchla a zvláda spracovať stovky snímkov za sekundu pomocou bežného počítača a lacnej kamery, pričom dosahuje až milimetrovú presnosť.
Vstup: farebný alebo čiernobiely obrázok z jednej kamery
Výstup: pozície kruhových značiek v priestore
Algoritmus:
- segmentácia prehľadávaním do šírky,
- filtrácia výsledkov (kruhovosť, sústrednosť, pomer farieb atď),
- presné parametre 2d vzoru,
- reprojekcia do 3d,
- transformácia do daného súradnicového systému.
- inicializácia hľadania na poslednej pozíci v obraze,
- spracovanie iba relevantných pixelov,
- uložené medzivýsledky vo fronte pozícií.
Podrobný opis algoritmu je zachytený na prednáške T. Krajníka
ku ktorej sú k dispozícii aj
- slajdy
- github repo
- KRAJNÍK, Tomáš, et al. A practical multirobot localization system. Journal of Intelligent & Robotic Systems, 2014, 76.3: 539-562.
WhyCon detekcia je v podstate séria filtrov, kde každý krok zúži počet možných kandidátov. Celý postup je vidno na nasledovnom obrázku:
- Krok 1 — Šedotónový + blur. Farba nás nezaujíma (marker je čiernobiely), Gaussian blur odstráni šum.
- Krok 2 — Adaptívny prah. Každý pixel porovná so svojím okolím (51×51 px okno) a rozhodne: tmavší než priemer → biela, svetlejší → čierna. Preto to funguje aj pri nerovnomernom osvetlení — na rozdiel od globálneho prahu, ktorý by v tmavom rohu videl "všetko čierne".
- Krok 3 — Kontúry s hierarchiou. OpenCV nájde hranice všetkých bielych oblastí (v tomto snímku 1021). Kľúčové je RETR_TREE — zachová informáciu, ktorá kontúra je vnútri ktorej (rodič → dieťa).
- Krok 4 — Filter na cirkularitu. Z 1021 kontúr zostanú len 3 kruhové. Cirkularita = 4π × plocha / obvod². Dokonalý kruh = 1.0, stena bludiska ≈ 0.1. Filtrujeme na ≥ 0.55.
- Krok 5 — Rodič-dieťa test. Toto je jadro WhyConu. Hľadáme kruhovú kontúru, ktorá má vnútri seba ďalšiu kruhovú kontúru — čiže prstenec s kruhovým stredom. Navyše kontrolujeme pomer plôch: pri pomere priemerov 2:1 je pomer plôch * 0.25. V tvojom snímku vyšiel 0.24 — presne sedí.
- Krok 6 — Najlepší kandidát. Ak prešlo viacero, vyberie sa ten s najvyšším skóre (kombinácia cirkularity oboch kruhov a veľkosti).