Триангуляция с помощью 2 лазерных лучей (вращение облака точек) - PullRequest
0 голосов
/ 28 января 2020

У меня проблема, и я заблокирован, было бы полезно дать мне несколько идей (извините за мой Engli sh)

Я не знаю, как вращать облако точек относительно угол поворота пластины для второго лазерного луча, и я получаю облако точек пересечения.

Scheme

и я получаю это облако точек:

Pig

Платформа вращения:

Rotation System

Генерация и вращение облака точек:

u, v = points2D

#-- Obtaining point cloud in camera coordinates
if leftLaser:
    d = dL #minimum distance from left laser to origin camera coordinates
    n = nL #normal vector to left laser plane
else:
    d = dR #minimum distance from right laser to origin camera coordinates
    n = nR #normal vector to right laser plane

x = np.concatenate(((u-cx)/fx, (v-cy)/fy, np.ones(len(u)))).reshape(3,len(u))

Xc = d/np.dot(n,x)*x

#-- Move point cloud to world coordinates
R = np.matrix(rotationMatrix).T
t = np.matrix(translationVector).T

Xwo = R*Xc - R*t

#-- Rotate point cloud
c = np.cos(theta) #theta is the current plate angle, and increases in steps of 0.45°
s = np.sin(theta)
Rz = np.matrix([[c, -s, 0],[s, c, 0], [0, 0, 1]])
Xw = Rz * Xwo
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...