本发明具体涉及基于四元数的两个独立系统坐标系之间的转换方法。
背景技术:
现行的虚拟现实系统和动作捕捉系统有很多。虚拟现实系统,如htcvive、oculusrift、psvr;动作捕捉系统,如perceptionneuron、optitrack,它们都可以独立测量到3d场景中目标的位置信息和空间姿态信息,但是其坐标系、原点、测量精度等并不一定一致。在多系统混合使用的过程中,系统的位置信息和空间姿态信息需要进行变换,才能进行数据融合处理,已申请的专利cn104834917a提到了一种混合动作捕捉的系统及方法,没有提及系统之间的信息转换方法。
技术实现要素:
本发明的目的是为解决上述不足,提供基于四元数的两个独立系统坐标系之间的转换方法
本发明的目的是通过以下技术方案实现的:
基于四元数的两个独立系统坐标系之间的转换方法,包括转换参数的标定过程和信息转换过程,
转换参数的标定过程具体步骤如下:
s11:系统a的标志物为a,系统a测量标志物a的位置信息和空间姿态信息;系统b的标志物为b,系统b测量标志物b的位置信息和空间姿态信息。标志物a和标志物b固定在一个固定座上;
s12:保持标志物相对不动,转动固定座即同时转动标志物a和标志物b,获取n组运动过程的两个标志物的位置信息和空间姿态信息;
s13:以位置信息中的三维空间坐标为四元数的虚部,把位置信息转化为实部为0的四元数pmi=(0,pxmi,pymi,pzmi),m=a,b;i=1,2…n,如果获取的空间姿态信息是单位四元数,则不用做处理,否则把获取的空间姿态信息转为描述旋转的单位四元数
qmi=(qwmi,qxmi,qymi,qzmi),m=a,b;i=1,2…n;表示空间姿态的单位四元数两两组合,得出n(n-1)/2个相对旋转值
qmk=qmiqmj-1
m=a,b
i,j=1,2…n
i<j
k=n(i-1)+j
s14:设从系统a到系统b的转换参数为旋转参数qab、原点偏
移参数pab和标志物偏移参数pab。
系统a到系统b的信息转换公式为:
qb=qabqaqab-1
pb=qab(pa+pab+qapabqa-1)qab-1
把s13步骤的n(n-1)/2个表示相对空间姿态的单位四元数和n个表示位置的四元数代入公式中,最小化均方差:
采用高斯-牛顿迭代法来求解出最优参数qab、pab、pab;
信息转换过程具体步骤如下:
s21:通过系统a获取标志物a的位置信息和空间姿态信息;
s22:以位置信息中的三维空间坐标为四元数的虚部,把位置信息转化为实部为0的四元数pa=(0,pxa,pya,pza);如果获取的空间姿态信息是单位四元数,则不用做处理,否则把获取的空间姿态信息转为描述旋转的单位四元数qa=(qwa,qxa,qya,qza);
s23:根据信息转化公式,和标定后的转换参数,可以计算出该标志物在系统b下的位置信息pb和空间姿态信息qb:
qb=qabqaqab-1
pb=qab(pa+pab+qapabqa-1)qab-1
按照使用的需要,能够把位置信息pb等价地转化为平面直角坐标系的三维空间坐标、极坐标系的坐标等,把空间姿态信息qb等价地转化为旋转矩阵、欧拉角、单位四元数等;它们是可以等价转换的。
最优参数qab、pab能够通过高斯-牛顿迭代法,或者lm阻尼法,或者dog-leg法求出。
本发明具有如下有益的效果:
本发明为两独立测量的3d系统提供一种简单有效的坐标系转换的方法,两个系统之间的位置信息和空间姿态信息可以相互转化,方便后续的数据融合,计算简单快捷,无需额外的测量仪器。
附图说明
图1为本发明的方法流程图;
图2为本发明的固定两独立系统标志物的示意图;
图3为本发明的标志物a和标志物b转动过程示意图;
图4为本发明的通过标志物a的信息转换的示意图。
具体实施方式
下面结合附图对本发明作进一步的说明:
如图1-图4所示,基于四元数的两个独立系统坐标系之间的转换方法,包括转换参数的标定过程和信息转换过程,
转换参数的标定过程具体步骤如下:
s11:系统a的标志物为a,系统a测量标志物a的位置信息和空间姿态信息;系统b的标志物为b,系统b测量标志物b的位置信息和空间姿态信息。标志物a和标志物b固定在一个固定座上;
s12:保持标志物相对不动,转动固定座即同时转动标志物a和标志物b,获取n组运动过程的两个标志物的位置信息和空间姿态信息;
s13:以位置信息中的三维空间坐标为四元数的虚部,把位置信息转化为实部为0的四元数pmi=(0,pxmi,pymi,pzmi),m=a,b;i=1,2…n,如果获取的空间姿态信息是单位四元数,则不用做处理,否则把获取的空间姿态信息转为描述旋转的单位四元数qmi=(qwmi,qxmi,qymi,qzmi),m=a,b;i=1,2…n;空间姿态信息两两组合,得出n(n-1)/2个相对旋转值
qmk=qmiqmj-1
m=a,b
i,j=1,2…n
i<j
k=n(i-1)+j
s14:设从系统a到系统b的转换参数为旋转参数qab、原点偏移参数pab和标志物偏移参数pab。
系统a到系统b的信息转换公式为:
qb=qabqaqab-1
pb=qab(pa+pab+qapabqa-1)qab-1
把s13步骤的n(n-1)/2个表示相对空间姿态的单位四元数和n个表示位置的四元数代入公式中,最小化均方差:
采用高斯-牛顿迭代法来求解出最优参数qab、pab、pab;
信息转换过程具体步骤如下:
s21:通过系统a获取标志物a的位置信息和空间姿态信息;
s22:以位置信息中的三维空间坐标为四元数的虚部,把位置信息转化为实部为0的四元数pa=(0,pxa,pya,pza);如果获取的空间姿态信息是单位四元数,则不用做处理,否则把获取的空间姿态信息转为描述旋转的单位四元数qa=(qwa,qxa,qya,qza);
s23:根据信息转化公式,和标定后的转换参数,可以计算出该标志物在系统b下的位置信息pb和空间姿态信息qb:
qb=qabqaqab-1
pb=qab(pa+pab+qapabqa-1)qab-1
按照使用的需要,能够把位置信息pb等价地转化为平面直角坐标系的三维空间坐标、极坐标系的坐标等,把空间姿态信息qb等价地转化为旋转矩阵、欧拉角、单位四元数等;它们是可以等价转换的。
旋转参数qab、原点偏移参数pab和标志物偏移参数pab能够通过高斯-牛顿迭代法,或者lm阻尼法,或者dog-leg法求出。