做这个的来由是一哥们想要通过手机的加速度和方位角数据,分离出手机在无重力情况下的加速度(类似于NS健身环的功能)。
那怎么实现呢:首先我们有的数据是手机的三个方位角度α,β,γ以及xyz方向上的加速度a_x,a_y,a_z。这个问题的关键在于怎么找出重力加速度,并把它去掉,那我们可以先把手机的方位还原为初始状态,即α,β,γ均为0,通过使用欧拉角变换公式:
通过欧拉角变换后,重力加速度被聚集到z分量上,直接减去一个g即可剩余的加速度即是无重力情况下的加速度。以下是基于MATLAB的方法:
close all; clear all, clc
a_init = [ 0; 5; 0];% 输入加速度
1