本文主要是介绍姿态解算知识点4——挥动方向和大小,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
1.目标
- 手势挥动的方向α,-180°~ 180°
- 挥动力度大小intensity,0~10
2.已知量
- 欧拉角pitch,roll,yaw
- 地理坐标系的角速度 pitch_rate, roll_rate,yaw_rate
3.运动模型
目标体在空中挥动模型可以这样定义,把三维空间模型简化为二维空间模型,我们可以把目标体当做一个点,运动的空间当做一个XY二维坐标系,接下来我们只要分析这个点在XY坐标系下是怎么运动就可以了,空间中运动模型如下图:
从上图中可以看出,挥动角度为α ,挥动力度大小可以用向量 的模表示。因此:
那挥动时x,y坐标用什么表示呢?它们和角速率又是什么关系呢?
方式一:X,Y坐标如果选择用欧拉角表示时,X坐标为左右挥动即yaw角,Y坐标为上下挥动即pitch角;
方式二:X,Y坐标如果选择用欧拉角角速度表示时,X坐标为左右挥动即yaw_rate,Y坐标为上下挥动即pitch_rate;
对比方式一、二,因为欧拉角是经过了滤波融合算法,响应速度比较慢,所有这里选择角速度来计算,即方式二。因此上面的公式可以进一步表示为:
挥动时pitch_rate和yaw_rate是实时变化的,不适合做挥动计算,因此我们只需要获取挥动至高点时的角速度(也就是峰值)来计算。
4.角速度峰值检测以及源代码
手势挥动算法
5.数据曲线
- 挥动效果图一
红色曲线-挥动方向
蓝色曲线- yaw rate
棕色曲线- pitch_rate
- 挥动效果图二
红色曲线-挥动方向
蓝色曲线- yaw rate
棕色曲线- pitch_rate
- 参考文献
这篇关于姿态解算知识点4——挥动方向和大小的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!