首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Android加速度计向自定义坐标系的映射

Android加速度计向自定义坐标系的映射
EN

Stack Overflow用户
提问于 2022-05-08 12:32:57
回答 1查看 66关注 0票数 0

如果我有自定义坐标系统X-左/右,Y向前/向后,Z-向上/向下表示在我的个人电脑屏幕在我的不真实的项目,我如何映射加速器值的方式,当我移动我的手机到个人电脑屏幕(不管手机的方向),使我的Y值上升和相同的其他轴?

我用“参考”旋转四元数来做类似的工作,把旋转四元数和当前的旋转四元数相乘,但是我只想知道如何转换运动。

我的问题的一个例子是,如果我将手机向上移动,屏幕指向天空,我的Z轴就会增加,这正是我想要的,但当我将手机屏幕指向我的PC屏幕并将它向前移动时,当我希望在这种情况下我的Y值增加时,Z轴再次上升。

还有一个类似的问题,Acceleration from device's coordinate system into absolute coordinate system,但这并不能真正解决我的问题,因为我不想依赖于Y的北部位置等等。

EN

回答 1

Stack Overflow用户

发布于 2022-05-11 19:52:58

问题意图的澄清

听起来你想要的是你的设备相对于你的笔记本电脑的加速。正如您正确地提到的,类似的问题Acceleration from device's coordinate system into absolute coordinate system映射了一个设备相对于全球参照系( FoR )的本地加速度计数据(笛卡儿的“平面”地球FoR是具体的,而不是超现实的球形地球FoR)。

你所知道的

从你的设备中,你知道本地的电话FoR,从上面的链接中,你也可以找到你的设备相对于具有自转矩阵的平面地球FoR的行为,我称之为R_EP,在Earth FoR 中,来自P for。为了表示你的设备相对于你的笔记本电脑的加速,你需要知道你的笔记本电脑是如何定位和定位的,无论是你的手机的FoR (A),还是平板地球的FoR ( B ),还是你的笔记本电脑和你的手机都知道的其他FoR,但我会忽略这一点,因为它与B无关,其方法与B相同。

你需要什么

在第一种情况下,A,这将允许您构造一个旋转矩阵,我将称之为R_LP,用于在PE 222磨合for中的Laptop FoR 中旋转,这将是超级方便的,因为这就是您的答案。但是遗憾的是,没有一点挑战,生活是不好玩的。

在第二个例子中,B,这将允许您构造一个旋转矩阵,我将称之为R_LE,用于在EE 232arth FoR中的Laptop for 中旋转。因为汉密尔顿产品是联想式的(但不是可交换的:Are quaternions generally multiplied in an order opposite to matrices?),所以您可以通过雏菊链接旋转找到手机相对于笔记本电脑的加速,如下所示:

a_P]L = R_LE * R_EP * a_P]P

其中]的意思是“在框架内”,而a_P是手机加速的意思。因此,a_P]L是笔记本电脑FoR中手机的加速,a_P]P是手机在FoR中的加速。

注意到当“雏菊链”旋转矩阵时,它们遵循特定的顺序是很重要的。请始终确保旋转矩阵按正确的顺序乘以,更多信息见第2.6节和第3.1.4节。

提示

要定义您的笔记本电脑的FoR (方向和位置)与全球“平面”地球FoR,您可以将您的手机放在您的笔记本电脑,并设置当前的方向和位置为您的笔记本电脑的FoR。这将使您可以构造R_LE。

误解

旋转四元数q既不是相对于另一个参照系的取向,也不是态度。相反,它表示一个“中点”向量,正向旋转平面,其中从一个参照系的向量旋转到另一个。这就是为什么定义四元数从全局帧旋转到本地帧(反之亦然)是非常重要的。ENU到NED的旋转是一个很好的例子,其中旋转四元数是[0; sqrt(2)/2; sqrt(2)/2; 0],这是两个横坐标(X)轴之间的“中点”(在全局和局部参照系中)。如果您执行“右手规则”,将三个手指指向ENU方向,然后快速地从NED方向来回切换,您将看到,在全局FoR中,这两个方向的旋转只是一个大约1;1;0的旋转。

参考文献

我不能推荐以下足够高的开源参考:

1“误差状态卡尔曼滤波器的四元数运动学”。https://hal.archives-ouvertes.fr/hal-01122406v5

对于一个“操场”来进行实验,并获得对四元数的“亲手”理解:

2可视化四元数,一个可外露的视频系列。格兰特·桑德森的课程。本食客https://eater.net/quaternions技术

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72161019

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档