Scanse sweep LiDAR’as ArduPilot autopilotui - I DalisLiDAR’as arba LIDAR’as (angl. Light Detection and Ranging arba Light Imaging Detection and Ranging) – tai įrenginys, šviesos impulsais matuojantis atstumą iki kitų objektų. LiDAR’as apšviečia aplinką lazerio impulsu ir po to specialiu sensoriumi matuoja atspindžio savybes (laiką, fazę, amplitudę, dažnį). Paprasčiausiu atveju atstumas yra nustatomas pagal tai, kiek laiko reikia šviesos impulsui nueiti iki objekto, atsispindėti ir grįžti atgal. Šviesos greitis yra gerai žinomas, o atstumas yra lygus greičiui padaugintam iš laiko ir padalintam iš 2. LiDAR’as dar kartais vadinamas lazeriniu skeneriu.
Neseniai gavau užsakymą prijungti LiDAR’ą prie skydžio valdymo sistemos. Scanse sweep yra 360 laipsnių plokštumoje skenuojantis LiDAR‘as, turintis mažos galios infraraudoną (žmogui nematomą) lazerį ir galintis matuoti atstumus iki objektų, esančių nuo 20 cm iki 40 m diapazone.
Failo aprašymas: Scanse sweep LiDAR
LiDAR_SideView_sm.jpg [ 13.03 KiB | Peržiūrėta 4968 kartus(ų) ]
Kodėl užsakymą?.. Kodėl pats vartotojas negalėjo prijungti šio LiDAR’o?.. Atsakymas yra labai paprastas – šiam įrenginiui nėra parašyta draiverių jokiam autopilotui.
Scanse sweep nėra ypatingai naujas produktas. Jis pardavinėjamas jau nuo 2016 metų pavasario. Pagal kainą jį būtų galima priskirti vidutinei klasei, nes rinkoje yra kur kas brangesnių, ir kur kas pigesnių tokio tipo prietaisų. Įrenginio sąsaja su vartotoju nėra nei kažkuo ypatinga nei sudėtinga. Ją sudaro nuoseklusis UART ar COM portas, bei 10-ties komandų sąrašas, prie kurio reiktų pridėti įvairiais kampais pamatuoto atstumo iki objektų duomenų bloką. Draiverių programavimas, mano nuomone, tikrai nereikalauja itin aukštos kvalifikacijos įterptųjų sistemų programuotojo.
Kodėl gi niekas iki šiol neparašė draiverių?.. Neaišku... Kaip ten bebūtų, jeigu nėra draivero, vadinasi jį reikia parašyti
.
Tiems, kas nežino, kas yra draiveris, parašysiu, jog draiveris – tai programa, kuri priderina konkretų įrenginį prie žymiai bendresnio ir abstraktesnio įrenginio aprašo, vadinamo įrenginių klase. Įrenginių klasės egzistuoja tik gana sudėtingose sistemose, kurios nori sujungti į vieną visumą kuo daugiau panašaus tipo įrenginių (pvz. visus gaminamus giroskopus į giroskopų klasę, visus gaminamus GPS į GPS klasę ir pan.). Kitaip sakant, draiveris yra virtuali tarpinė arba jungiamasis sluoksnis, kuris paslepia visus konkretaus įrenginio specifiškumus ir subtilybes (pvz. registrus, įvesties-išvesties sąsajas, įrenginio konfigūravimą, paleidimo ir išjungimo seką ir t.t. ir pan.) ir sistemai pateikia tik tokius duomenis, prie kurių sistema yra "pripratusi" ir su kuriais "moka" dirbti
.
Pirma problema, su kuria susidūriau, buvo laidai ir jungtys. Scanse sweep LiDAR‘o jungtys yra visiškai kitokios nei PIXHAWK‘o, todėl šie du prietaisai lengvai nebūtų susijungę bet kokiu atveju. Bet tai ne vienintelė bėda. Pasirodo paties LiDAR‘o laidai po kažkokios avarijos buvo pažeisti (jungtys irgi). Iš 6 gyslų, sudarančių normalų prijungimo kabelį, buvo likę tik 2. Scanse sweep LiDAR‘as bendravimui su išoriniu pasauliu naudoja nuosekliąją UART/COM sąsają, todėl, norint prijungti prietaisą prie kito įrenginio ar kompiuterio, būtina turėti bent 4 laidus – maitinimo + ir -, bei signalinius RX ir TX. Teko užsakinėti naujus laidus su atitinkamomis jungtimis LiDAR‘ui ir PIXHAWK‘ui, bei laukti, kol jie atkeliaus iš už jūrų marių. O kol laidai keliauja, prietaisus tarpusavyje galima laikinai sujungti prilituojant plonus laidelius prie jungčių kontaktų, ypač kai tarpai tarp kontaktų nėra labai maži (net 1 mm).
Norint prilituoti laikinus laidelius, reikia išardyti LiDAR‘ą. Kartu galima pasižiūrėti, kas gyvena jo viduje. Pasirodo LiDAR‘as yra sudarytas bent iš keturių skirtingas funkcijas atliekančių modulių. Viršuje gyvena optika – kažkoks GARMIN‘o LiDAR‘as, iš kurio per „SlipRing“ kontaktus ateina keturi laidai į pagrindinę plokštę. Pagrindinėje plokštėje yra bent du mikrovaldikliai (uC). Vienas mikrovaldiklis yra . Jis greičiausiai komunikuoja su GARMIN‘o LiDAR‘u ir atlieka sąsajos tarp LiDAR‘o ir vartotojo (kompiuterio/skrydžio valdymo sistemos ir pan.) vaidmenį. Kitas mikrovaldiklis yra , kuris greičiausiai valdo variklį, sukantį LiDAR‘o „galvą“. Netoli šio mikrovaldiklio matyti trijų fazių bešepetėlinio variklio valdymo sistema (elektroninis draiveris).
Failo aprašymas: Scanse sweep board top
LiDAR_TearDown_TopView_sm.jpg [ 19.36 KiB | Peržiūrėta 4968 kartus(ų) ]
Variklio greitis ir pozicija matuojami / valdomi standartiniu būdu, panaudojus optinių impulsų formavimo elementą / moduliatorių / enkoderį / čioperį. Matoma optinė pora, sudaryta iš spinduolio ir fotodetektoriaus, o LiDAR‘o korpuse padaryti dantukai, sukantis varikliui, periodiškai uždengia ir vėl atidengia optinės poros elementus taip formuodami impulsus. Matuojant impulsų periodiškumą (laiką tarp impulsų bei pačių impulsų trukmę) galima gana tiksliai nustatyti variklio sukimosi greitį. Skaičiuojant impulsus, galima nustatyti variklio poziciją.
Failo aprašymas: Scanse swwp board side
LiDAR_TearDown_SideView_sm.jpg [ 16.59 KiB | Peržiūrėta 4968 kartus(ų) ]