空鼠遥控器的设计思路
文章目录
- 空鼠遥控器的设计思路
- 前言
- 一、空鼠遥控器简介
-
- 1.遥控器功能
- 2.六轴陀螺仪
- 二、姿态更新算法
-
- 1.算法前的分析
- 2.算法基础知识
-
- 空间向量
- 旋转矩阵
- 基向量变换
- 3.开始算法
- 三、补充
-
- 1、四元数
- 2、卡尔曼滤波
- 总结
前言
写这篇文章主要是因为自己想要研究下其中的姿态解算算法原理,才有下面这篇。
通常的姿态解算是用到四元数处理,然而我用到的是基本旋转变换和基坐标变换。
提示:以下是本篇文章正文内容,下面案例可供参考
一、空鼠遥控器简介
1.遥控器功能
如下图所示,遥控器里有个传感器,操作遥控器空中上下左右移动,遥控器里面的陀螺仪会给出相应的数据,之后通过无线传输给智能显示设备,使设备里的鼠标指针移动,达到空中体感操控鼠标移动的目的。
陀螺仪测量的就是XYZ三个轴方向上的加速度以及绕着这三个轴转动的角速度。
二、姿态更新算法
1.算法前的分析
根据遥控器的功能需求,最后需求的结果是智能显示设备上鼠标指针的移动量,而这个移动量通过三维空间里的旋转角度得到,如下图,设定三维坐标系,Y轴水平指向显示设备,Z轴垂直指向天,X轴垂直与Y和Z轴的平面,方向符合右手定则,指向右侧。后面定义这个坐标系为R系 。
坐标系上的一个点P绕原点逆时针旋转β角度到点P’,
点P的坐标可表示为:
基向量变换
上节所讲的旋转矩阵都是基于在同一个坐标系下的,就以坐标的矩阵表达形式来看
而陀螺仪给出的是B系的旋转角度,所以需要对这个公式做出些变化。
根据之前讲的基变换,从R系到B系的表示为
2、卡尔曼滤波
这一块我也不是很了解,因为我这套解法是利用到了重力加速度,所以在陀螺仪收到的加速度不等于重力加速度时,计算出来的结果就不正确,也就是说要在测量出来的数据与预测出的数据中间需要滤出一个正确的数据。
总结
上面数学推倒过程有不严谨的地方,这里并不是研究数学公式,而是讲下求解思路。我这套求解算法在运算的时候比较复杂,需要求叉积、矩阵相乘和矩阵逆,而且还要考虑角度范围的问题。
我自己写过一套程序处理,验证这套算法是可以解算出角度变化的,只不过实现的有点麻烦,以后有空会继续研究下四元数是怎么处理的。
文章知识点与官方知识档案匹配,可进一步学习相关知识算法技能树首页概览35078 人正在系统学习中
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!