python - 使用四元数对3D空间中的对象进行坐标校正
问题描述
我有一个在 3D 空间中的对象。标记附加到对象。标记给出了对象相对于原点的 (X,Y,Z)。标记还给出了该点的四元数(A、B、C、D)。对象上的标记未放置在对象的中心。
我想更正标记坐标,以便标记位置沿原点的 X 轴平移到对象的中心。给定标记位置和对象中心之间的距离是数字“K”。
如何使用四元数来校正标记坐标?我真的坚持了一段时间,任何解决方案都会对我有很大帮助。在此先感谢。
使用 scipy.spatial.transform import Rotation 我可以获得标记的给定 (X,Y,Z) 的旋转矩阵、欧拉角或旋转矢量。下图显示了从动作捕捉传感器获取的一组点。
我的代码:
from scipy.spatial.transform import Rotation as R
quat=[-0.018853,0.801030,0.022920,0.597888] #A,B,C,D quaterion of a point (x,Y,Z)
r = R.from_quat([quat])
rot_matix=r.as_dcm() #rotation matrix
rot_vector=r.as_rotvec()
这是我从四元值中获得的信息。
解决方案
推荐阅读
- c++ - 如何在 getline 中删除/忽略超过某个数字的字符?
- ios - 实例将立即被释放,因为属性“imageView”是“弱”
- python - 为 ML 模型预测重新创建稀疏矩阵列
- html - HTML 5 提交按钮无法正常工作
- html - 这两个元数据元素在
- python - 计算一列中两个不同值在不同列中共享相同值的频率?
- c++ - 如何测量管道延迟?
- python - 散景:更新矩形中的空 FactorRange
- javascript - jQuery Ajax - 加载函数重复单击事件处理程序
- json - 如何在 PostgreSQL 中使用 row_to_json 分配 JSON 变量