2015-04-24 6 views
1

У меня есть облако точек от kinect fusion и используйте Cloud Cloud Library для сегментации плоскости земли (a x + b y + c * z + d = 0) успешно (я получил a, b, c, d в pcl :: Модельные коэффициенты плоскости заземления). Теперь мне нужно преобразовать декартовы координаты в новые декартовы координаты, что делает плоскость земли плоскостью X-O-Y (0 * x + 0 * y + z = 0). Я предполагаю, что я могу это сделать с помощью этого API (но я не знаю, как): http://docs.pointclouds.org/trunk/group__common.html#transformPointCloudПреобразование координат точки облака в другие координаты в облачной библиотеке точек, что делает плоскость земли плоскостью X-O-Y?

Мой ответ: Посмотрите на этот PCL апи: http://docs.pointclouds.org/1.7.2/a02405.html#ga4375e99ec2ae368eec9379f506568611

я успешно решил эту проблему!

+0

Ради общественного блага, вы должны написать полный ответ и принять свой собственный ответ. – Samer

+0

ссылка, которую вы предоставили, не работает, можете ли вы предоставить решение – MaheshKumar

ответ

0

Я не могу открыть ссылку на свой API, но думаю, вы можете превратить вас самолет с помощью простых преобразований:

  1. вы должны добавить все точки вектора {а * д, б * г, с * d} - , который перемещает ваши точки на плоскость топора + на + cz = 0
  2. тогда вы должны найти матрицу вращения вокруг оси [{a, b, c} cross {0, 0, 1}] на угол [{ a, b, c} dot {0, 0, 1}] и преобразуйте ваши точек по этой матрице http://www.euclideanspace.com/maths/geometry/rotations/conversions/angleToMatrix- здесь вы можете увидеть, как найти матрицу вращения от оси и угла
0

Эта функция требует камеры позу, которая является матрицей 4х4, формы

| R t | 
| 0 1 | 

Здесь R является матрицей вращения 3х3, т представляет собой перевод вектор 3x1, 0 - это 1x3 вектор нули и 1 - единство (скалярное).

Вы должны спроектировать эту матрицу таким образом, чтобы ось Z в новой системе координат была коллинеарной нормальному вектору вашей плоскости. Новые оси X и Y произвольны, единственное ограничение состоит в том, что они должны образовывать ортогональный базис.

This link объясняет, как получить матрицу R.

 Смежные вопросы

  • Нет связанных вопросов^_^