2015-09-30 11 views
1

У меня есть два преобразования параметров в качестве входных данных для моей функции стоимости Цереры. Они оба являются преобразованиями, которые должны быть объединены, чтобы перепроверить мои очки. Оба преобразования даны в виде вектора вращения Родригеса и вектора переноса.Как объединить преобразования в решателе ceres?

Вопрос в том, как объединить эти два преобразования в функции стоимости (используя API Ceres API), чтобы перепрограммировать точки?

ответ

1

Посмотрите функций в/rotation.h файле заголовка Ceres: http://ceres-solver.org/nnls_modeling.html#rotation-h

Например, вы можете преобразовать вектор Rodrigues в матрицу вращения:

void AngleAxisToRotationMatrix<T>(T const *angle_axis, T *R) 

С, что вы можете построить ваша собственная матрица преобразования 3x4 для каждого преобразования, объединяющая поворот и перевод (для этого вы можете использовать Eigen от http://eigen.tuxfamily.org/index.php?title=Main_Page). Матричное умножение затем дает окончательное преобразование (разумеет порядок).