作者热门文章
- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我有一堆等距[R | t] 变换矩阵,即它们是 3D 刚性变换。目前我将它们存储为 Eigen仿射 transformations ,以紧凑形式表示,例如Eigen::AffineCompact3d
它不存储冗余的最后一行 [0 0 0 1]。
我也知道有一个 Eigen::Isometry3d
我猜这是 Transform<double, 3, AffineCompact, Isometry>
的 typedef .
我在 Isometry 之后,因为逆变换(转置)比一般的仿射逆要便宜得多。我也知道,当我将 inverse() 用作 affine_mat.inverse(Eigen::Isometry);
时,我可以传递一个提示。
但我希望无需每次都手动传递提示即可获得等距逆行为。换句话说,我想知道复制 Eigen::IsometryCompact3d
行为的最佳方式是什么?令人惊讶的是,Eigen API 中缺少哪些?
最佳答案
为了表示等轴测图,我目前正在使用 twists .这种参数化可以用一个 6 元素 vector 来描述。
要来回转换为标准齐次矩阵公式,您将需要几个基于 log() 和 exp() 的函数(因此转换将是一个缓慢的操作)。
如果您在两个公式之间来回切换时没有性能限制(或者您很少这样做),或者如果您想利用扭曲的特性(例如在数值优化中),那么此解决方案是有利的
关于c++ - 如何在 Eigen 中表示紧凑等距变换矩阵?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14177780/
我是一名优秀的程序员,十分优秀!