我正在为Linux主机构建一个框架,以在主体睡眠时收集事件。其中一部分涉及将Android手机绑定到主体并运行HyperImu,这是一个记录选定传感器并将其作为UDP数据包发送到主机的应用程序。
在第一遍中,我希望检测出被试什么时候会翻来覆去(接下来,我希望区分左右转身与起床或上床)。
Android开发人员描述了一个显著运动传感器,但不幸的是,这是一个触发事件,我总是认为它为零。我还没有发现哪种传感器组合会产生这种情况。我已经查看了线性加速度和旋转矢量的幅度分布,但我还没有能够将这些与运动或稳定性联系起来。
我想了解如何合并available sensors来实现这一点。
编辑
这似乎是错误的:
刚才,我已经看到Note:当设备静止时,重力传感器的输出应该与加速度计的输出相同。
这就是我拿着电话坐在table上的情景,屏幕上出现了:
[,1] [,2] [,3]
gravity_sensor.x 0 0.07383085 0.072416830
gravity_sensor.y 0 0.05186246 0.050198150
gravity_sensor.z 0 9.80958600 9.809605000
linear_acceleration_sensor.x 0 -0.08544645 -0.059478775
linear_acceleration_sensor.y 0 0.07358940 -0.039030086
linear_acceleration_sensor.z 0 0.03905296 0.006094933
3条答案
按热度按时间cuxqih211#
重力传感器是加速计,工作正常。
这是固定移动的设备的典型阅读。
查看“gravity_sensor.z”,其给出的值约为9.8。
这就是手机上始终存在的重力加速度(g = 9.81m2/sec)。
线性传感器将尝试在去除重力影响后给出加速度指标。所以,这可能是你想要的。
现在,进入下一部分,如果你想记录睡眠对象的翻来覆去,陀螺仪传感器的输出就是你想要的。
陀螺仪会给予你设备的旋转细节。
任何大的变化都意味着受试者改变了睡眠姿势。
我...
假设主体正面朝上睡觉,旋转输出给予
x~0,y~0,z~0
现在,让我们假设主体现在正以其右臂睡觉,这将意味着手机现在已经旋转,并且应该具有其沿着
x~0,y~0,z~90
线的旋转细节(注意,这是以度为单位的,您的值可能不同)2hh7jdfx2#
在这个表中,引力矢量似乎可靠地确定了我感兴趣的位置:
3wabscal3#
遗憾的是,你的这种运动并不被认为是有意义的:
https://source.android.com/docs/core/interaction/sensors/sensor-types#significant_motion
此类重大运动的示例包括:
不触发明显运动的情况示例:
此传感器用于在电话静止时帮助减少位置请求的数量。
但是,重力传感器应该是有用的。