gpt4 book ai didi

c++ - 如何在 Eigen 中表示紧凑等距变换矩阵?

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:48:57 24 4
gpt4 key购买 nike

我有一堆等距[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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com