2013-01-06 31 views
5

私はアイソメトリの束を持っています[R | t]変換行列、すなわちそれらは3D剛性変換である。現在、私はそれらをコンパクトな形で表したEigenアフィンtransformationsとして保存しています。 Eigen::AffineCompact3dは、[0 0 0 1]の冗長最後の行を格納しません。Eigenのコンパクトアイソメトリ変換行列を表現する方法?

またTransform<double, 3, AffineCompact, Isometry>のtypedefと思われるEigen::Isometry3dがあることを知っています。

私はアイソメトリの後ろにあるので、逆の変換は一般的なアフィン逆変換よりもずっと安価です。私はinverse()を使用するとヒントを渡すこともできることを知っています。

しかし、毎回手動でヒントを渡さずに等値逆動作を得たいと思います。言い換えれば、私は知りたいのですが、驚くべきことにEigen APIにはないEigen::IsometryCompact3dの動作を複製する最良の方法は何ですか?

答えて

1

私は現在、twistsを使用しています。このパラメータ化は、6要素ベクトルで記述することができます。

標準的な均質マトリクス形式に変換するには、log()とexp()に基づいて2つの関数が必要です(変換が遅い操作になります)。

このソリトンは、2つの定式化を行き来する(まれにそうでない)か、ひねりのプロパティを利用したい場合(数値最適化など)には、パフォーマンスの制約がない場合に適しています

+0

はい、リーグループの表現を一般的に持つのは良いことです。しかし、私の場合は、たくさんのベクトルを変換しています。行列表現は私のためには最適です。私はアイゲンの作家が何とかこのことを逃したと思う。 – iNFINITEi

関連する問題