5

Eigen には、平行移動 ( Eigen::Vector3f) と回転 ( Eigen::Quaternionf) の形でいくつかの変換があります。これらすべての変換を、選択した順序で 4x4 変換マトリックスに結合したいと思いEigen::Matrix4fます。

たとえば、次の変換を A、B、C、D、E の順序で適用したいと思います。

Eigen::Vector3f translation_A;
Eigen::Quaternionf rotation_B;
Eigen::Quaternionf rotation_C;
Eigen::Quaternionf rotation_D;
Eigen::Vector3f translation_E;

これを達成する最も簡単な方法は何ですか?これまでのところ、次のように最終データに個別に適用してきました。

pcl::transformPointCloud(*cloud_in, *cloud_out, translation_A, IDENTITY_QUATERNION);
pcl::transformPointCloud(*cloud_out, *cloud_out, ZERO_TRANSLATION, rotation_B);
pcl::transformPointCloud(*cloud_out, *cloud_out, ZERO_TRANSLATION, rotation_C);
pcl::transformPointCloud(*cloud_out, *cloud_out, ZERO_TRANSLATION, rotation_D);
pcl::transformPointCloud(*cloud_out, *cloud_out, translation_E, IDENTITY_QUATERNION);

...しかし、Eigen を使用してこれらの変換を最終的な 4x4 変換行列に結合する簡単な (組み込みの?) 方法が必要です。

4

1 に答える 1