3D globinska kamera Ruby
3D globinska kamera Ruby
Uporabniški priročnik
(v1.0) 28. september 2022
TEHNOLOGIJE VIZIJE
Nerian Vision GmbH Zettachring 2
70567 Stuttgart Nemčija
E-pošta: service@nerian.com www.nerian.com
Vsebina
1 Funkcionalnost je končanaview
4
2 priloženi deli
4
3 Splošne specifikacije
4
3.1 Podrobnosti o strojni opremi . . . . . . . . . . . . . . . . . . . . . . . . . . 4
3.2 Stereo ujemanje . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
3.3 Hitrost sličic in ločljivosti . . . . . . . . . . . . . . . . . . . 5
4 Laserska varnost
5
5 Mehanske specifikacije
6
5.1 Mere . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
5.2 Montaža . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
5.3 Temperatura . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
6 Fizični vmesniki
9
6.1 Vmesnik nadview . . . . . . . . . . . . . . . . . . . . . . . . . 9
6.2 Napajanje . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
6.3 Vrata GPIO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
6.3.1 Izhod sprožilca . . . . . . . . . . . . . . . . . . . . . . . 11
6.3.2 Sprožilni vnos . . . . . . . . . . . . . . . . . . . . . . . . 11
6.3.3 Sinhronizacijski impulz (PPS) . . . . . . . . . . . . . . . . 11
6.4 Gumb za ponastavitev . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
6.5 LED lučke stanja . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
7 Obdelava rezultatov
13
7.1 Popravljene slike . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
7.2 Karte disparitete . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
7.3 Projekcija barvne slike . . . . . . . . . . . . . . . . . . . . . . . 16
7.4 Časovni časamps in zaporedne številke. . . . . . . . . . . . . . . . 16
8 Omrežna konfiguracija
17
8.1 Konfiguracija IP . . . . . . . . . . . . . . . . . . . . . . . . . . 17
8.2 Jumbo okvirji . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
9 Konfiguracija
19
9.1 Stanje sistema . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
9.2 Prednastavitve . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
9.3 Predview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
9.4 Nastavitve pridobivanja . . . . . . . . . . . . . . . . . . . . . . . . . 23
9.4.1 Nastavitve formata . . . . . . . . . . . . . . . . . . . . . . . 23
9.4.2 Hitrost sličic . . . . . . . . . . . . . . . . . . . . . . . . . 24
1
9.4.3 Nadzor izpostavljenosti . . . . . . . . . . . . . . . . . . . . . . 24 9.4.4 Nadzor ravnovesja beline . . . . . . . . . . . . . . . . . . . 24 9.5 Omrežne nastavitve . . . . . . . . . . . . . . . . . . . . . . . . . . 25 9.6 Izhodni kanali . . . . . . . . . . . . . . . . . . . . . . . . . . 26 9.7 Vzdrževanje . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 9.8 Kalibracija . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 9.8.1 Plošča za umerjanje . . . . . . . . . . . . . . . . . . . . . . 29 9.8.2 Omejitev velikosti slike za kalibracijo . . . . . . . . 30 9.8.3 Snemanje kalibracijskih okvirjev . . . . . . . . . . . . . . . 31 9.8.4 Izvajanje kalibracije . . . . . . . . . . . . . . . . . . . 31 9.9 Nastavitve obdelave . . . . . . . . . . . . . . . . . . . . . . . . . 32 9.9.1 Način delovanja . . . . . . . . . . . . . . . . . . . . . . 32 9.9.2 Nastavitve neskladja . . . . . . . . . . . . . . . . . . . . . . 33 9.9.3 Nastavitve algoritma . . . . . . . . . . . . . . . . . . . . . 33 9.10 Napredne nastavitve samodejne osvetlitve in ojačanja . . . . . . . . . . . 35 9.10.1 Osvetlitev in ojačanje . . . . . . . . . . . . . . . . . . . . . 35 9.10.2 Ročne nastavitve . . . . . . . . . . . . . . . . . . . . . . . 36 9.10.3 Nastavitve ROI . . . . . . . . . . . . . . . . . . . . . . . . 37 9.11 Nastavitve sprožilca . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 9.12 Časovna sinhronizacija . . . . . . . . . . . . . . . . . . . . . . . 38 9.13 OdgviewUmerjanje rezultatov . . . . . . . . . . . . . . . . . . . 39 9.14 Samodejno ponovno umerjanje . . . . . . . . . . . . . . . . . . . . . . . . . 41 9.15 Interesna regija . . . . . . . . . . . . . . . . . . . . . . . . . . 42 9.16 Inercialna merilna enota . . . . . . . . . . . . . . . . . . . . . 43 9.16.1 Kalibracija inercialne merilne enote . . . . . . . 44
10 Informacije o uporabi API-ja
45
10.1 Splošne informacije . . . . . . . . . . . . . . . . . . . . . . . . 45
10.2 ImageTransfer Example . . . . . . . . . . . . . . . . . . . . . . 45
10.3 AsyncTransfer Example . . . . . . . . . . . . . . . . . . . . . . 47
10.4 3D rekonstrukcija . . . . . . . . . . . . . . . . . . . . . . . . . 48
10.5 Parametri . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
11 Priložena programska oprema
49
11.1 NVCom . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
11.2 GenICam GenTL Producer . . . . . . . . . . . . . . . . . . . . 50
11.2.1 Namestitev . . . . . . . . . . . . . . . . . . . . . . . . . 50
11.2.2 Virtualne naprave . . . . . . . . . . . . . . . . . . . . . . . 51
11.2.3 ID-ji naprav . . . . . . . . . . . . . . . . . . . . . . . . . . 52
11.3 Vozlišče ROS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
12 Podpora
52
13 Informacije o garanciji
53
2
14 Odprtokodne informacije
53
3
3 SPLOŠNE SPECIFIKACIJE
1 Funkcionalnost je končanaview
Ruby je globinska kamera, ki temelji na stereoviziji. Njegova dva enobarvna slikovna senzorja posnameta prizor nekoliko drugače viewpoložajih. S korelacijo slikovnih podatkov iz obeh slikovnih senzorjev lahko Ruby sklepa o globini vsake opazovane točke. Izračunana zemljevid globine se prek 1G Etherneta prenese v povezani računalnik ali drug vgrajeni sistem. Dodaten barvni senzor se uporablja za zajem barvnih informacij, barvna slika pa se samodejno poravna s podatki o globini.
Ruby lahko izvaja meritve aktivno ali pasivno. Za aktivne meritve se uporablja laserski projektor, ki projicira vzorec na vidne površine. To omogoča merjenje predmetov, tudi če so enotnega videza brez teksture.
V primerih, ko projiciranega vzorca ni mogoče opazovati zaradi močne svetlobe okolice, dolgih merilnih razdalj ali ker je projektor onemogočen, je meritve še vedno mogoče pridobiti pasivno. V primeru pasivnih meritev je potrebna zadostna tekstura površine za pridobitev natančnih rezultatov.
2 priloženi deli
Ko naročite novo globinsko kamero Ruby 3D pri Nerian Vision Technologies, morate vključiti naslednje dele:
· 3D globinska kamera Ruby · 12 V DC napajalnik z zamenljivimi omrežnimi priključki za Eu-
vrv, Severna Amerika, Velika Britanija in Avstralija · Tiskana navodila za uporabo · Ethernet kabel, 3 m
Če kateri od teh elementov manjka, se obrnite na podporo strankam.
3 Splošne specifikacije
3.1 Podrobnosti o strojni opremi
Slikovni senzor Ločljivost slike Format senzorja Goriščna razdalja Polje od View Projektor z vzorcem zaslonke
IMX296 1.5 MP 1/2.9″ 4.18 mm 62.2° × 48.8° (74.0° diagonalno) 3.0 Laser z naključnimi točkami (razred 1)
4
3.2 Stereo ujemanje
4 VARNOST LASERJA
Valovna dolžina projektorja Inercialni senzor (IMU) Maks. Stopnja merjenja IMU Napajanje Poraba energije Mere Teža V/I Delovna temperatura Skladnost
830 nm BNO085 400 Hz (magnetometer: 100 Hz) 11.2 30 V DC 9 W 130 × 92.5 × 34.5 mm pribl. 450 g Gigabit Ethernet, GPIO 0 40°C CE, FCC, UKCA, RoHS, laserski razred 1
3.2 Stereo ujemanje
Stereo algoritem Največja ločljivost Podprti formati slikovnih pik Razpon neskladja Hitrost sličic Ločljivost podpikslov Naknadna obdelava
Različica Semi-Global Matching (SGM) 1440 × 1056 slikovnih pik Mono8, Mono12, RGB8 32 do 256 slikovnih pik do 60 sličic na sekundo 4 bitov (1/16 slikovne pike) Preverjanje doslednosti, preverjanje edinstvenosti, interpolacija vrzeli, zmanjšanje šuma, filtriranje madežev
3.3 Dosegljive hitrosti sličic in ločljivosti slike
Največja hitrost sličic, ki jo je mogoče doseči, je odvisna od konfigurirane ločljivosti slike in obsega neskladja. V tabeli 1 je seznam priporočenih konfiguracij. To je le del razpoložljivega konfiguracijskega prostora. Različne ločljivosti slik in obsege neskladij je mogoče uporabiti za izpolnjevanje posebnih zahtev aplikacije.
Tabela 1: Največja hitrost sličic glede na ločljivost slike in obseg neskladja.
Razpon neskladja
128 slikovnih pik 256 slikovnih pik
Ločljivost slike 720×512 1024×768 1440×1026
60 sličic na sekundo ni na voljo
30 sličic na sekundo 17 sličic na sekundo
15 sličic na sekundo 8 sličic na sekundo
4 Laserska varnost
Ruby vsebuje infrardeči laserski projektor, ki ni viden človeškemu očesu. Laser je skladen z mednarodnima standardoma IEC 60825-1:2014 in DIN EN 60825-1:2015 za razred 1. Zato velja, da je laser varen za oči in varnostni ukrepi niso potrebni.
5
5 MEHANSKE SPECIFIKACIJE
Slika 1: Laserska nalepka na Rubyjevi spodnji strani.
Obvestilo o laserju razreda 1 je na nalepki izdelka na spodnji strani naprave. Ta oznaka je prikazana na sliki 1.
Kakršne koli spremembe ali modifikacije sistema, ki jih proizvajalec izrecno ne odobri, lahko razveljavijo uporabnikovo pooblastilo za upravljanje opreme.
5 Mehanske specifikacije
5.1 Mere
Sliki 2 in 3 prikazujeta Ruby iz različnih smeri. Priložene mere so izmerjene v milimetrih.
5.2 Montaža
Ohišje Ruby ima dva montažna nosilca ob straneh naprave. Vsak montažni nosilec ima dve luknji z režami, kar omogoča namestitev Rubyja na ravno površino. Mere in postavitev lukenj z režami so prikazane na sliki 2b.
Poleg tega ima Ruby na spodnji strani luknjo z navojem 1/4″ UNC. To omogoča namestitev Rubyja na standardno stojalo za kamero.
5.3 Temperatura
Ruby lahko deluje brez dodatnih ukrepov pri temperaturah okolice med 0 °C in 40 °C. Če je potrebno delovanje pri višji temperaturi okolja, je treba izvesti dodatne ukrepe za hlajenje. Takšni ukrepi lahko vključujejo namestitev Rubyja na toplotno prevodno površino in/ali uporabo ventilatorja za povečanje pretoka zraka. Prosimo, spremljajte temperaturne senzorje naprave (glejte razdelek 9.1), ko uporabljate Ruby pri tako povišanih temperaturah okolja.
6
5.3 Temperatura
5 MEHANSKE SPECIFIKACIJE
(a) Spredaj view
(b) Vrh view
Slika 2: (a) spredaj in (b) zgoraj view rubina z dimenzijami v milimetrih.
7
5.3 Temperatura
5 MEHANSKE SPECIFIKACIJE
(a) Nazaj view
(b) Dno view
Slika 3: (a) Hrbet in (b) dno view rubina z dimenzijami v milimetrih.
8
6 FIZIČNI VMESNIKI
Slika 4: Razpoložljivi vmesniki na zadnji strani.
6 Fizični vmesniki
6.1 Vmesnik nadview
Slika 4 prikazuje razpoložljive fizične vmesnike na zadnji strani Rubyja. Ti vmesniki so: Napajalni konektor za enosmerni tok: Povezuje se z napajalnikom znotraj dovoljenega
voltage območje (glejte razdelek 6.2). Vrata GPIO: oddajo sprožilni signal ali sinhronizirajo Ruby z zunanjim
vir sprožitve. Deluje tudi kot vhod za časovni sinhronizacijski impulz (glejte razdelek 6.3). Ethernetna vrata: Vrata za povezavo Rubyja z odjemalskim računalnikom ali drugim vgrajenim sistemom prek 1G Etherneta. Ta vrata se uporabljajo za pošiljanje rezultatov obdelave in za zagotavljanje dostopa do konfiguracijskega vmesnika. Gumb za ponastavitev: gumb za ponastavitev vdelane programske opreme naprave nazaj na tovarniško stanje (glejte razdelek 6.4). LED za napajanje: zelena LED, ki označuje, da je naprava vklopljena. LED statusa povezave (zelena): označuje, ali je bila ethernetna povezava uspešno vzpostavljena (glejte razdelek 6.5). LED statusa pridobitve (oranžna): označuje stanje pridobivanja slike in poroča o morebitnih okvarah laserja (glejte razdelek 6.5).
9
6.2 Napajalnik
6 FIZIČNI VMESNIKI
1 6
Dodelitev pinov 1 Sprožilni vhod (optično izoliran) 2 Sinhronizacijski vhod (optično izoliran) 3 Sprožilni izhod (optično izoliran) 4 Opto GND 5 +5V 6 GND
Slika 5: Razporeditev pinov priključka GPIO.
6.2 Napajalnik
Napajalni konektor mora biti priključen na priloženi napajalnik ali drug ustrezen voltage vir. Pri uporabi alternativnega napajanja se prepričajte, da voltage je v dovoljenem območju 11.2 – 30 V DC. Višje voltaglahko poškoduje napravo. Napajalnik mora biti ocenjen na vsaj 10 W.
Napajalni konektor uporablja vtičnico z notranjim premerom 6.5 mm in premerom nožice 2 mm. Zunanji premer priključka mora biti 5.5 mm. Polariteta mora biti središče pozitivno.
6.3 Vrata GPIO
Vrata GPIO omogočajo dostop do naslednjih signalov:
· Izhod sprožilca
· Sprožilni vnos
· Sinhronizacijski impulz (PPS)
· Izhod +5V DC
Vsi vhodni in izhodni signali podatkov so povezani preko optosklopnikov. Zato je treba zatič Opto GND uporabiti kot ozemljitveno referenco za vse signale.
Poleg V/I signalov Ruby zagotavlja 5 V DC izhod, ki lahko odda tok do 100 mA. Če je tokovna omejitev presežena, se izhodna moč izklopi.
Priključek GPIO uporablja ženski priključek serije Molex Micro-Lock Plus 505567. Razporeditev pinov je prikazana na sliki 5. Naslednje številke delov proizvajalca ustrezajo ustreznim konektorjem in jih je treba uporabiti za povezovanje:
45111-0606 204532-0601
Ustrezni konektor s 600 mm kablom Ustrezni konektor brez kablov
Značilnosti vsakega posameznega V/I signala so opisane v naslednjih pododdelkih.
10
6.3 Vrata GPIO
6 FIZIČNI VMESNIKI
Izhod sprožitve 6
1
Opto GND
4
3
TLP293
GND
Slika 6: Shema izhodnega vezja sprožilca
6.3.1 Sprožilni izhod
V aplikaciji strojnega vida bo morda treba sinhronizirati druge senzorje ali osvetlitev (npr. projektor vzorcev) s pridobivanjem slike Rubyja. V ta namen lahko Ruby odda sprožilni signal z odprtim kolektorjem na pin 3 GPIO. Signal je izoliran prek optičnega spojnika, kot je prikazano v shemi vezja na sliki 6.
Absolutne največje vrednosti optičnega sklopnika so:
Kolektor-emiter voltage: maks. 80 V
Emitter-collector voltage: maks. 7 V
Kolektorski tok:
maks. 50 mA
Odvajanje moči kolektorja: max. 100 mW
Prosimo, glejte razdelek 9.11 za nadaljnje podrobnosti o konfiguraciji izhoda sprožilca.
6.3.2 vnos sprožilca
Namesto da bi sinhroniziral drugo opremo z Rubyjevim zajemom slike, lahko Ruby sinhronizira tudi svoje zajeme slik z zunanjim prožilnim virom z uporabo prožilnega vhodnega signala na nožici 1.tagRaven vhodnega prožilnega signala mora biti med 3.3 V in 24 V. Ruby porabi 2 mA toka za ta signal. Prosimo, glejte razdelek 9.11 za nadaljnje podrobnosti o konfiguraciji vhoda sprožilca.
6.3.3 Sinhronizacijski impulz (PPS)
Sinhronizacijski impulz iz zatičev 2 je vhodni signal, ki se lahko uporablja za sinhronizacijo Rubyjeve notranje ure z visoko natančnostjo. Kadar koli prejme pozitiven rob signala, lahko Ruby ponastavi svoj notranji čas na 0 ali shrani trenutni sistemski čas in ga pošlje z naslednjim okvirjem. VoltagNapetost tega impulza mora biti med 3.3 in 24 V. V tipični aplikaciji se impulz ustvari iz vira impulza na sekundo (PPS).
Za podrobnosti o tem, kako konfigurirati sinhronizacijski impulz in druge metode sinhronizacije, kot sta PTP ali NTP, glejte razdelek 9.12.
11
6.4 Gumb za ponastavitev
6 FIZIČNI VMESNIKI
6.4 Gumb za ponastavitev
Na hrbtni strani naprave je vdolbina za ponastavitev. Gumb se uporablja za ponastavitev vdelane programske opreme Ruby na tovarniško stanje. Če se naprava ne odziva zaradi napačne konfiguracije ali okvare vdelane programske opreme, je treba izvesti ponastavitev. Ko se začne postopek ponastavitve, se izgubijo vse konfiguracije, umerjanje in nameščene posodobitve vdelane programske opreme.
Za začetek ponastavitve nežno pritisnite gumb z buciko, medtem ko je naprava izklopljena. Nato priključite napajanje, medtem ko držite gumb pritisnjen, in ga kmalu zatem spustite.
Postopek ponastavitve bo trajal nekaj minut. Ko je ponastavitev končana, se bo naprava normalno zagnala in bo vidna v omrežju s privzetim naslovom IP. Z aplikacijo NVCom (glejte razdelek: 11.1) lahko spremljate, kdaj postane naprava odkrita po končani ponastavitvi.
6.5 LED diode stanja
Naprava vsebuje tri statusne lučke LED, kot je prikazano na sliki 4:
LED za napajanje (zelena): LED za napajanje sveti zeleno, ko je naprava vklopljena.
LED statusa povezave (zelena): označuje, ali je bila povezava Ethernet uspešno vzpostavljena. Če lučka LED ne zasveti po priključitvi ethernetnega kabla, preverite, ali je kabel poškodovan in se prepričajte, da oddaljeni sistem (stikalo ali gostiteljski računalnik) deluje.
LED statusa pridobivanja (oranžna): ta LED poroča o stanju pridobivanja slike in morebitnih okvarah laserja:
Izklopljeno: pridobivanje slik se še ni začelo. To velja, če se naprava še vedno zaganja. Preverite web vmesnik za napake (glejte razdelek 9.1), če lučka LED ne sveti več kot nekaj minut po vklopu.
Utripa: pridobivanje slike se je uspešno začelo in naprava deluje, kot je predvideno.
Stalno sveti: Zaznana je bila okvara laserja in laserski projektor je bil izklopljen. Za rešitev te napake se obrnite na podporo.
12
7 OBDELAVA REZULTATOV
(a)
(b)
Slika 7: Nprample za (a) nepopravljeno in (b) popravljeno sliko kamere.
7 Obdelava rezultatov
7.1 Popravljene slike
Tudi z natančno poravnanimi slikovnimi senzorji Ruby verjetno ne boste prejeli slik, ki bi ustrezale pričakovanemu rezultatu idealne stereo kamere. Na slike vplivajo različna popačenja, ki so posledica napak v optiki in postavitvi senzorja. Zato je prvi korak obdelave, ki se izvede, operacija nepopačenja slike, ki je znana kot korekcija slike.
Popravljanje slike zahteva natančno poznavanje projektivnih parametrov nastavitve kamere. Te je mogoče določiti s kalibracijo kamere. Za podrobno razlago postopka umerjanja kamere glejte razdelek 9.8. Ruby bo odposlan vnaprej umerjen in ponovna kalibracija med življenjsko dobo naprave običajno ne bo potrebna.
Slika 7a prikazuje example slika kamere, kjer je bila kamera usmerjena proti kalibracijski plošči. Robovi plošče so videti rahlo ukrivljeni zaradi radialnih popačenj, ki jih povzroča optika kamere. Slika 7b prikazuje isto sliko po korekciji slike. Tokrat so vsi robovi kalibracijske plošče videti popolnoma ravni.
7.2 Karte disparitete
Rezultati stereo ujemanja so podani v obliki zemljevida neskladja z vidika leve enobarvne kamere. Zemljevid neskladja povezuje vsako slikovno piko na sliki leve kamere z ustrezno slikovno piko na sliki desne kamere. Ker sta bili obe sliki predhodno popravljeni, da se ujemata z idealno geometrijo stereo kamere, bi se morale ustrezne slikovne pike razlikovati le v vodoravnih koordinatah. Zemljevid disparitete tako kodira samo horizontalno koordinatno razliko.
13
7.2 Karte disparitete
7 OBDELAVA REZULTATOV
(a)
(b)
Slika 8: Nprample za (a) sliko leve kamere in ustrezen zemljevid neskladja.
Exampslike za levo sliko kamere in ustrezen zemljevid neskladja sta prikazana na slikah 8a in 8b. Tu je zemljevid neskladja barvno kodiran, pri čemer modri odtenki odražajo majhne razlike, rdeči odtenki pa velike razlike. Kot je razvidno, je neskladje sorazmerno z inverzno globino ustrezne točke scene.
Razpon neskladja določa področje slike, ki se išče za iskanje ujemanja slikovnih pik. Velik razpon neskladja omogoča zelo natančne meritve, vendar povzroča visoko računsko obremenitev in tako zniža dosegljivo hitrost sličic. Ruby podpira nastavljivo območje neskladja (glejte razdelek 9.9), ki uporabniku omogoča izbiro med visoko natančnimi ali hitrimi meritvami.
Možno je preoblikovati karto disparitete v niz 3D točk. To je mogoče storiti na pravilni metrični lestvici, če je bil sistem pravilno umerjen. Preoblikovanje zemljevida neskladja v nabor 3D točk zahteva poznavanje matrike Q za preslikavo neskladja v globino, ki se izračuna med umerjanjem kamere in Ruby pošlje skupaj z vsakim zemljevidom neskladja. 3D lokacijo xyz T točke s slikovnimi koordinatami (u, v) in dispariteto d je mogoče rekonstruirati na naslednji način:
xy =
z
1 w
x · y,
z
z
x
u
y
z
=
Q
·
v
d
w
1
Pri uporabi matrike Q, ki jo zagotavlja Ruby, bodo prejete koordinate izmerjene v metrih glede na koordinatni sistem, prikazan na sl.
14
7.2 Karte disparitete
z (optična os)
7 OBDELAVA REZULTATOV
x
y
Slika 9: Koordinatni sistem, uporabljen za 3D rekonstrukcijo.
ure 9. Tukaj se izvor ujema s središčem projekcije leče (lokacija zaslonke v modelu kamere z luknjo) za levo enobarvno kamero. Učinkovito izvajanje te transformacije je zagotovljeno z razpoložljivim API-jem (glejte razdelek 10.4).
Ruby izračuna karte neskladja z ločljivostjo neskladja, ki je nižja od ene slikovne pike. Zemljevidi neskladja imajo bitno globino 12 bitov, pri čemer spodnji 4 biti vsake vrednosti predstavljajo delno komponento neskladja. Zato je treba vsako vrednost na zemljevidu neskladja deliti s 16, da dobimo pravilno velikost neskladja.
Ruby uporablja več tehnik naknadne obdelave, da bi izboljšal kakovost zemljevidov neskladja. Nekatere od teh metod zaznajo napačna odstopanja in jih označijo kot neveljavne. Neveljavna odstopanja so nastavljena na 0xFFF, kar je najvišja vrednost, ki jo je mogoče shraniti v 12-bitni zemljevid odstopanja. V bivšemampna zemljevidu nesorazmerij s slike 8b so neveljavne razlike prikazane sivo.
Upoštevajte, da je na levem robu slike zemljevida neskladij običajno trak neveljavnih razlik. To vedenje je pričakovano, saj je zemljevid neskladja izračunan z vidika leve kamere. Območij slike na levem robu slike leve kamere desna kamera ne more opazovati, zato ni mogoče izračunati nobene veljavne razlike. Bolj levo kot je predmet, dlje mora biti oddaljen, da ga lahko vidi tudi desna kamera. Zato je mogoče celotno območje globine opazovati samo za slikovne pike leve slike z vodoravno koordinato slike u dmax.
Podobno lahko pričakujemo, da se bodo neveljavna odstopanja pojavila na levi strani katerega koli predmeta v ospredju. To senci podobno neveljavno območje je posledica zakritega vidnega ozadja na sliki desne kamere, ne pa tudi na sliki leve kamere. Ta učinek je znan kot okluzijska senca in je jasno viden v priloženem example slika.
15
7.3 Projekcija barvne slike
7 OBDELAVA REZULTATOV
(a)
(b)
Slika 10: Nprample za (a) zemljevid neskladja in (b) projicirano barvno sliko z artefaktom.
7.3 Projekcija barvne slike
Levi enobarvni senzor se uporablja kot referenčna kamera za izračun globine. Čeprav je barvni senzor nameščen tik ob njem, bo med barvno sliko in zemljevidom neskladja/levo enobarvno sliko prišlo do paralakse (navideznega optičnega premika).
Ta premik je mogoče nadomestiti s projiciranjem barvne slike nazaj v view referenčne kamere. Ko je ta projekcija izvedena, bodo imele ustrezne slikovne točke med levo enobarvno sliko, zemljevidom disparitete in barvno sliko enake slikovne koordinate, vse tri slike pa je mogoče neposredno prekriti.
Ruby je sposoben samodejno izvesti to projekcijo. Projekcija je odvisna od globinskih meritev in žal ni popolna. To pomeni, da je pričakovati nekaj vizualnih artefaktov. Količina artefaktov je močno odvisna od kakovosti merjenja globine. Artefakti lahko prizadenejo zlasti robove predmetov.
Povečan pododdelek exampbarvno sliko in zemljevid globine, ki prikazujeta ta učinek, sta vidna na sliki 10. V primerih, ko je paralaksa med meritvami globine in barvno sliko sprejemljiva, se artefaktom lahko izognete tako, da onemogočite to projekcijo. Za več podrobnosti glejte razdelek 9.6.
7.4 Časovni časamps in zaporedne številke
Vsak niz slik, ki jih prenaša Ruby, vključuje tudi časovni časamp in zaporedno številko. Časamp se meri z natančnostjo mikrosekunde in je nastavljen na čas, ko so slikovni senzorji začeli osvetljevati okvir.
16
8 KONFIGURACIJA OMREŽJA
Zato je treba pri poskusu merjenja zakasnitve senzorja vedno upoštevati čas izpostavljenosti.
Kot je pojasnjeno v razdelkih 6.3.3 in 9.12, je mogoče Rubyjevo notranjo uro sinhronizirati z zunanjim signalom ali časovnim strežnikom. To neposredno vpliva na proizvedeni čas stamps. Ko je sinhroniziran s časovnim strežnikom, čas stamps se merijo v mikrosekundah od 1. januarja 1970, 00:00:00 UTC. Če se sinhronizacija ne izvede, je notranja ura ob vklopu nastavljena na 0. Pri sinhronizaciji z zunanjim signalom PPS, kot je razloženo v razdelku 6.3.3, je ura na robu vhodnega naraščajočega signala nastavljena na 0.
Upoštevajte, da sinhronizacija s signalom PPS povzroči tudi negativen časamps. To se zgodi, ko je prejet signal za sinhronizacijo, medtem ko Ruby obdeluje že zajet par slik. Negativni časamp je takrat časovna razlika med sprejemom sinhronizacijskega signala in časom zajema trenutnega para slik.
8 Omrežna konfiguracija
Priporočljivo je, da Ruby povežete neposredno z ethernet vrati gostiteljskega računalnika, brez vmesnih stikal ali vozlišč. To je zato, ker Ruby proizvaja omrežne podatke z zelo visoko prepustnostjo, kar lahko povzroči izgubo paketov pri uporabi omrežnih stikal, ki ne morejo doseči zahtevane zmogljivosti. Zagotoviti je treba, da omrežni vmesnik gostiteljskega računalnika zmore dohodno podatkovno hitrost 900 MBit/s.
Potrebne nastavitve omrežne konfiguracije za gostiteljski računalnik so opisane v naslednjih pododdelkih.
8.1 Konfiguracija IP
Ruby bo privzeto uporabil naslov IP 192.168.10.10 s podomrežno masko 255.255.255.0. Če pa je v omrežju prisoten strežnik DHCP, lahko Rubyju dodeli drug naslov. V tem primeru uporabite priloženo programsko opremo NVCom za odkrivanje naprave (glejte razdelek 11.1).
Če v omrežju ni nobenega drugega strežnika DHCP, bo Ruby zagnal lasten strežnik DHCP. To pomeni, da če je vaš računalnik konfiguriran za uporabo dinamičnega naslova IP, bo računalnik samodejno prejel naslov IP v pravilnem podomrežju in nadaljnja konfiguracija ni potrebna.
Če vaš računalnik ni konfiguriran za uporabo dinamičnega naslova IP ali je Rubyjev integrirani strežnik DHCP onemogočen, morate svoj naslov IP konfigurirati ročno. Za Windows 10 sledite tem korakom:
1. Kliknite meni Start > Nastavitve > Omrežje in internet > Ethernet > Spremeni možnosti adapterja.
2. Z desno miškino tipko kliknite želeno Ethernet povezavo.
17
8.2 Jumbo okvirji
8 KONFIGURACIJA OMREŽJA
3. Kliknite `Lastnosti'
4. Izberite `Internet Protocol Version 4 (TCP/IPv4)'.
5. Kliknite `Lastnosti'.
6. Izberite `Uporabi naslednji naslov IP'.
7. Vnesite želeni naslov IP (192.168.10.xxx).
8. Vnesite podomrežno masko (255.255.255.0).
9. Pritisnite OK.
Za Linux uporabite naslednje ukaze za začasno nastavitev naslova IP 192.168.10.xxx na omrežnem vmesniku eth0: sudo ifconfig eth0 192.168.10.xxx omrežna maska 255.255.255.0
8.2 Jumbo okvirji
Za največjo zmogljivost mora biti Ruby konfiguriran za uporabo Jumbo okvirjev (glejte razdelek 9.5). Privzeto podpora za Jumbo Frame morda ni omogočena v dostavljeni konfiguraciji, saj to zahteva ustrezno konfiguracijo omrežnega vmesnika gostiteljskega računalnika.
Če je Ruby dostopen prek web vmesnik in odkrit na seznamu naprav (npr. v NVCom, glejte razdelek 11.1), vendar niso prejeti slikovni podatki (0 sličic na sekundo), to lahko pomeni, da so Jumbo okvirji aktivirani v Rubyju, vendar omrežna povezava zadevnega odjemalskega računalnika ni pravilno konfiguriran, da jih sprejme.
Če želite aktivirati podporo za Jumbo Frame v sistemu Windows 10, sledite tem korakom:
1. Odprite `Središče za omrežje in skupno rabo'
2. Odprite pogovorno okno lastnosti želene omrežne povezave
3. Pritisnite gumb `Konfiguriraj…'
4. Odprite zavihek `Napredno'
5. Izberite `Jumbo Packet' in izberite želeno velikost paketa (glejte sliko 11)
Upoštevajte, da za razliko od Linuxa nekateri omrežni gonilniki Windows štejejo tudi 14-bajtno glavo Ethernet kot del velikosti paketa. Ko Ruby konfigurirate za uporabo 9000 bajtov MTU, lahko računalnik z operacijskim sistemom Windows zahteva velikost paketa 9014 bajtov.
V sistemu Linux lahko podporo za Jumbo Frame aktivirate z nastavitvijo dovolj velikega MTU prek ukaza ifconfig. Za konfiguracijo 9000 bajtov MTU za vmesnik eth0 uporabite naslednjo ukazno vrstico:
18
9 KONFIGURACIJA
Slika 11: Konfiguracija Jumbo Frames v sistemu Windows > sudo ifconfig eth0 mtu 9000 Upoštevajte, da se lahko ime vmesnika razlikuje od eth0, zlasti v novejših izdajah Linuxa. MTU je samodejno dodeljen v skladu z nastavitvami Ruby Jumbo Frame vsakič, ko računalnik Linux prejme konfiguracijo od aktivnega strežnika Ruby DHCP (glejte razdelek 9.5). V sistemu Windows samodejna dodelitev MTU ne deluje, ker Windows ne podpira te funkcije.
9 Konfiguracija
Ruby je konfiguriran prek a web vmesnik, do katerega lahko pridete tako, da v brskalnik vnesete njegov naslov IP. Privzeti naslov je http://192.168.10.10, vendar če je v omrežju prisoten strežnik DHCP, lahko Rubyju dodeli drug naslov (glejte razdelek 8.1). V tem primeru uporabite priloženo programsko opremo NVCom za odkrivanje naprave (glejte razdelek 11.1).
Če je bil Ruby pravkar priključen, bo trajalo nekaj sekund, preden se web vmesnik je dostopen. Za uporabo web vmesnik potrebujete brskalnik s podporo za HTML 5. Uporabite najnovejšo različico enega od glavnih brskalnikov, kot so Chrome, Firefox, Safari ali Edge.
The web-vmesnik je razdeljen na dva dela: Splošne nastavitve in Ad19
9.1 Stanje sistema
9 KONFIGURACIJA
Slika 12: Posnetek zaslona strani s stanjem konfiguracije.
napredne nastavitve. Strani s splošnimi nastavitvami vsebujejo najpogosteje prilagojene parametre. Spreminjanje samo teh parametrov bi moralo zadostovati za večino aplikacij. Manj pogosto prilagojene parametre, ki so lahko pomembni za zelo specifične aplikacije, lahko najdete na straneh z naprednimi nastavitvami.
9.1 Stanje sistema
Prva stran, ki jo vidite, ko odprete web vmesnik je stran s statusom sistema, ki je prikazana na sliki 12. Na tej strani lahko najdete naslednje informacije:
Model: ime modela vaše naprave.
Stanje umerjanja: Zagotavlja informacije o tem, ali je bil sistem pravilno umerjen.
Status obdelave: Označuje, ali je bil podsistem za obdelavo slik zagnan. Če temu ni tako, je morda prišlo do težave s konfiguracijo ali pa je prišlo do sistemske napake. V tem primeru si oglejte sistemske dnevnike. Podsistem za obdelavo slik se bo zagnal takoj, ko bo vzrok napake odpravljen.
Temperatura SOC: temperatura osrednjega sistema na čipu (SoC), ki izvaja vse procesne naloge. Največja delovna temperatura
20
9.2 prednastavitev
9 KONFIGURACIJA
Slika 13: Posnetek zaslona strani s prednastavitvami konfiguracije.
za uporabljeni SoC je pri 100 C. Zeleno-oranžno-rdeče barvno kodiranje se uporablja za signalizacijo dobrih, alarmantnih in kritičnih temperatur.
Levi/desni/barvni slikovni senzor: temperature čipa za levi, desni in barvni slikovni senzor. Najvišja delovna temperatura za slikovna tipala je 75 C. Tako kot za temperaturo SOC je uporabljeno zeleno-oranžno-rdeče barvno kodiranje.
Sistemski dnevniki: seznam sporočil sistemskega dnevnika, razvrščenih po času. Pri rednem delovanju boste našli informacije o trenutnem delovanju sistema. V primeru napak sistemski dnevniki vsebujejo ustrezna sporočila o napakah.
9.2 prednastavitev
Za izbrane kombinacije ločljivosti slike in hitrosti sličic so na voljo različne prednastavitve konfiguracije. Uporaba prednastavitve je zelo priporočljiva, saj bo zagotovila optimalno uporabo zmogljivosti Rubyja.
Slika 13 prikazuje prednastavitve web-vmesniška stran. Nalaganje prednastavitve bo spremenilo samo parametre, ki so pomembni za dano konfiguracijo. Drugi parametri ne bodo spremenjeni. Če bi morali biti vsi parametri nastavljeni na želeno privzeto vrednost, je priporočljivo, da najprej izvedete ponastavitev konfiguracije (glejte razdelek 9.7) in nato naložite želeno prednastavitev.
21
9.3 Predview
9 KONFIGURACIJA
Slika 14: Posnetek zaslona pred konfiguracijoview strani.
9.3 Predview
Predview stran, ki je prikazana na sliki 14, zagotavlja živo predview trenutno izračunane karte disparitete. Prepričajte se, da vaša omrežna povezava podpira visoko pasovno širino, ki je potrebna za pretakanje video podatkov (glejte razdelek 8.2). Za uporabo predview potrebujete neposredno omrežno povezavo z Rubyjem. Vmesnega proxy strežnika ali usmerjevalnika, ki izvaja prevajanje omrežnih naslovov (NAT), ni mogoče uporabiti.
Pri odpiranju predview stran, Ruby preneha prenašati slikovne podatke na katerega koli drugega gostitelja. Prenos se nadaljuje takoj, ko se okno brskalnika zapre, uporabnik pritisne gumb za premor pod preview ali če se uporabnik pomakne na drugo stran. Samo en odprt primerek predview stran ali katera koli druga stran, ki pretaka video podatke v brskalnik, dovoljena naenkrat. Če poskusite odpreti več kot enkrat, bo samo en primerek prejel podatke.
Predview ki je prikazan v brskalniku, ne odraža celotne kakovosti izračunane karte neskladja. Zlasti je hitrost sličic omejena na 20 sličic na sekundo in natančnost podpikslov ni na voljo. Za prejem polnokakovostnega predview, uporabite aplikacijo NVCom, ki je opisana v razdelku 11.1.
Različne sheme barvnega kodiranja lahko izberete na spustnem seznamu pod preview območje. Na desni je prikazana barvna lestvica, ki zagotavlja informacije o preslikavi med barvami in vrednostmi neskladja. Možno
22
9.4 Nastavitve pridobivanja
9 KONFIGURACIJA
Slika 15: Posnetek zaslona konfiguracijske strani za nastavitve pridobivanja.
barvne sheme so:
Mavrica: mavrična barvna shema z nizkimi valovnimi dolžinami, ki ustrezajo velikim razlikam, in visokimi valovnih dolžinam, ki ustrezajo majhnim razlikam. Neveljavna odstopanja so prikazana sivo.
Rdeča/modra: preliv iz rdeče v modro, z rdečimi odtenki, ki ustrezajo velikim razlikam, in modrim odtenkom, ki ustrezajo nizkim razlikam. Neveljavna odstopanja so prikazana s črno barvo.
Neobdelani podatki: neobdelani podatki o neskladju brez barvnega kodiranja. Intenzivnost slikovnih pik se ujema s celoštevilsko komponento izmerjene razlike. Neveljavna odstopanja so prikazana v beli barvi.
9.4 Nastavitve pridobivanja
Najpomembnejši parametri za pridobivanje slik so navedeni na strani z nastavitvami pridobivanja, ki je prikazana na sliki 15. Ta stran je razdeljena na tri ločena področja.
9.4.1 Nastavitve formata Ta razdelek zajema vse nastavitve, povezane s formatom slike. Namesto spreminjanja nastavitev formata posebej priporočamo uporabo prednastavitve
23
9.4 Nastavitve pridobivanja
9 KONFIGURACIJA
(glejte razdelek 9.2) in spremenite posamezne nastavitve samo, če je to potrebno. To bo zagotovilo optimalno uporabo Rubyjevih zmogljivosti slikanja in obdelave.
Upoštevajte, da je treba pritisniti gumb za uporabo, da lahko morebitne spremembe konfiguracije začnejo veljati. Razpoložljive nastavitve so:
širina:
Višina: Format pikslov:
Združevanje vodoravno:
Navpično združevanje:
Svetlost projektorja vzorcev:
Širina v slikovnih pikah izbrane regije interesa (ROI). Glejte tudi razdelek 9.15 za več možnosti ROI. Višina v slikovnih pikah izbrane ROI. Želeni način kodiranja slikovnih pik. Razpoložljive nastavitve so 8-bitni mono (Mono8) ali 12-bitni mono (Mono12P). Število vodoravnih fotoobčutljivih celic, ki so združene za eno slikovno piko. Število navpičnih fotoobčutljivih celic, ki so združene za eno slikovno piko. Svetlost projektorja vzorca, podana v odstotkih. 100 % pomeni polno svetlost, medtem ko 0 % popolnoma izklopi projektor.
9.4.2 Hitrost sličic
Hitrost sličic, pri kateri Ruby snema slike, je mogoče poljubno konfigurirati. Največja hitrost sličic, ki jo je mogoče doseči, je odvisna od izbrane ločljivosti slike, obsega neskladja, formata slikovnih pik in omrežnega vmesnika. Če nastavite hitrost sličic, ki je višja od dosegljive največje vrednosti, lahko to povzroči nepravilno zajemanje slike ali pa ne zajema nobenih sličic. Priporočljivo je, da najprej izberete prednastavitev (glejte razdelek 9.2) z želeno ločljivostjo in šele nato zmanjšate hitrost sličic, če je potrebno.
9.4.3 Nadzor izpostavljenosti
Ruby bo samodejno nadzoroval osvetlitev in ojačanje senzorja, da se bo ujemal z dano povprečno intenzivnostjo, ki jo lahko izberete v območju `nadzora osvetlitve'. Če samodejna prilagoditev ni zaželena, lahko uporabnik alternativno določi ročno nastavitev časa osvetlitve in ojačanja. Naprednejše možnosti osvetlitve in ojačanja so na voljo na strani `napredne nastavitve samodejne osvetlitve in ojačanja' (glejte razdelek 9.10).
9.4.4 Nadzor ravnovesja beline
Ruby podpira samodejno ali ročno uravnavanje beline; faktor ravnovesja rdeče in modre barve je mogoče nadzorovati. To funkcijo je mogoče konfigurirati v območju `white balance control'. V privzetem načinu ravnovesja beline, `samodejno (siv svet)`, se nastavitve ravnovesja barvnega kanala prilagodijo v realnem času na podlagi hevristične ocene barve osvetlitve iz slikovnih podatkov. V `ročnem` načinu nastavitve beline je algoritem onemogočen, rdeča in
24
9.5 Omrežne nastavitve
9 KONFIGURACIJA
Slika 16: Posnetek zaslona konfiguracijske strani za omrežne nastavitve.
faktorje modrega ravnovesja je mogoče nastaviti ročno. V območju so prikazani tudi trenutno veljavni bilančni faktorji.
9.5 Omrežne nastavitve
Stran `omrežne nastavitve', ki je prikazana na sliki 16, se uporablja za konfiguracijo vseh parametrov, povezanih z omrežjem. Ruby lahko samodejno poizveduje o konfiguraciji omrežja prek zahtev odjemalca DHCP, ki so privzeto omogočene za pomoč pri preklapljanju med obstoječimi nastavitvami omrežja. Naprave Ruby v omrežju, ki dodeljuje nastavitve IP prek DHCP, je enostavno odkriti in do njih dostopati prek API-ja za odkrivanje naprav in tudi pripomočka NVCom (razdelek 11.1). Če ni prisotnih strežnikov DHCP, Ruby uporabi svoje nastavitve statičnega IP kot nadomestno možnost.
Podporo za odjemalca DHCP lahko onemogočite, če želite fiksne nastavitve IP in naprava ne bo preklapljala med različnimi omrežji. V tem primeru se nastavitve IP v tem razdelku uporabljajo kot statične vrednosti.
Ruby vsebuje tudi nadomestni strežnik DHCP. Privzeto je omogočen, vendar se zažene samo, ko prejšnja zahteva odjemalca DHCP ni uspela. To pomeni, da se noben strežnik DHCP nikoli ne zažene, če je podpora za odjemalca DHCP izklopljena, da se zagotovi, da Ruby ne bo nikoli tekmoval z obstoječim strežnikom DHCP. Strežnik Ruby DHCP uporablja nastavitve naslova IP kot osnovo; obseg zakupa je vedno v podomrežju /24 naslova IP.
V razdelku `Nastavitve IP' lahko onemogočite ali omogočite sestavo DHCP.
25
9.6 Izhodni kanali
9 KONFIGURACIJA
in določite naslov IP, masko podomrežja in naslov prehoda, ki se uporabljajo kot statična konfiguracija ali nadomestna konfiguracija, odvisno od nastavitev DHCP. Ko spreminjate nastavitve IP, se prepričajte, da je vaš računalnik v istem podomrežju ali da obstaja prehodni usmerjevalnik, prek katerega se lahko prenašajo podatki med obema podomrežjema. V nasprotnem primeru ne boste mogli dostopati do web vmesnika več in boste morda prisiljeni izvesti ponastavitev vdelane programske opreme (glejte razdelek 6.4).
V razdelku `omrežni protokol' lahko izberete osnovni omrežni protokol, ki bo uporabljen za dostavo rezultatov izračuna odjemalskemu računalniku. Možni možnosti sta TCP in UDP. Zaradi podatkov v realnem času z visoko pasovno širino priporočamo uporabo UDP.
Da bi dosegli najboljše možno delovanje, mora biti podpora za jumbo okvirje aktivirana v razdelku `jumbo okvirji'. Preden pa to storite, se morate prepričati, da je podpora za jumbo okvirje omogočena tudi za omrežni vmesnik vašega odjemalskega računalnika. Podrobnosti o tem, kako omogočiti podporo za jumbo okvirje v vašem računalniku, najdete v razdelku 8.2 na strani 18. Za odjemalske računalnike Linux se nastavitev jumbo okvirjev (MTU) samodejno uporabi, ko prejmete konfiguracijo od aktivnega strežnika Ruby DHCP. Upoštevajte, da v tem primeru sprememba načina Ruby Jumbo Frames ali velikosti MTU zahteva nove zakupe DHCP za širjenje nastavitve (npr. z odklopom in ponovnim vstavljanjem omrežnega kabla).
9.6 Izhodni kanali
Aktivne izhodne kanale je mogoče konfigurirati na strani `izhodni kanali'. Izhodni kanal je slikovni podatkovni tok, ki se prenaša po omrežju. Na voljo so naslednji izhodni kanali:
· Izhod leve kamere
· Izhod neskladja
· Izhod desne kamere
· Barvni izhod kamere
Če je način delovanja (glejte razdelek 9.9) nastavljen na stereo ujemanje (privzeto) ali popravek, se slikovni podatki vseh izhodnih kanalov popravijo (za podrobnosti glejte razdelek 7.1). Če je način delovanja nastavljen na prehod, bodo slike kamere posredovane brez sprememb.
Kot je opisano v razdelku 7.3, se lahko slika barvne kamere projicira na view leve kamere. To projekcijo je mogoče aktivirati z izbiro ustrezne možnosti za parameter `način barvnega izpisa'.
Upoštevajte, da povečanje števila aktivnih izhodnih kanalov prav tako poveča obremenitev omrežja in lahko povzroči zmanjšano hitrost sličic. Vse specifikacije delovanja, podane v tem dokumentu, se nanašajo na konfiguracijo z aktiviranim samo barvnim in disparitetnim izhodnim kanalom.
26
9.7 Vzdrževanje
9 KONFIGURACIJA
Slika 17: Posnetek zaslona konfiguracijske strani izhodnih kanalov.
9.7 Vzdrževanje
Na strani za vzdrževanje, ki je prikazana na sliki 18, lahko prenesete a file ki vsebuje trenutno konfiguracijo naprave in sistemske dnevnike, tako da pritisnete povezavo za prenos. V primeru tehničnih težav vključite to file v vaši zahtevi za podporo, tako da je mogoče konfiguracijo vaše naprave reproducirati in da je mogoče raziskati sistemske težave.
Prenesena konfiguracija file lahko znova naložite pozneje. To omogoča hitro preklapljanje med različnimi konfiguracijami naprav. Če želite naložiti konfiguracijo, izberite konfiguracijo file in pritisnite gumb za nalaganje. Upoštevajte, da lahko nalaganje drugačne konfiguracije spremeni naslov IP naprave. Da bi se izognili napačnemu konfiguracijskemu stanju, naložite samo konfiguracije, ki so bile predhodno prenesene prek web vmesnik.
Če imate težave s trenutno konfiguracijo naprave, lahko ponastavite vse konfiguracijske nastavitve na tovarniške privzete vrednosti s pritiskom na gumb za ponastavitev. Upoštevajte, da bo to tudi ponastavilo omrežno konfiguracijo, kar lahko povzroči spremembo Rubyjevega naslova IP.
Če Ruby kaže znake napačnega vedenja, lahko napravo znova zaženete s pritiskom na gumb `reboot now'. Trajalo bo nekaj sekund, dokler se ponovni zagon ne zaključi in Ruby znova zagotovi podatke o meritvah. Uporabite to funkcijo kot alternativo ciklu napajanja, če naprave ni mogoče
27
9.8 Kalibracija
9 KONFIGURACIJA
Slika 18: Posnetek zaslona strani za vzdrževanje konfiguracije.
lahko dostopen. Stran za vzdrževanje vam poleg tega omogoča izvajanje posodobitev vdelane programske opreme. Uporaba
ta funkcija samo za vdelano programsko opremo fileki jih je uradno izdal Nerian Vision Technologies. Če želite izvesti posodobitev vdelane programske opreme, izberite želeno vdelano programsko opremo file in pritisnite gumb za posodobitev. Postopek posodobitve bo trajal nekaj sekund. Med izvajanjem posodobitev vdelane programske opreme ne odklopite naprave, znova naložite strani za vzdrževanje ali znova kliknite gumba za posodobitev. V nasprotnem primeru lahko to povzroči poškodovano stanje vdelane programske opreme. Ko je posodobitev končana, bo naprava samodejno izvedla ponovni zagon z novo različico vdelane programske opreme. Konfiguracija naprave se ohrani med posodobitvami vdelane programske opreme, vendar boste pri nekaterih posodobitvah morda morali pozneje prilagoditi določene nastavitve.
9.8 Kalibracija
Ruby je dobavljen vnaprej umerjen in uporabniško umerjanje običajno ni potrebno v celotni življenjski dobi naprave. Če pa opazite zmanjšanje kakovosti in gostote meritev, lahko morebitne optične neusklajenosti popravite s ponovnim umerjanjem. V tem primeru se uporabi stran za umerjanje, ki je prikazana na sliki 19.
28
9.8 Kalibracija
9 KONFIGURACIJA
Slika 19: Posnetek zaslona konfiguracijske strani za umerjanje kamere.
9.8.1 Umeritvena plošča
Potrebujete kalibracijsko ploščo, ki je ravna plošča z vidnim kalibracijskim vzorcem na eni strani. Vzorec, ki ga uporablja Ruby, je sestavljen iz asimetrične mreže črnih krogov na belem ozadju, kot je prikazano na sliki 20.
Ko odprete stran za kalibracijo, morate najprej določiti velikost kalibracijske plošče, ki jo boste uporabili v procesu kalibracije. Prepričajte se, da ste izbrali pravilno velikost, sicer rezultatov umerjanja ne bo mogoče uporabiti za 3D-rekonstrukcijo s pravilno metrično lestvico (glejte razdelek 7.2).
Vzorec lahko prenesete neposredno s te strani. Preprosto izberite želeno velikost vzorca na spustnem seznamu `calibration board' in kliknite povezavo za prenos.
Če potrebujete kalibracijsko ploščo z velikostjo po meri, lahko izberete po meri s spustnega seznama `kalibracijska plošča'. To vam omogoča, da ročno vnesete podrobnosti o kalibracijski plošči. Prva dimenzija velikosti vzorca je število krogov v enem stolpcu mreže. To število mora biti enako za vse stolpce mreže krogov.
Število krogov na vrstico se lahko med liho in sodo vrstico razlikuje za 1. Druga dimenzija je torej vsota krogov v dveh zaporednih vrstah. Vsi privzeti vzorci za umerjanje, ki jih je mogoče prenesti, imajo velikost 4 × 11.
Zadnji parameter, ki ga morate vnesti pri uporabi kalibracije po meri
29
9.8 Kalibracija
9 KONFIGURACIJA
5 cm 2 in
Velikost: 4 x 11; Razmik krogov: 2.0 cm; Premer kroga: 1.5 cm; nerian.com
Slika 20: Umeritvena plošča, ki jo uporablja Ruby.
tabla je razmik kroga. To je razdalja med središči dveh sosednjih krogov. Razdalja mora biti enaka v vodoravni in navpični smeri za vse kroge.
Ko je določena pravilna velikost plošče, kliknite gumb za nadaljevanje, da nadaljujete s postopkom umerjanja.
9.8.2 Omejitev velikosti slike za kalibracijo
Privzeto bo postopek umerjanja potekal na celotnem območju senzorja z največjo veljavno velikostjo slike, ki je na voljo za trenutno aktivni format slike in nastavitve zajema. To je priporočljivo za večino nastavitev, saj je mogoče kadar koli po kalibraciji izbrati manjše interesno območje (glejte razdelek 9.15). Za posebne nastavitve, nprampče je slikovni krog leče manjši od območja slikovnega senzorja, je treba pred prvo kalibracijo omejiti ustrezno območje senzorja.
S pritiskom na gumb `omeji na okno' na dnu `camera preview`, se prikaže sredinski prekrivni okvir, ki mu lahko spremenite velikost z vlečenjem. Če se uporabi, bo umerjanje preklopilo v način omejenega območja. Kalibracijo lahko vrnete na privzeto delovanje s pritiskom na gumb `ponastavi na polno ločljivost'.
Ko je postopek umerjanja uspešno zaključen z omejenim območjem, bo to zmanjšalo privzeto velikost izpisa (in največjo razpoložljivo velikost območja zanimanja) z največje veljavne velikosti slike na izbrano, s čimer bodo učinkovito izključena vsa področja, ki so zunaj območja. območje kalibriranega senzorja.
30
9.8 Kalibracija
9 KONFIGURACIJA
9.8.3 Snemanje kalibracijskih okvirjev
Prehod v živoview vseh slikovnih senzorjev je prikazan v `camera preview' območje. Razen če območje umerjanja ni bilo omejeno, kot je opisano zgoraj, je ločljivost kamere med umerjanjem nastavljena na največjo veljavno velikost slike za trenutno aktivni format slike in nastavitve zajema. Prepričajte se, da je kalibracijska plošča v celoti vidna na vseh slikah kamere, nato pa pritisnite gumb `capture single frame' v nadzornem delu. Med premikanjem kamere ali kalibracijske plošče ta postopek večkrat ponovite.
Umeritveno ploščo je treba posneti na več različnih položajih in usmeritvah. V predview okno za vse lokacije, kjer je bila plošča predhodno zaznana. Spreminjajte razdaljo plošče in se prepričajte, da pokrivate večino polja view vseh kamer.
Več sličic kot posnamete, natančnejša bo izračunana kalibracija. Vendar pa več okvirjev povzroči tudi daljše trajanje izračuna kalibracijskih parametrov. Ruby podpira snemanje do 40 kalibracijskih sličic. Za natančne rezultate priporočamo uporabo vsaj 20 okvirjev za umerjanje.
Snemanje kalibracijskih okvirjev lahko poenostavite z aktiviranjem načina `auto capture'. V tem načinu se nov kalibracijski okvir posname v intervalih zajema fiksnih podatkov. Želeni interval lahko vnesete v razdelek za samodejni zajem in nato pritisnete gumb `začni samodejni zajem'. Po želji se lahko predvaja zvočni zvok, ki signalizira odštevanje in snemanje novega kadra. Način samodejnega zajemanja lahko ustavite s pritiskom na gumb `stop auto capture'.
Majhen predview vsakega zajetega umeritvenega okvirja je dodan v razdelek `zajeti okvirji'. Okvirji so prekriti z zaznanimi položaji krogov kalibracijske plošče. Lahko kliknete katero koli od predview slike, da vidite kalibracijski okvir v polni ločljivosti. Bivšaample za kalibracijski okvir s pravilno zaznano kalibracijsko ploščo je prikazan na sliki 21. Če kalibracijska plošča ni bila pravilno zaznana ali če niste zadovoljni s kakovostjo kalibracijskega okvirja, ga lahko izbrišete s klikom na ×-simbol .
9.8.4 Izvajanje kalibracije
Ko posnamete zadostno število kalibracijskih okvirjev, lahko začnete postopek kalibracije s pritiskom na gumb za kalibracijo v nadzornem delu. Čas, potreben za kalibracijo kamere, je odvisen od števila kalibracijskih okvirjev, ki ste jih posneli. Umerjanje običajno traja nekaj minut. Če je kalibracija uspešna, ste takoj preusmerjeni na `review stran za umerjanje.
Umerjanje ne bo uspelo, če izračunani navpični ali vodoravni premik slikovnih pik preseže dovoljeno območje za katero koli slikovno točko. Najpogostejši vzroki za napake pri kalibraciji so:
· Nezadostno število kalibracijskih okvirjev.
31
9.9 Nastavitve obdelave
9 KONFIGURACIJA
Slika 21: Nprample kalibracijski okvir z zaznano kalibracijsko ploščo.
· Slaba pokritost področja view s kalibracijsko ploščo.
· Leče z močnimi geometrijskimi popačenji.
· Objektivi z neenakimi goriščnimi razdaljami.
· Okvirji z napačnimi zaznavami kalibracijske plošče.
Če kalibracija ne uspe, odpravite vzrok napake in ponovite postopek kalibracije. Če je vzrok napake eden ali več napačnih kalibracijskih okvirjev, lahko te okvirje izbrišete in znova pritisnete gumb za umerjanje. Podobno lahko v primeru premajhnega števila kalibracijskih okvirjev posnamete dodatne okvirje in znova zaženete izračun kalibracije.
9.9 Nastavitve obdelave
9.9.1 Način delovanja
Glavne parametre obdelave lahko spremenite na strani z nastavitvami obdelave, ki je prikazana na sliki 22. Najpomembnejša možnost je način delovanja, ki ga lahko nastavite na eno od naslednjih vrednosti:
Prehod: V tem načinu Ruby posreduje slike vseh slikovnih senzorjev brez sprememb. Ta način je namenjen ponovnemuviewslikovnih podatkov, preden se uporabi kakršna koli obdelava.
Rectify: V tem načinu Ruby prenaša popravljene slike vseh slikovnih senzorjev. Ta način je namenjen preverjanju pravilnosti korekcije slike.
Stereo ujemanje: To je privzeti način, v katerem Ruby izvede dejansko obdelavo stereo slike (stereo ujemanje). Ruby prenaša zemljevid disparitete in, odvisno od konfiguracije izhodnih kanalov, popravljene slike.
32
9.9 Nastavitve obdelave
9 KONFIGURACIJA
Slika 22: Posnetek zaslona konfiguracijske strani za nastavitve obdelave.
9.9.2 Nastavitve neskladja
Če je način delovanja nastavljen na stereo ujemanje, potem `nastavitve neskladja' omogočajo konfiguracijo obsega neskladja, ki ga išče Ruby. Razpon neskladja vpliva na hitrost sličic, ki jo je mogoče doseči. Hitrost sličic je treba prilagoditi, ko se spremeni obseg neskladja (za priporočila glejte razdelek 3.3 na strani 5). Upoštevajte, da bo povečanje obsega neskladja zmanjšalo tudi največjo velikost slike, ki jo je mogoče konfigurirati.
Možnost `število neskladij' določa skupno število slikovnih pik, pri katerih se iščejo ujemanja. Ta možnost ima velik vpliv na globinsko ločljivost in pokrito merilno območje (glejte razdelek 7.2). Začetek obsega neskladja lahko izberete z možnostjo `odmik neskladja'. Običajno je za odmik zaželena vrednost 0, kar omogoča meritve obsega do neskončnosti. Če je opazna razdalja gotovo omejena, se ne bodo pojavile majhne razlike. V tem primeru je možno povečati odmik neskladja, tako da se ta nizka neskladja ne izračunajo.
9.9.3 Nastavitve algoritma
Obnašanje algoritmov za obdelavo slike je mogoče nadzirati prek `nastavitev algoritma'. Privzeta konfiguracija je bila določena z metodami strojnega učenja, zato bi morala biti najboljša izbira za večino uporabe
33
9.9 Nastavitve obdelave
9 KONFIGURACIJA
primerih. Kljub temu je mogoče vse parametre algoritma prilagoditi prek web vmesnik. Naslednji parametri nadzorujejo algoritem stereo ujemanja:
Kazen za spremembe nesorazmerij (P1): Kazen, ki se uporablja za postopoma spreminjajoče se razlike. Velika vrednost povzroči redkejše postopne spremembe neskladja, medtem ko majhna vrednost povzroči pogostejše postopne spremembe. Za slikovne pike, ki so na robovih slike (P1-edge), in slikovne pike, ki niso na robovih (P1-no-edge), je mogoče konfigurirati različne vrednosti. Te vrednosti morajo biti manjše od vrednosti za P2.
Kazen za diskontinuitete neskladij (P2): Kazen, ki se uporabi za nenadno spreminjanje neskladij. Velika vrednost povzroči, da se prekinitve neskladja pojavljajo manj pogosto, medtem ko majhna vrednost povzroči pogostejše prekinitve. Za slikovne pike, ki so na robovih slike (P2-edge), in slikovne pike, ki niso na robovih (P2-no-edge), je mogoče konfigurirati različne vrednosti. Te vrednosti morajo biti večje od vrednosti za P1.
Ruby uporablja optimizacijski algoritem za izboljšanje natančnosti izračunanega zemljevida neskladja na ločljivost podpikslov. Če je ustrezna le majhna interesna regija (ROI) vhodne slike/karte neskladja, je ta postopek samodejnega prilagajanja lahko omejen samo na to ROI. V tem primeru bi morali pričakovati natančnejše meritve podpikslov znotraj ROI. Ustrezni parametri za omejevanje ROI za nastavitev podpikslov so:
Prilagodi optimizacijo podpikslov na ROI: če je omogočeno, se optimizacija podpikslov nastavi na območju, ki ga določajo naslednji parametri, namesto na celotni sliki.
Širina: širina v slikovnih pikah izbranega območja zanimanja (ROI).
Višina: Višina v slikovnih pikah izbrane ROI.
Odmik X: Vodoravni odmik ROI glede na središče slike.
Odmik Y: Navpični odmik ROI glede na središče slike.
Ruby izvaja več metod za naknadno obdelavo izračunane karte neskladja. Vsako metodo naknadne obdelave je mogoče aktivirati ali deaktivirati posebej. Razpoložljive metode so:
Maskiraj obrobne slikovne pike: če je omogočena, ta možnost označi vse razlike, ki so blizu meje vidnega območja slike, kot neveljavne, saj imajo visoko negotovost. To vključuje tudi vse slikovne pike, za katere ni na voljo nobenih dejanskih slikovnih podatkov zaradi ukrivljenosti, ki jo povzroči popravljanje slike (glejte razdelek 7.1).
34
9.10 Napredne nastavitve samodejne osvetlitve in ojačanja 9 KONFIGURACIJA
Preverjanje doslednosti: če je omogočeno, se stereo ujemanje izvaja v obeh smereh ujemanja, od leve proti desni in od desne proti levi. Piksli, pri katerih razlika ni dosledna, so označeni kot neveljavni. Občutljivost preverjanja doslednosti lahko nadzirate z drsnikom `občutljivost preverjanja doslednosti'.
Preverjanje edinstvenosti: Če je omogočeno, so piksli na zemljevidu neskladja označeni kot neveljavni, če ni dovolj edinstvene rešitve (tj. stroškovna funkcija nima globalnega minimuma, ki je bistveno nižji od vseh drugih lokalnih minimumov). Občutljivost preverjanja edinstvenosti je mogoče nadzorovati z drsnikom `občutljivost preverjanja edinstvenosti'.
Filter teksture: če je omogočen, so slikovne pike, ki pripadajo območjem slike z malo teksture, označene kot neveljavne na zemljevidu neskladja, saj obstaja velika verjetnost, da se te slikovne pike ne ujemajo. Občutljivost tega filtra je mogoče prilagoditi z drsnikom `občutljivost filtra teksture'.
Interpolacija vrzeli: če je omogočena, se majhne zaplate neveljavnih neskladij, ki jih povzroči eden od prejšnjih filtrov, zapolnijo z interpolacijo.
Zmanjšanje šuma: če je omogočeno, se na zemljevid neskladja uporabi slikovni filter, ki zmanjša šum in odstrani odstopanja.
Ponovitve filtra pik: majhne izolirane zaplate s podobnimi razlikami označi kot neveljavne. Takšne lise so pogosto posledica napačnih ujemanj. Število iteracij določa, kako agresiven bo filter pri odstranjevanju madežev. Vrednost 0 onemogoči filter.
9.10 Napredne nastavitve samodejne osvetlitve in ojačanja
Da bi zagotovili najboljšo možno kakovost slike, Ruby zagotavlja popolnoma samodejno osvetlitev in prilagoditev ojačenja za hitro spreminjajoče se svetlobne pogoje, ki se pogosto pojavljajo na prostem. Obe samodejni funkciji lahko aktivirate in deaktivirate neodvisno na strani s samodejno osvetlitvijo, ki je prikazana na sliki 23.
9.10.1 Osvetlitev in ojačanje
Način: Izbere, ali se čas osvetlitve in/ali ojačitev prilagodita samodejno. V normalnih okoliščinah je treba izbrati `samodejno osvetlitev in ojačanje' za samodejno nastavitev obeh parametrov.
Ciljna intenzivnost: izbere povprečno vrednost intenzivnosti za stereo slike, na katero cilja samodejno prilagajanje. Vrednosti intenzivnosti so zapisane v odstotkihtage številke, pri čemer 0 predstavlja črno in 100 belo. Za barvna in enobarvna tipala je mogoče podati različne vrednosti.
35
9.10 Napredne nastavitve samodejne osvetlitve in ojačanja 9 KONFIGURACIJA
Slika 23: Posnetek zaslona konfiguracijske strani za nastavitve samodejne prilagoditve osvetlitve in ojačanja. Ciljni okvir: izbere intenzivnost levega okvirja, intenzivnost okvirja
desni okvir ali povprečno intenzivnost obeh okvirjev je treba prilagoditi ciljni intenzivnosti. Največji čas osvetlitve: Določite lahko največjo vrednost za čas osvetlitve, da omejite zamegljenost zaradi gibanja. Vrednost največjega časa osvetlitve mora biti vedno manjša od časa med dvema slikama. Za barvna in enobarvna tipala je mogoče podati različne vrednosti. Maksimalno ojačenje: Tako kot pri času osvetlitve je možno tudi omejiti največje dovoljeno ojačenje. Omejitev ojačanja lahko izboljša rezultate obdelave slike za situacije z visokim šumom senzorja. Za barvna in enobarvna tipala je mogoče podati različne vrednosti. 9.10.2 Ročne nastavitve Če je samodejna prilagoditev deaktivirana pri izbiri načina, lahko čas osvetlitve in/ali ojačanje ročno nastavite na fiksne vrednosti v tem razdelku.
36
9.11 Nastavitve sprožilca
9 KONFIGURACIJA
Slika 24: Posnetek zaslona konfiguracijske strani za nastavitve sprožilca.
9.10.3 Nastavitve ROI
Namesto da izvajate prilagoditev glede na povprečno intenzivnost celotne slike, lahko izračunate povprečno intenzivnost samo na območju, ki vas zanima. V tem primeru omogočite `uporabi ROI za prilagoditev'. `Odmik X' in `Odmik Y' opisujeta sredinski položaj regije glede na središče slike. `Width ROI' in `Height ROI' vam omogočata prilagajanje prostorske razširitve ROI. ROI mora biti v celoti vključen v sliko. Če temu ni tako, bo ROI samodejno obrezana.
9.11 Nastavitve sprožilca
Stran `nastavitve sprožilca', ki je prikazana na sliki 24, omogoča konfiguracijo vhoda in izhoda sprožilca. Ruby ima vrata GPIO, ki omogočajo dostop do enega prožilnega izhoda in enega prožilnega vhodnega signala. Za električne specifikacije teh signalov glejte razdelek 6.3.
Ko je sprožilni vhod omogočen, bo Ruby zajel okvir le, ko signalni impulz prispe na vhodni zatič sprožilca ali če je prek API-ja oddan programski sprožilec. Pri strojnem sprožilnem signalu se osvetlitev slikovnega senzorja začne z vodilnim robom vhodnega signala. Ko je sprožilni vhod omogočen, sprožilni izhod ni na voljo.
Ko izhod sprožilca ni omogočen, je mogoče določiti, ali je
37
9.12 Časovna sinhronizacija
9 KONFIGURACIJA
Slika 25: Posnetek zaslona konfiguracijske strani za časovno sinhronizacijo.
izhod mora biti vezan na konstantno vklopljeno (logično 1) ali konstantno izklopljeno (logična 0). Če je omogočeno, je lahko polariteta ustvarjenega signala aktivno-visoka ali aktivno nizka. Širina impulza je lahko konstantna ali pa kroži med seznamom vnaprej konfiguriranih vrednosti.
Frekvenca izhoda sprožilca se bo vedno ujemala s trenutno hitrostjo sličic Ruby. Vendar pa je mogoče določiti časovni odmik, ki je zakasnitev od začetka izpostavljenosti senzorja do vodilnega roba izhoda sprožilca.
9.12 Časovna sinhronizacija
Stran `time synchronization', ki je prikazana na sliki 25, lahko uporabite za konfiguracijo treh možnih metod za sinhronizacijo Rubyjeve notranje ure. Kot je pojasnjeno v razdelku 7.4, se za čas uporablja notranja uraampsnemanje zajetih okvirjev.
Prva možnost je sinhronizacija s časovnim strežnikom z uporabo omrežnega časovnega protokola (NTP) do različice 4. V tem primeru Ruby sinhronizira svojo notranjo uro z danim časovnim strežnikom z uporabo koordiniranega univerzalnega časa (UTC). Natančnost časovne sinhronizacije je odvisna od zakasnitve vašega omrežja in časovnega strežnika. Če je časovna sinhronizacija NTP aktivna, je statistika sinhronizacije prikazana v namenskem območju stanja.
Kot alternativo NTP se lahko za sinhronizacijo uporablja Precision Time Protocol (PTP). PTP zagotavlja znatno večjo natančnost, ko
38
9.13 Reviewing rezultatov kalibracije
9 KONFIGURACIJA
Slika 26: Posnetek zaslona konfiguracijske strani za ponovnoviewumerjanje kamere.
primerjati z NTP, zato bi mu bilo treba dati prednost, če je na voljo. Tako kot pri NTP bo tudi ura nastavljena na UTC in prikazane bodo informacije o statusu sinhronizacije.
Pri uporabi signala impulzov na sekundo (PPS) lahko notranjo uro ponastavite na 0, kadar koli prejmete sinhronizacijski signal. Druga možnost je, da sistemski čas stamp za zadnji prejeti signal PPS se lahko prenese z zajetim okvirjem. Prosimo, glejte razdelek 6.3.3 na strani 11 za podrobnosti o sinhronizaciji PPS.
9.13 Reviewing rezultatov kalibracije
Ko je kalibracija opravljena, si lahko ogledate rezultate kalibracije na `review stran za umerjanje, ki je prikazana na sliki 26. Na vrhu te strani lahko vidite predview vseh slikovnih senzorjev, ko so popravljeni s trenutnimi kalibracijskimi parametri. Prepričajte se, da imajo ustrezne točke na slikah vseh slikovnih senzorjev enako navpično koordinato.
Z aktiviranjem možnosti `prikaži epipolarne črte' lahko na slikah prekrijete niz vodoravnih črt. To omogoča preprosto oceno, ali je izpolnjen kriterij enakih navpičnih koordinat. Bivšaample za levo in desno vhodno sliko s prekritimi epipolarnimi črtami je prikazano na sliki 27.
V razdelku `informacije o kakovosti' lahko najdete povprečno napako ponovne projekcije. To je merilo za kakovost vaše kalibracije z nižjo vrednostjo
39
9.13 Reviewing rezultatov kalibracije
9 KONFIGURACIJA
Slika 27: Nprampza vrednotenje navpičnih koordinat slike.
ki kažejo na boljše rezultate umerjanja. Prepričajte se, da je povprečna napaka ponovne projekcije precej pod 1 slikovno piko.
Vsi izračunani parametri umerjanja so prikazani v razdelku `podatki o umerjanju'. Ti parametri so:
M1, M2 in M3: matrice za levo, desno in barvno kamero.
D1, D2 in D3: koeficienti popačenja za levo, desno in barvno kamero.
R1, R2 in R3: rotacijske matrike za rotacije med izvirno in popravljeno sliko kamere.
P1, P2 in P3: projekcijske matrike v novih (rektificiranih) koordinatnih sistemih.
V12: matrika za preslikavo razlike v globino za levo kamero. Za njegovo uporabo glejte razdelek 7.2.
V13: matrika za preslikavo razlike v globino za barvno kamero (običajno ni potrebna).
T12, T13: translacijski vektor med koordinatnimi sistemi leve in desne ter leve in barvne kamere.
R12, R13: rotacijska matrika med koordinatnimi sistemi leve in desne ter leve in barvne kamere.
Matrike kamere Mi so strukturirane na naslednji način:
fx 0 cx
Mi
=
0
fy
cy
,
(1)
001
40
9.14 Samodejno ponovno umerjanje
9 KONFIGURACIJA
Slika 28: Posnetek zaslona nastavitev samodejnega ponovnega umerjanja.
kjer sta fx in fy goriščni razdalji leč v vodoravni in navpični smeri (merjeni v slikovnih pikah), cx in cy pa koordinati slike središča projekcije.
Vektorja koeficienta popačenja D1 in D2 imata naslednjo strukturo:
Di = k1 k2 p1 p2 k3,
(2)
kjer so k1, k2 in k3 radialni koeficienti popačenja, p1 in p2 pa tangencialni koeficienti popačenja.
Vse informacije o umerjanju lahko prenesete kot strojno berljiv YAML file, tako da kliknete povezavo za prenos na dnu razdelka `podatki o umerjanju'. To vam omogoča enostaven uvoz kalibracijskih podatkov v vaše aplikacije. Poleg tega lahko podatke o umerjanju shranite na svoj osebni računalnik in jih pozneje znova naložite z uporabo razdelka `upload calibration data'.
9.14 Samodejno ponovno umerjanje
Na strani `samodejna ponovna kalibracija', ki je prikazana na sliki 28, lahko omogočite samodejno oceno parametrov kalibracije. V tem primeru sistem ostane umerjen, tudi če je optična poravnava predmet sprememb.
Kalibracijske parametre običajno delimo na notranje parametre (goriščna razdalja, projekcijsko središče in koeficienti popačenja) in zunanje parametre (transformacija med položaji vseh kamer). Samo samodejno ponovno umerjanje
41
9.15 Interesna regija
9 KONFIGURACIJA
izvaja posodobitev ekstrinzičnih parametrov, saj so bistveno bolj nagnjeni k variacijam. Natančneje, ocenjena je samo rotacija med kamerama. To je običajno najbolj krhek parameter, na katerega lahko bistveno vplivajo že manjše deformacije.
Samodejno ponovno kalibracijo lahko aktivirate z izbiro možnosti `omogoči samodejno ponovno kalibracijo'. Ruby bo nato nenehno računal sampza ocenjeno rotacijo med kamerami. Robustna metoda ocenjevanja se uporablja za izbiro končne ocene rotacije iz niza rotacije samples. Število sampdatoteke, ki se uporabljajo za ta postopek ocenjevanja, je mogoče konfigurirati. Mali sampvelikosti le omogočajo hitro reakcijo na variacije poravnave, medtem ko velike sampvelikosti omogočajo zelo natančne ocene. Če je izbrana možnost `trajno shrani popravljeno kalibracijo', se posodobljena kalibracija zapiše v obstojni pomnilnik in ostane prisotna tudi po vklopu.
Da samodejna kalibracija deluje, morajo kamere opazovati prizor z dovolj vizualnimi informacijami. Ruby bo identificiral pomembne značilnosti slike in jih povezal med vsemi slikami. Če ni mogoče zaznati dovolj funkcij, se samodejno ponovno umerjanje ne bo zagnalo. Tipična scena bi morala zadostovati za samodejno ponovno kalibracijo leve in desne enobarvne kamere. Za izvajanje samodejnega ponovnega umerjanja na barvni kameri pa je priporočljiv črno-beli vzorec, bogat s funkcijami. Bela stran s tiskanim besedilom, nprample, dobro služi za ta namen.
V področju statistike lahko najdete različne informacije o trenutnem delovanju postopka samodejne kalibracije. To vključuje status zadnjega poskusa ponovne kalibracije, čas od zadnje posodobitve kalibracije, rotacijski odmik zadnje posodobitve in število rotacijskih sampdatoteke, ki so bile zbrane in zavržene od zadnje posodobitve. Nazadnje lahko najdete seznam nedavno izračunanih rotacij med kamerami v območju zgodovine. Naštete rotacije so predstavljene kot rotacijski kvaternioni.
9.15 Interesna regija
Če ni potrebna celotna slika senzorja, temveč samo pododdelek, potem lahko to konfigurirate na strani `regija interesa' (ROI). Ta stran bo odprla predview leve in desne slike s prekritimi okvirji, ki prikazujejo obrezano območje, ki ga je mogoče z miško istočasno premikati in spreminjati velikost (glejte sliko 29). Naprava bo pregledala zahtevane dimenzije ROI; v tem primeru boste videli, da se območje samodejno pripne na najbližjo veljavno velikost slike.
Če je bila kalibracija izvedena na omejenem sredinskem oknu namesto na polni ločljivosti senzorja (glejte razdelek 9.8), teh omejenih obsegov ni mogoče preseči med izbiro ROI. Predview velikost slike na strani za izbiro ROI bo odražala omejeno ločljivost časa umerjanja.
42
9.16 Inercialna merilna enota
9 KONFIGURACIJA
Slika 29: Posnetek zaslona izbire regije zanimanja.
9.16 Inercialna merilna enota
Inercialno merilno enoto (IMU), vdelano v Ruby, ki lahko zagotovi tridimenzionalne meritve v realnem času za podatke merilnika pospeška, žiroskopa, linearnega pospeška in magnetometra, kot tudi integrirane odčitke orientacije kvaterniona, je mogoče konfigurirati na `inercialni merilni enoti' stran, ki je prikazana na sliki 30.
V razdelku `omrežna paketna frekvenca' lahko nastavite hitrost paketov na sekundo za odčitke senzorjev. Vrednost je mogoče povečati za uporabo z minimalno zakasnitvijo (v realnem času) ali zmanjšati za čisto snemanje časovnih vrst, v tem primeru bodo daljši paketi podatkov združeni za vsak paket.
Sampfrekvence ling za posamezne senzorje je mogoče konfigurirati v `sampfrekvence linga. Vrednosti se gibljejo med 0 Hz (kar onemogoči določen kanal) in največjo hitrostjo, ki je 100 Hz za podatke magnetometra in 400 Hz za druge kanale. Kanal `rotacijski kvaternion', ki odraža usmerjenost naprave, integrirano iz posameznih senzorskih kanalov, ima dodaten preklop načina: v `absolutnem (geomagnetnem)' načinu naprava integrira magnetometer, da zagotovi odčitke za kot nihanja (tj. vrtenje okoli gravitacijska os), s čimer se oceni absolutni smer kompasa. V `relativnem (negeomagnetnem) načinu se ne uporabljajo podatki magnetometra in odčitek odklona temelji izključno na integraciji gibanja, kar vključuje začetek pri ničelnem odklonu, ne glede na prvotno orientacijo naprave, in progresivno divergentno
43
9.16 Inercialna merilna enota
9 KONFIGURACIJA
Slika 30: Posnetek zaslona strani z nastavitvami inercialne merilne enote.
premik sporočenega kota odklona glede na absolutne smeri kompasa.
9.16.1 Kalibracija inercialne merilne enote
V živo view odčitke orientacije si lahko ogledate v razdelku `kalibracija/usmerjenost naprave'. Poleg kotov nagiba, naklona in odklona je kakovost umerjanja navedena na lestvici od nič do tri (ki odraža ravni BNO08X Nezanesljivo; Nizka natančnost; Srednja natančnost; in Visoka natančnost). Ocenjena natančnost za kot odklona (smer kompasa) se sporoči, če je omogočen način `absolutni (geomagnetni)'. Odčitki magnetometra so najmanj zanesljiva komponenta, zato je lahko stanje umerjanja manj natančno v `absolutnem (geomagnetnem)' načinu.
Gumb `začni kalibracijo' preklopi IMU v način kalibracije. Priporočeni postopek je, da nato napravo usmerite v pet do šest pravokotnih smeri (ki ustrezajo ploskvam kocke) z različnimi rotacijami in napravo za kratek čas zadržite pri miru v vsaki od teh usmeritev. Stanje umerjanja bi se moralo postopoma izboljšati na raven 2 ali 3. Gumb `končaj umerjanje' shrani nove podatke o umerjanju in ponastavi odčitke IMU, ki se bodo čez kratek trenutek nadaljevali z novo osnovno kalibracijo, ki bo nato vztrajala skozi cikle napajanja.
44
10 INFORMACIJE O UPORABI API-ja
10 Informacije o uporabi API-ja
10.1 Splošne informacije
Navzkrižna platforma libvisiontransfer C++ in API Python je na voljo za povezovanje programske opreme po meri z Rubyjem. Za Windows je na voljo binarna različica knjižnice, ki jo je mogoče uporabljati z Microsoft Visual Studio. Za Linux prevedite knjižnico iz razpoložljive izvorne kode. API je vključen kot del razpoložljive izdaje programske opreme, ki jo lahko prenesete iz naše podpore webstran 1.
API libvisiontransfer zagotavlja funkcionalnost za prejemanje rezultatov obdelave Ruby prek računalniškega omrežja. Poleg tega API omogoča tudi prenos slikovnih podatkov. Tako se lahko uporablja za posnemanje Rubyja pri izvajanju razvoja sistemov.
Preneseni rezultati obdelave so sestavljeni iz niza slik. Običajno sta to popravljena leva slika in izračunana karta disparitete. Če pa je konfiguriran, lahko Ruby zagotovi tudi neobdelane posnete slike ali vse popravljene slike (glejte razdelek 9.9).
Izvirne in popravljene slike kamere se običajno prenašajo z enobarvno bitno globino 8 bitov ali 12 bitov na slikovno piko ali v 8-bitnem načinu RGB. Zemljevid disparitete se vedno prenaša z bitno globino 12 bitov. Znotraj knjižnice se zemljevid neskladja in vse 12-bitne slike napihnejo na 16 bitov, kar omogoča učinkovitejšo obdelavo.
API nudi tri razrede, ki se lahko uporabljajo za sprejemanje in prenos slikovnih podatkov:
· ImageProtocol je vmesnik najnižje ravni. Ta razred omogoča kodiranje in dekodiranje nizov slik v/iz omrežnih sporočil. Za vso omrežno komunikacijo boste morali skrbeti sami.
· ImageTransfer odpre omrežno vtičnico za pošiljanje in prejemanje nizov slik. Ta razred je enoniten in bo zato blokiran pri sprejemanju ali prenosu podatkov.
· AsyncTransfer omogoča asinhroni sprejem ali prenos nizov slik. Ta razred ustvari eno ali več niti, ki obravnavajo vso omrežno komunikacijo.
Podrobne informacije o uporabi vsakega razreda najdete v razpoložljivi dokumentaciji API-ja.
10.2 ImageTransfer Example
Bivšiampza uporabo razreda ImageTransfer v C++ za prejemanje rezultatov obdelave prek omrežja in njihovo pisanje v sliko files, je prikazano spodaj.
1https://nerian.com/support/software/
45
10.2 ImageTransfer Example
10 INFORMACIJE O UPORABI API-ja
Ta izvorna koda file je del izdaje izvorne kode API-ja. Za dodatne informacije o uporabi ImageTransferja in nprampdatotek v Pythonu.
#include < visiontransfer / deviceenumeration. h> #include < visiontransfer / imagetransfer. h> #include < visiontransfer / imageset. h> #vključi #vključi #vključi
#ifdef _MSC_VER // Visual studio #definesnprintf #endif
ne pride _snprintf_s
z
snprintf
uporaba imenskega prostora visiontransfer ;
int main () { // Iskanje Nerian stereo devices DeviceEnumeration deviceEnum ; DeviceEnumeration : : DeviceList devices = deviceEnum . discoverDevices ( ) ; i f ( d e v i c e s . s i z e ( ) == 0 ) { s t d : : c o u t << “No d e v i c e s d i s c o v e r e d ! ” << s t d : : e n d l ; return -1; }
// Naprave za tiskanje std : : cout << ” D iscovereddevices : ” << std : : endl ; for ( unsignedinti = 0 ; i < naprave . velikost ( ) ; i ++) {
std : : cout << naprave [ i ] . na S string ( ) << std : : endl ; } std:: cout << std:: endl;
// Ustvari objekt za prenos slike, ki sprejema podatke iz // prve zaznane naprave ImageTransfer imageTransfer (naprave [0]);
// Prejmi 100 slik za ( int imgNum=0; imgNum<100; imgNum++) {
std : : cout << ” Nastavljena slika za sprejem ” << imgNum << std : : endl ;
// Prejmi sliko ImageSet imageSet ; medtem ko (! imageTransfer. receiveImageSet (imageSet)) {
// Nadaljujte s poskusi, dokler sprejem ne bo uspešen }
// Zapišite vse vključene slike eno za drugo za ( inti = 0 ; i < imageSet . getNumberOfImages ( ) ; i ++) {
// Ustvari datoteko PGM
46
10.3 AsyncTransfer Example
10 INFORMACIJE O UPORABI API-ja
char fileIme [100]; snprintf ( fileIme, velikost (ime datoteke) , slika%03d_%d. pgm«, i,
imgNum);
imageSet . writePgmFile ( jaz , fileime); }}
vrni 0; }
10.3 AsyncTransfer Example
Bivšiampza uporabo razreda AsyncTransfer v C++ za prejemanje rezultatov obdelave prek omrežja in njihovo pisanje v sliko files, je prikazano spodaj. Ta izvorna koda file je del izdaje izvorne kode API-ja. Prosimo, glejte dokumentacijo API za dodatne informacije o uporabi AsyncTransfer in nprampdatotek v Pythonu.
#include < visiontransfer / deviceenumeration. h> #include < visiontransfer / asynctransfer. h> #include < visiontransfer / imageset. h> #vključi #vključi #vključi
#ifdef _MSC_VER // Visual studio #definesnprintf #endif
ne pride _snprintf_s
z
snprintf
uporaba imenskega prostora visiontransfer ;
int main () { try { // Iskanje Nerian stereo devices DeviceEnumeration deviceEnum ; DeviceEnumeration : : DeviceList devices = deviceEnum . discoverDevices ( ) ; i f ( d e v i c e s . s i z e ( ) == 0 ) { s t d : : c o u t << “No d e v i c e s d i s c o v e r e d ! ” << s t d : : e n d l ; return -1; }
// Naprave za tiskanje std : : cout << ” D iscovereddevices : ” << std : : endl ; for ( unsignedinti = 0 ; i < naprave . velikost ( ) ; i ++) {
std : : cout << naprave [ i ] . na S string ( ) << std : : endl ; } std:: cout << std:: endl;
47
10.4 3D rekonstrukcija
10 INFORMACIJE O UPORABI API-ja
// Ustvari objekt za prenos slike, ki sprejema podatke iz // prve zaznane naprave AsyncTransfer asyncTransfer (naprave [0]);
// Prejmi 100 slik za ( int imgNum=0; imgNum<100; imgNum++) {
std : : cout << ” Nastavljena slika za sprejem ” << imgNum << std : : endl ;
// Prejmi sliko ImageSet imageSet ; medtem ko (! asyncTransfer. collectReceivedImageSet (imageSet,
0.1 / časovna omejitev / )) { // Nadaljujte s poskusi, dokler sprejem ni uspešen }
// Zapišite vse vključene slike eno za drugo za ( inti = 0 ; i < imageSet . getNumberOfImages ( ) ; i ++) {
// Ustvari PGM datoteko char fileIme [100]; snprintf ( fileIme, velikost (ime datoteke) , slika%03d_%d. pgm«, i,
imgNum);
imageSet . writePgmFile ( jaz , fileime); } } } catch ( const std : : exception& ex ) { std : : cerr << ” Pojavila se je izjema : ” << ex . kaj ( ) << std : : endl ; }
vrni 0; }
10.4 3D rekonstrukcija
Kot je opisano v razdelku 7.2, je mogoče zemljevid neskladja pretvoriti v niz 3D točk. To zahteva poznavanje matrike Q za preslikavo neskladja v globino (glejte razdelek 7.2), ki jo Ruby prenaša skupaj z vsakim zemljevidom neskladja.
Optimizirano izvedbo zahtevane transformacije, ki uporablja nize navodil SSE ali AVX, zagotavlja API prek razreda Reconstruct3D. Ta razred pretvori zemljevid neskladja v zemljevid 3D koordinat točk. Za dodatne podrobnosti glejte dokumentacijo API-ja.
10.5 parametrov
Za branje in zapisovanje parametrov naprave se uporablja ločen omrežni protokol. Ta protokol implementira DeviceParameters. Vsi parametri, ki so spremenjeni prek tega protokola, bodo ponastavljeni, če se naprava znova zažene ali če uporabnik spremeni parameter prek web vmesnik.
48
11 PRILOŽENA PROGRAMSKA OPREMA
Slika 31: Posnetek zaslona aplikacije NVCom.
11 Priložena programska oprema
11.1 NVCom
Razpoložljiva izvorna koda ali izdaja binarne programske opreme vključuje tudi odjemalsko aplikacijo NVCom, ki je prikazana na sliki 31. Ko sami prevajate to aplikacijo, se prepričajte, da imate nameščeni knjižnici OpenCV in Qt. NVCom ponuja naslednje funkcije:
· Odkrijte naprave Ruby, view njihov status in dostop do njihovih nastavitev. · Prejemanje in prikazovanje slik in zemljevidov neskladij iz Rubyja. · Izvedite barvno kodiranje zemljevidov neskladij. · Zagotovite vizualizacijo 3D pointcloud v živo. · Zapiši prejete podatke v filekot slike ali 3D oblaki točk. NVCom ima GUI, ki omogoča dostop do vseh pomembnih funkcij. Naprednejše funkcije so na voljo prek možnosti ukazne vrstice, ki so navedene v tabeli 2. Možnosti ukazne vrstice lahko uporabite tudi za avtomatizacijo snemanja ali predvajanja podatkov. Razen če se NVCom izvaja v negrafičnem načinu, odpre okno GUI, ki prikazuje prejete slike. Trenutno prikazan niz slik lahko zapišete na disk s pritiskom na tipko enter ali s klikom na ikono kamere v orodni vrstici. Ko pritisnete preslednico ali kliknete ikono za snemanje, bodo vse naslednje slike shranjene. Ko zapre NVCom, bo shranil svoje trenutne nastavitve, ki se bodo samodejno znova naložile ob naslednjem zagonu NVCom.
49
11.2 GenICam GenTL Producer
11 PRILOŽENA PROGRAMSKA OPREMA
Tabela 2: Možnosti ukazne vrstice, ki so na voljo za NvCom.
-c VAL
-f FPS -w DIR -s DIR -n Negrafični -p PORT -H HOST -t vklop/izklop -d -T -3 VAL
-z VAL -F -b vklop/izklop -h, pomoč
Izberite shemo barvnega kodiranja (0 = brez barve, 1 = rdeča/modra, 2 = mavrica) Omejite hitrost pošiljanja sličic na FPS Takoj zapišite vse slike v DIR Pošljite slike iz danega imenika
Uporabi dano številko oddaljenih vrat za komunikacijo Uporabi dano ime oddaljenega gostitelja za komunikacijo Aktiviraj/deaktiviraj TCP prenose Onemogoči sprejem slike Natisni čas okvirjaamps Napišite 3D oblak točk z razdaljami do VAL (0 = izklopljeno) Nastavite faktor povečave na VAL odstotkov Zaženite v celozaslonskem načinu Zapišite oblake točk v binarni namesto besedilni obliki Prikaže to pomoč.
11.2 GenICam GenTL Producer
11.2.1 Namestitev
Razpoložljiva izdaja programske opreme vključuje tudi programski modul, ki je skladen s standardom GenICam GenTL. Standard GenTL določa generični vmesnik transportne plasti za dostop do kamer in drugih slikovnih naprav. V skladu s konvencijo o poimenovanju GenICam je proizvajalec GenTL programski gonilnik, ki omogoča dostop do slikovne naprave prek vmesnika GenTL. Potrošnik GenTL pa je katera koli programska oprema, ki prek tega vmesnika uporablja enega ali več proizvajalcev GenTL. Priložen programski modul predstavlja proizvajalca GenTL in se lahko uporablja s katero koli aplikacijsko programsko opremo, ki deluje kot porabnik. To omogoča takojšnjo integracijo Rubyja v obstoječe programske pakete strojnega vida, kot je npr. HALCON.
Odvisno od različice, ki ste jo prenesli, je producent na voljo kot dvojiška ali kot izvorna koda. Če izberete izdajo izvorne kode, bo proizvajalec zgrajen skupaj z drugimi komponentami programske opreme. Izdelana/prenesena dvojiška datoteka se imenuje nerian-gentl.cti. Da bi ga potrošnik našel, to file je treba postaviti v imenik, ki je na iskalni poti GenTL. Iskalna pot je podana z naslednjima dvema spremenljivkama okolja:
GENICAM_GENTL32_PATH: Iskalna pot za 32-bitne proizvajalce GenTL. GENICAM_GENTL64_PATH: Iskalna pot za 64-bitne proizvajalce GenTL.
Binarni namestitveni program za Windows samodejno konfigurira ta okolja
50
11.2 GenICam GenTL Producer
11 PRILOŽENA PROGRAMSKA OPREMA
spremenljivke. Ko gradite izdajo izvorne kode, ročno konfigurirajte spremenljivke okolja.
11.2.2 Virtualne naprave
Ko je iskalna pot nastavljena, je proizvajalec pripravljen za uporabo s strani potrošnika. Proizvajalec za vsak Ruby zagotovi pet virtualnih naprav, ki vsaka posredujejo en del pridobljenih podatkov. Te virtualne naprave so poimenovane na naslednji način:
/color Zagotavlja barvno sliko kamere, ki jo prenaša Ruby. V privzeti konfiguraciji je to slika po popravku in uporabi projekcije. Slika je kodirana kot slika RGB z 8 biti na kanal (RGB8).
/levo Zagotavlja sliko leve kamere, ki jo prenaša Ruby. V privzeti konfiguraciji ta tok podatkov ni na voljo. Slika je kodirana z 8 ali 12 biti na slikovno piko (Mono8 ali Mono12).
/right Zagotavlja pravo sliko kamere. V privzeti konfiguraciji ta tok podatkov ni na voljo. Slika je kodirana v formatu Mono8 ali Mono12.
/disparity Zagotavlja zemljevid neskladja, ki ga posreduje Ruby. Ti podatki niso na voljo, če je Ruby konfiguriran v načinu prehoda ali popravka. Zemljevid neskladja se prenaša z nezapakiranim kodiranjem 12 bitov na slikovno piko (Mono12).
/pointcloud Zagotavlja transformacijo zemljevida neskladja v 3D oblak točk (glejte razdelek 7.2). Vsaka točka je predstavljena s tremi 32-bitnimi številkami s plavajočo vejico, ki kodirajo x-, y- in z-koordinato (Coord3D_ABC32f).
/ Ta virtualna naprava zagotavlja večdelni tok podatkov, ki vsebuje vse podatke, ki so na voljo prek drugih naprav. V privzeti konfiguraciji ta naprava zagotavlja sliko leve kamere, zemljevid neskladja in 3D oblak točk.
Navidezne naprave /color, /left, /right in /disparity zagotavljajo neobdelane podatke, ki jih prejme Ruby. Podatke, pridobljene prek naprave /pointcloud, proizvajalec izračuna iz prejete karte neskladja. To se izvede z množenjem zemljevida neskladja z matriko Q za preslikavo neskladja v globino (glejte razdelek 7.2), ki jo Ruby pošlje skupaj z vsakim parom slik. Neveljavna odstopanja so nastavljena na najmanjše odstopanje in tako povzročijo točke z zelo velikimi razdaljami.
Priporočljiva je uporaba večdelne navidezne naprave / kadar je potrebna več kot ena vrsta podatkov. To bo zagotovilo, da bo vse pridobivanje podatkov sinhronizirano. Ko zahtevate samo eno vrsto vhodnih podatkov, je najučinkovitejša možnost uporaba namenskih virtualnih naprav.
51
11.3 Vozlišče ROS
12 PODPORA
11.2.3 ID-ji naprav Vsi ID-ji naprav, ki jih dodeli proizvajalec, so URLs in je sestavljen iz naslednjih komponent:
protokol :// naslov / virtualna naprava
Komponenta protokola identificira osnovni transportni protokol, ki bo uporabljen za komunikacijo. Možne so naslednje vrednosti:
udp: za komunikacijo uporabite transportni protokol UDP brez povezave.
tcp: za komunikacijo uporabite povezovalno usmerjen transportni protokol TCP.
Navidezna naprava mora biti nastavljena na eno od imen naprav, ki so bila navedena v prejšnjem razdelku. Neki bivšiampdatoteke za veljavne ID-je naprav so: udp://192.168.10.10/ pointcloud tcp://192.168.10.100/ levo
11.3 Vozlišče ROS
Za integracijo Rubyja z robotskim operacijskim sistemom (ROS) obstaja uradno vozlišče ROS. To vozlišče se imenuje nerian_stereo in ga je mogoče najti v uradnem repozitoriju paketov ROS. Vozlišče objavi izračunano karto disparitete in ustrezen 3D oblak točk kot teme ROS. Poleg tega lahko objavi informacije o kalibraciji kamere in odčitke IMU.
Če želite namestiti to vozlišče iz strežnikov paketov ROS v sistem Ubuntu Linux, uporabite naslednje ukaze: > sudo apt -get update > sudo apt -get install ros -`rosversion -d`-nerian -stereo
Podrobne informacije o tem vozlišču najdete na ustrezni strani ROS wiki2.
12 Podpora
Če potrebujete podporo pri uporabi Rubyja, uporabite naš forum za podporo na https://nerian.com/support/forum/ ali kontaktirajte:
Nerian Vision GmbH Zettachring 2 70567 Stuttgart Nemčija
2http://wiki.ros.org/nerian_stereo
52
14 ODPRTOKODNE INFORMACIJE
Telefon: +49 711 2195 9414 E-pošta: service@nerian.com
Webspletno mesto: www.nerian.com
13 Informacije o garanciji
Naprava ima 2-letno garancijo v skladu z nemškim zveznim zakonom (BGB). Garancija se izgubi, če:
· ohišje ne odpre uradno servisno osebje Nerian Vision Technologies.
· je vdelana programska oprema spremenjena ali zamenjana, razen pri uradnih posodobitvah vdelane programske opreme.
V primeru garancije se obrnite na naše osebje za podporo.
14 Odprtokodne informacije
Vdelana programska oprema Ruby vsebuje kodo iz odprtokodnih knjižnic in aplikacij, navedenih v tabeli 3. Izvorno kodo za te komponente programske opreme in besedilo ustreznih licenc programske opreme lahko dobite iz odprtokodnih informacij webmesto3. Nekatere od teh komponent lahko vsebujejo kodo iz drugih odprtokodnih projektov, ki morda niso navedeni tukaj. Za dokončen seznam si oglejte ustrezne izvorne pakete.
Naslednje organizacije in posamezniki so prispevali k različnim odprtokodnim komponentam:
Free Software Foundation Inc., Emmanuel Pacaud, EMVA in sodelavci, The Android Open Source Project, Red Hat Incorporated, University of California, Berkeley, David M. Gay, Christopher G. Demetriou, Royal Institute of Technology, Alexey Zelkin, Andrey A. Chernov, FreeBSD, SL Moshier, Citrus Project, Todd C. Miller, DJ Delorie, Intel Corporation, Henry Spencer, Mike Barcroft, Konstantin Chuguev, Artem Bityuckiy, IBM, Sony, Toshiba, Alex Tatmanjants, M. Warner Losh, Andrey A. Chernov, Daniel Eischen, Jon Beniston, ARM Ltd, CodeSourcery Inc, MIPS Technologies Inc, Intel Corporation, Willow Garage Inc., NVIDIA Corporation, Advanced Micro Devices Inc., OpenCV Foundation, Itseez Inc., The Independent JPEG Group, elibThomas G. Lane, Guido Vollbeding, SimonPierre Cadieux, Eric S. Raymond, Mans Rullgard, Cosmin Truta, Gilles Vollant, James Yu, Tom Lane, Glenn Randers-Pehrson, Willem van Schaik, John Bowler, Kevin Bracey, Sam Bushell, Magnus Holmgren, Greg Roelofs, Tom Tanner, Andreas Dilger, Dave Martindale, Guy Eric Schalnat, Paul Schmidt, Tim Wegner, Sam Leffler, Silicon Graphics, Inc. Industrial Light & Magic, Univerza Delaware, Martin Burnicki, Harlan Stenn, Danny Mayer, skupina PHP , OpenSSL Software Services, Inc., OpenSSL Software Foundation, Inc., Andy Polyakov, Ben Laurie, Ben Kaduk, Bernd Edlinger, Bodo Möller, David Benjamin, Emilia Käsper, Eric Young, Geoff Thorpe, Holger Reif, Kurt Roeckx, Lutz Jänicke , Mark J. Cox, Matt Caswell, Matthias St. Pierre, Nils Larsch, Paul Dale, Paul C. Sutton, Ralf S. Engelschall, Rich Salz, Richard Levitte, Stephen Henson, Steve Marquess, Tim Hudson, Ulf Möller, Viktor Dukhovni
3http://nerian.com/support/resources/scenescan-open-source/
53
14 ODPRTOKODNE INFORMACIJE
Vsi avtorji, ki prispevajo k paketom, vključenim v PetaLinux. Celoten seznam dobite na www.xilinx.com/petalinux.
Če menite, da bi moralo biti vaše ime vključeno na ta seznam, nam to prosim sporočite.
54
14 ODPRTOKODNE INFORMACIJE
Tabela 3: Odprtokodne komponente.
Ime Aravis GenApi referenčna implementacija libgpiod libwebvtičnice Linux PTP ntp
OpenCV
OpenSSL PetaLinux PHP
Različica 0.6.4 s popravki 3.1.0 1.4 2.2 3.1 4.2.8p10
3.2.0
1.1.1d 2019.2 7.3.7
licence
Licenca GNU LGPL 2.0 GenICam GNU LGPL 2.1 GNU LGPL 2.1 GNU GPL 2 Licenca BSD Licenca MIT Licenca BSD Licenca libpng Licenca JasPer 2.0 Licenca BSD Različne licence PHP
55
Zgodovina revizij
14 ODPRTOKODNE INFORMACIJE
Zgodovina revizij
Datum revizije
Avtor(ji) Opis
v1.0
28. september 2022 KS
v0.1
23. avgust 2022 KS
Začetna različica Predhodni osnutek
56
Dokumenti / Viri
![]() |
Nerian Ruby 3D globinska kamera [pdfUporabniški priročnik Ruby 3D globinska kamera, Ruby 3D, globinska kamera, kamera |
![]() |
Nerian Ruby 3D globinska kamera [pdfUporabniški priročnik Ruby 3D globinska kamera, Ruby 3D, globinska kamera, kamera |