Skip to content
Home " IT ir technologijos " Kaip veikia erdvės kartografavimas

Kaip veikia erdvės kartografavimas

Kai robotas žiūri į pasaulį: erdvės suvokimo pradmenys

Kada paskutinį kartą pagalvojote, kaip jūsų robotas dulkių siurblys nesusitrenkia į baldus ar kaip autonominis automobilis žino, kur yra gatvės kraštas? Atsakymas slypi erdvės kartografavime – technologijoje, kuri leidžia mašinoms “matyti” ir suprasti aplinką panašiai kaip mes, tik visiškai kitaip.

Erdvės kartografavimas, arba SLAM (Simultaneous Localization and Mapping), yra procesas, kai įrenginys vienu metu kuria aplinkos žemėlapį ir nustato savo vietą jame. Skamba kaip paradoksas, ar ne? Kaip gali žinoti, kur esi, jei nežinai, kaip atrodo aplinka? Ir kaip gali kurti žemėlapį, jei nežinai, kur pats stovi? Būtent šio paradokso sprendimas ir yra viena įdomiausių šiuolaikinės robotikos problemų.

Įsivaizduokite, kad pabudote tamsoje nežinomame kambaryje. Pradėtumėte apgraibomis tyrinėti aplinką, kartu bandydami įsiminti, kur jau buvote. Maždaug taip veikia ir erdvės kartografavimas – tik vietoj rankų naudojami lazeriai, kameros ir kiti jutikliai.

Akys, kurios nemato: jutiklių arsenalas

Pirmasis žingsnis kuriant erdvės žemėlapį – surinkti duomenis apie aplinką. Čia į pagalbą ateina įvairūs jutikliai, kurių kiekvienas turi savo privalumų ir trūkumų.

Lidarai – tai lazeriniai atstumo matuokliai, kurie veikia labai paprastai: išsiunčia šviesos impulsą ir matuoja, per kiek laiko jis sugrįžta atsitrenkęs nuo kliūties. Žinant šviesos greitį, nesunku apskaičiuoti atstumą. Geriausias lidaras gali atlikti šimtus tūkstančių tokių matavimų per sekundę, sukurdamas detalų 3D vaizdą. Autonominiuose automobiliuose dažnai matysite ant stogo besisukančius lidarus – jie nuolat skenuoja aplinką 360 laipsnių kampu.

Kameros veikia artimiau žmogaus regėjimui. Jos užfiksuoja vaizdą, o programinė įranga iš jo išgauna informaciją apie atstumą, objektus ir jų judėjimą. Stereoskopinės kameros (dvi šalia viena kitos) gali matuoti atstumą panašiai kaip mūsų akys – lyginant, kaip skiriasi vaizdas iš skirtingų kampų. Naujesni metodai naudoja dirbtinį intelektą, kuris išmoko atpažinti, ar objektas yra arti, ar toli, net iš vienos kameros vaizdo.

Ultragarsiniai jutikliai veikia panašiai kaip šikšnosparnių echolokacija. Jie pigūs ir patikimi, bet ne itin tikslūs – puikiai tinka paprastiems robotams dulkių siurbliams, bet nepakanka sudėtingesnėms užduotims.

Inerciniai jutikliai (IMU) matuoja pagreitį ir sukimąsi. Jie negali tiesiogiai “matyti” aplinkos, bet puikiai jaučia, kaip pats įrenginys juda. Tai tarsi vidinė pusiausvyros sistema, kuri padeda suprasti, ar robotas važiuoja tiesiai, sukasi ar kyla į kalną.

Iš taškų į pasaulį: kaip gims žemėlapis

Surinkti duomenis – tai tik pusė darbo. Dabar juos reikia paversti suprantamu žemėlapiu. Čia prasideda tikroji magija.

Kai lidaras nuskaito aplinką, jis gauna taškų debesį – milijonus koordinačių, kur kažkas yra. Įsivaizduokite, kad kambaryje išbarstyti milijonai švytinčių taškų, kurie žymi kiekvieno paviršiaus vietą. Iš toli tai atrodytų kaip holografinis kambario vaizdas. Bet robotui tai tiesiog skaičių krūva.

Pirmasis žingsnis – atpažinti požymius (features). Tai būtų kampai, briaunos, plokštumos – bet kas, kas išsiskiria ir lengvai atpažįstama. Pavyzdžiui, kambario kampas yra puikus požymis – jis aiškiai matomas ir nepasikeis. Durų rėmas, stalo kraštas, sienos ir grindų sandūra – visi tai patikimi orientyrai.

