math - 两次旋转之间的误差?

标签 math 3d rotation

抱歉 - 我应该知道,但我不知道。 我通过两个不同的过程计算了引用系 (S1) 相对于基本引用系 (S0) 的位置,这两个过程为我提供了两个不同的 4x4 仿射变换矩阵。我想计算两者之间的误差,但不确定如何处理旋转分量。会喜欢任何建议。

谢谢!

最佳答案

如果 R0 和 R1 是两个应该相同的旋转矩阵,那么 R0*R1' 应该是恒等的。对应于 R0*R1' 的旋转矢量的大小是来自身份的旋转(通常以弧度为单位)。通过 Rodrigues 公式可以高效地将旋转矩阵转换为旋转向量。

用一个常见的用例Python和OpenCV来回答你的问题,错误是

r, _ = cv2.Rodrigues(R0.dot(R1.T))
rotation_error_from_identity = np.linalg.norm(r)

关于math - 两次旋转之间的误差?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6522108/

相关文章:

python - number为正负(包括0)如何返回1或-1?

mysql - 如何从mysql上的多个表计算账单?

swift - 使用 scenekit 和 swift - Boids 实现将模型旋转到它在 3d 中行进的方向

graphics - 延迟着色中的全屏方 block 有名称吗?

java - 阵列矩形旋转

arrays - Tensorflow 中张量和多维矩阵有什么区别?

java - 更快地实现 Math.round?

objective-c - 返回 CATransform3D 将四边形映射到四边形

css - 垂直居中旋转文本

java - LWJGL 仅旋转屏幕上的一个对象