2.4.1 Callibratie en berekening 3D positie van een object
Vorige beschrijving is de theorie, hier proberen we de kalibratie in praktijk toe te passen en geeft de werkwijze een overzicht van de metingen die uitgevoerd moeten worden om 3D posities te bepalen.
Realsense software
Open de 3D module van Realsense viewer en selecteer het nulpunt en een punt op afstand x op de X-as en een punt op afstand y op de Y-as. Bepaal de camera afstand tot deze punten.
Punt 1 = 0.738m; Punt 2 = 0.395m en Punt 3 = 0.668m
Meet daarna manueel de hoogte van de camera ten opzichte van het grondoppervlak
Hoogte camera = 0.27m.
In dit geval werden de hoekpunten van het grondvlak aangeduid op 50 cm van elkaar. Met de Realsense kan je echter afstanden (her)meten in de 3D module.
Hier zien we dat de realsense de afstand tot 2 hoekpunten kan opmeten als 50 cm.
De andere dimensie kan ook nagemeten worden als 50 cm.
Zo kan de 3D module gebruikt worden om de XY dimensies uit te zetten en te kalibreren.
Berekening van de Z-hoogte
De berekening van de Z-hoogte van het object gaat er van uit dat de Z-hoogte steeds kleiner is dan de hoogte van de camera.
Hierboven is een schematische voortelling van de gegevens waarbij L = 50 cm.
De gele lijnen liggen in het XY vlak. De blauwe lijnen liggen op de X en Y as. Met (0,0) het nulpunt, (0,50) een punt 50 cm van het nulpunt op de Y-as en (50,50) een punt op 50 cm van punt (0,50).
Afstanden D1, D2 en D3 (en de afstanden tussen (0,0), (0,50) en (50,50)) worden in de realsense software gemeten
Stelling van Pythagoras
- D’1 = sqrt( D1 ^2 + H^2)
- D’2 = sqrt( D2 ^2 + H^2)
- D’3 = sqrt( D3 ^2 + H^2)
Om de XY coördinaten van de camera terug te vinden wordt opnieuw de stelling van Pythagoras toegepast.
Afhankelijk van het gekozen nulpunt en de punten op de X en Y-as gaan de formules lichtjes veranderen. Hier staat de camera onder de X-as => XC is een negatieve waarde. En staat de camera in het verlengde van de Y-as, waardoor Yc vermeerderd moet worden met de lengte L.
Door middel van deze formules kan de XY coördinaat van de camera bepaald worden.
De Hoogte en coördinaat (Xc,Yc,0) worden bepaald na kalibratie van de camera door meten van de hoogte en bepalen van de afstand tot 3 punten in het XY vlak.
Voor elk object in de ruimte dat met object detectie gedetecteerd wordt wordt de geprojecteerde XY coördinaat (X_proj, Y_proj, 0) berekend én de afstand tot de camera Od.
Moest het object effectief op punt (X_proj, Y_proj, 0) staan, dan zou de afstand tot de camera “dep” zijn = Od + Od*
met de verhouding tussen Od en dep kan de coördinaat van het object (X,Y,Z) bepaald worden.
De veronderstellingen hierbij zijn dat X_proj én Y_proj groter zijn dan 0 en dat Z kleiner is dan H.
Aangezien afstanden gekwadrateerd worden is een afstand van -1 cm gelijk aan 1 cm. Vandaar de veronderstelling dat X _proj en y_proj groter moeten zijn dan 0.
Wanneer Z groter is dan H, dan valt voor de stelling g van pytagoras het snijpunt met het XY vlak niet meer samen met de geprojecteerde X_proj en Y_proj van het object.
Wanneer Od = dep, dan is Y gelijk aan Yproj en X = Xproj