Kai robotas juda, jis nuolat ieško tų pačių požymių naujuose skenuose. Jei pirmame skene matė stalo kampą 2 metrus priekyje, o po sekundės – 1,8 metro priekyje, vadinasi, pajudėjo 20 centimetrų į priekį. Taip, palygindamas, kaip keičiasi žinomų objektų padėtis, robotas gali apskaičiuoti savo judėjimą.

Ciklo uždarymas (loop closure) – vienas svarbiausių momentų. Įsivaizduokite, kad robotas važinėja po namus ir kuria žemėlapį. Smulkios matavimo paklaidos kaupiasi, ir po kelių minučių žemėlapis gali būti šiek tiek iškraipytas. Bet kai robotas grįžta į jau žinomą vietą – pavyzdžiui, atgal į svetainę – jis atpažįsta, kad čia jau buvo. Dabar jis gali patikslinti visą žemėlapį, paskirstydamas sukauptas paklaidas po visą maršrutą. Tai tarsi galvosūkio sprendimas – kai įdedi paskutinę detalę, staiga visa nuotrauka tampa aiški.

Matematika, kuri viską sujungia

Už viso šio proceso slypi sudėtinga matematika, bet pagrindinė idėja gana paprasta – tikimybės teorija. Robotas niekada nėra 100% tikras, kur yra ar kaip atrodo aplinka. Vietoj to jis operuoja tikimybėmis.

Kalmano filtras ir jo giminaitis dalelių filtras yra pagrindiniai įrankiai. Jie veikia maždaug taip: robotas turi hipotezę apie savo padėtį (pavyzdžiui, “turbūt esu 3 metrus nuo sienos”). Tada jis atlieka matavimą (“lidaras rodo 2,9 metro iki kažko”). Filtras sujungia šias dvi informacijas, atsižvelgdamas į kiekvienos patikimumą, ir pateikia patikslintą įvertinimą (“greičiausiai esu 2,95 metro nuo sienos”).

Dalelių filtras eina dar toliau – jis kuria šimtus ar tūkstančius galimų hipotezių apie roboto padėtį (vadinamų dalelių). Kiekviena dalelė – tai spėjimas “gal esu čia”. Po kiekvieno matavimo dalelės, kurios gerai atitinka duomenis, sustiprinamos, o blogai atitinkančios – silpninamos. Laikui bėgant dalelės sutelpa aplink tikrąją padėtį, tarsi spėjimų debesis, kuris pamažu kondensuojasi į tikslų atsakymą.

Kai aplinka nesnaudžia: dinamiški objektai

Viena didžiausių problemų – judantys objektai. Klasikinis erdvės kartografavimas daro prielaidą, kad aplinka statinė. Bet tikrame pasaulyje žmonės vaikšto, automobiliai važiuoja, durys atsidaro.

Moderniški algoritmai turi išmokti atskirti, kas yra pastovi aplinka, o kas – laikini objektai. Jei robotas dulkių siurblys mato kėdę, ji turėtų būti įtraukta į žemėlapį. Bet jei mato katę, kuri vaikšto po namus, ji neturėtų tapti pastovia žemėlapio dalimi.

Čia į pagalbą ateina objektų atpažinimas. Dirbtinio intelekto algoritmai išmoko atpažinti, kas yra kas. “Tai siena – statinė. Tai šuo – judantis. Tai žmogus – tikrai judantis.” Žinodamas tai, robotas gali atskirti, ką įtraukti į ilgalaikį žemėlapį, o ką tiesiog apeiti.

Kai kurios sistemos kuria net kelis žemėlapių sluoksnius: vieną su pastovia aplinka (sienos, baldai), kitą su laikinais objektais (žmonės, gyvūnai), trečią su judančiais daiktais, kurie kartais būna vienoje, kartais kitoje vietoje (kėdės, kurias perstatome).

Nuo grindų iki dangaus: skirtingi taikymai

Erdvės kartografavimas šiandien yra visur, tik mes to nepastebime.

Robotai dulkių siurbliai buvo vienos pirmųjų masiškai paplitusių SLAM technologijos taikymo sričių. Ankstyvieji modeliai važinėjo chaotiškai, daužydamiesi į baldus. Šiuolaikiniai kuria tikslų buto žemėlapį, planuoja efektyviausią maršrutą ir žino, kurias vietas jau išvalė. Kai kurie net leidžia nustatyti virtualias sienas ar nurodyti “išvalyk tik virtuvę”.

Autonominiai automobiliai naudoja kur kas sudėtingesnes sistemas. Jie derina lidarus, kameras, radarus ir GPS duomenis, kurdami tikslų aplinkos vaizdą realiuoju laiku. Skirtumas nuo dulkių siurblio – greitis ir sudėtingumas. Automobilis turi apdoroti informaciją daug greičiau ir tiksliau, nes klaida gali kainuoti gyvybes.

Dronus erdvės kartografavimas leidžia skraidyti uždarose patalpose be GPS. Tai svarbu inspektuojant pastatus, ieškant žmonių griuvėsiuose ar filmavimui. Dronas turi ne tik žinoti, kur yra, bet ir stabilizuoti skrydį, todėl čia ypač svarbūs inerciniai jutikliai.

Papildyta realybė (AR) irgi remiasi erdvės kartografavimu. Kai naudojate AR programėlę telefone, ji turi suprasti, kaip atrodo kambarys ir kur yra paviršiai, kad galėtų tiksliai “padėti” virtualius objektus realiame pasaulyje. Apple ARKit ir Google ARCore – tai būtent SLAM technologijos, pritaikytos išmaniesiems telefonams.

Kai viskas eina ne pagal planą: iššūkiai ir sprendimai

Nors technologija labai pažengė, vis dar yra daug situacijų, kai erdvės kartografavimas susiduria su sunkumais.

Veidrodiniai paviršiai – tikra košmaras lidariams. Lazerio spindulys atsispindi nuo veidrodžio ir robotas “mato” objektus, kurių iš tikrųjų nėra. Tai tarsi bandymas orientuotis kambarėlyje su veidrodžiais. Sprendimas – naudoti kelis skirtingus jutiklius. Kamera matys veidrodį kitaip nei lidaras.

Monotoniškos aplinkos – ilgas tuščias koridorius be jokių požymių. Robotas negali rasti orientyrų, todėl sunku nustatyti padėtį. Čia padeda inerciniai jutikliai ir geresni algoritmai, kurie ieško net subtilių požymių, kaip tekstūros pokyčiai ant sienos.

Apšvietimo pokyčiai sukelia problemų kameroms. Kambarys, nufotografuotas dieną ir naktį, atrodo visiškai skirtingai. Moderniški algoritmai išmoko atpažinti objektus nepriklausomai nuo apšvietimo, naudodami giliojo mokymosi metodus.

Skaičiavimo galia – tikslus SLAM reikalauja daug procesorių galios. Ypač tai problema mažiems įrenginiams, kaip dronai ar mobilieji robotai. Sprendimas – specializuoti procesoriai ir optimizuoti algoritmai, kurie atlieka tik būtiniausius skaičiavimus.

Praktinis patarimas tiems, kas nori eksperimentuoti: pradėkite nuo paprastų 2D SLAM bibliotekų, kaip Hector SLAM ar GMapping. Jos veikia su pigiais lidarais ir gali būti paleistos net ant Raspberry Pi. Vėliau galite pereiti prie sudėtingesnių 3D sistemų, kaip RTAB-Map ar ORB-SLAM.

Ateitis jau čia, tik nevienodai paskirstyta

Erdvės kartografavimas per pastaruosius dešimtmetį nužengė ilgą kelią – nuo laboratorijų eksperimentų iki kasdienių prietaisų mūsų namuose. Technologija, kuri kadaise reikalavo galingų kompiuterių ir specialios įrangos, dabar telpa jūsų išmaniajame telefone.

Žvelgiant į ateitį, matome kelias įdomias kryptis. Kolaboratyvus kartografavimas – kai keli robotai ar įrenginiai kartu kuria bendrą žemėlapį – jau tampa realybe. Įsivaizduokite robotų dulkių siurblių flotilę, kuri kartu išvalo didelį pastatą, dalijantis informacija ir koordinuojant veiksmus.

Semantinis kartografavimas eina dar toliau – ne tik žinoti, kad čia yra objektas, bet ir suprasti, kas tai yra. “Tai ne tiesiog stačiakampis objektas – tai stalas, ant kurio gali būti daiktų.” Toks supratimas leidžia robotams geriau sąveikauti su aplinka ir priimti protingesnius sprendimus.

Galiausiai, erdvės kartografavimas tampa vis prieinamesnis. Atvirojo kodo bibliotekos, pigūs jutikliai ir galingesni procesoriai reiškia, kad bet kas su šiek tiek programavimo žinių gali sukurti savo kartografavimo sistemą. Tai atveria duris begalei kūrybiškų taikymų – nuo meno instalacijų iki pagalbos neįgaliesiems.

Taigi kitą kartą, kai jūsų robotas dulkių siurblys švelniai apeina sofos koją arba kai telefonas tiksliai įterpia virtualų baldą į kambario kampą, prisiminkite – už šių paprastų veiksmų slypi sudėtinga technologija, kuri leidžia mašinoms suvokti erdvę beveik taip, kaip tai darome mes. Tik be sąmonės, emocijų ir nuostabos, kurią mes jaučiame, pirmą kartą pamačius kažką naujo.