资讯详情

陀螺仪应用

    版权声明:本文来自博客,转载请注明来源。     https://blog.csdn.net/geduo_83/article/details/85861982    </div>                    <link rel="stylesheet" href="https://csdnimg.cn/release/phoenix/template/css/ck_htmledit_views-f57960eb32.css">      <div class="htmledit_views" id="content_views">             <p><a href="https://download.csdn.net/download/geduo_83/10901114" rel="nofollow" target="_blank">源代码下载地址:https://download.csdn.net/download/geduo_83/10901114</a></p> 

前言:

这篇文章写于2014年11月,当时公司想搞一个技术沙龙,所以我写了以下文字,今天分享给大家纪念。

1项目背景 2

1.1引经典谈沙龙 2

1.2基于现实谈数据 2

1.3回到主题谈流程 2

2陀螺仪 2

2.1陀螺仪的概念和意义 2

2.2反向推理分析 3

2.3正实现过程 3

2.4相关算法 4

2.4.1角速度公式 4

2.4.2均值滤波器 4

2.4.3矩阵乘法 4

2.5左右转算法 4

2.6 XYZ轴数据分析 4

2.7画图提问 5

3加速计 5

3.1带着疑问采集数据得结论 5

3.2通过实验反过来验证结论 5

3.3 XYZ数据分析 5

3.4问题测车机 5

3.5同向、异向算法 5

3.6讨论计步器 6

4总结 6

4.1陀螺仪 6

4.2加速计 6

5讨论 6

5.1问题 6

说到沙龙,我想到了公元365年在中国历史上举行的最早的文学沙龙兰亭诗会。当时有会稽市(也就是浙江绍兴南亭,当时王羲之是绍兴市市市长)市长王羲之、谢安等41位军政高官出席了会议。大家一起吟诗作赋,酒言欢乐。有一段时间,也足以畅叙幽情。那一刻,就在这一刻,1000多年后的今天,我们都聚集在95智能驾驶。今天,我们不谈论文学、大数据或互联网。今天,我们主要讨论陀螺仪在汽车互联网中的应用。

未来时代是连接时代,百度连接人和信息,阿里巴巴连接人和商品,腾讯连接人和人,所以95智能驾驶连接人和汽车,未来时代是数据时代,所以大量的数据挖掘工作迫在眉睫,基于此,今天我们想谈论,公司研究项目,车辆驾驶行为数据采集系统,即通过手机陀螺仪采集数据,对车辆的左转、右转、快速加速和快速减速进行加工分析

沙龙分为三部分。第一部分是左转和右转。第二部分是快速加速和快速减速。第三部分是总结和讨论 当时,收到这个项目的压力也很大,因为我以前对这个项目没有任何理解和接触。什么是陀螺仪?你能做到这一点吗?带着这些问题,我问了杜娘,杜娘立即回应,给了我一张照片,请看,当时有点头晕

我们正在看另一张照片。这是什么?东汉末年中国著名天文学家张衡发明的地动仪用于测量地震。我们都知道尺子是用来测量长度的工具。我们的陀螺仪是什么?他用来测量角速度,所以陀螺仪也被称为角速度传感器,什么是角速度,说角速度,你可能会想到线速度,物体单位时间的距离是线速度,所以物体在单位时间的角度,是角速度,手机陀螺仪称为微机械陀螺仪,他是手机传感器之一。

传感器分类:感知环境、距离和运动 1方向传感器:Sensor.TYPE_ORIENTATION 2加速传感器:Sensor.TYPE_ACCELEROMETER 3线性加速度传感器:Sensor.TYPE_LINEAR_ACCELERATION 4光传感器:Sensor.TYPE_LIGHT 5磁场传感器:Sensor.TYPE_MAGNETIC_FIELD 6距离传感器:Sensor.TYPE_PROXIMITY 7温度传感器:Sensor.TYPE_TEMPERATURE 8旋转向量传感器:Sensor.TYPE_ROTATION_VECTOR 9角速传感器:Sensor.TYPE_GYROSCOPE//gyroscopebr> 10 重力传感器:Sensor.TYPE_GRAVITY 11 压力传感器:Sensor.TYPE_PRESSURE

大家想了,现在我们抛开陀螺仪,车辆的转弯大家都知道,画直线,转完了吗?没有,画转弯线,转弯了吗?转弯了,为什么?因为角度的变化对不对,那么我们只要知道了设备运动方位,然后根据前后两个方位角的角度差值和我们的参考值做对比是不是问题就解决了,比如说此时初始方位角是50度,结束方位角为90度,参考值为30度,那么90度键50度,得40度大于了30度我们我们就认为他就转弯了,那么现在我们只要通过陀螺仪计算出设备运动是的方位角问题就解决了  SensorManager.getOrientation(currentRotationMatrixCalibrated,gyroscopeOrientationCalibrated); SensorManager.getRotationMatrixFromVector(deltaRotationMatrixCalibrated, deltaRotationVectorCalibrated); SensorManager.getRotationMatrix(initialRotationMatrix, null, acceleration, magnetic);

1.通过加速计和磁强计初始化了一个旋转矩阵 2.通过矩阵乘法对初始化的旋转矩阵进行数据校对 3.通过陀螺仪传感器得到三个轴的角速度分量 4.根据三轴分量计算角速度 5.根据角速度和时间求方位角 6.根据方位角求正弦、余弦 7.根据正弦、余弦求旋转向量四元素 8.根据旋转向量四元素求旋转矩阵 9.根据旋转矩阵和初始旋转矩阵通过矩阵乘法得到一个校准的旋转矩阵 10.根据旋转矩阵就得到了方位角 11.根据方位角之间的角度差就判断车辆转弯了

x*x + y*y + z*z = a*a

a = (x + y + z)/3

private float[] matrixMultiplication(float[] a, float[] b) {      float[] result = new float[9];      result[0] = a[0] * b[0] + a[1] * b[3] + a[2] * b[6];      result[1] = a[0] * b[1] + a[1] * b[4] + a[2] * b[7];      result[2] = a[0] * b[2] + a[1] * b[5] + a[2] * b[8];      result[3] = a[3] * b[0] + a[4] * b[3] + a[5] * b[6];      result[4] = a[3] * b[1] + a[4] * b[4] + a[5] * b[7];      result[5] = a[3] * b[2] + a[4] * b[5] + a[5] * b[8];      result[6] = a[6] * b[0] + a[7] * b[3] + a[8] * b[6];      result[7] = a[6] * b[1] + a[7] * b[4] + a[8] * b[7];      result[8] = a[6] * b[2] + a[7] * b[5] + a[8] * b[8];      return result;   }

α:初始方位角 β:结束方位角 γ:角度差

若0<α<90 &&270<β<360&&360-β+α>45,则左转弯了 若270<α<360 &&0<β<90&&360-α+β>45,则右转弯了 若β-α>45,则右转弯了  若β-α<-45,则左转弯了

x轴:右转弯(0-->π,-π-->0),左转弯(0-->-π,π-->0) y轴:上坡(0-->-π/2),下坡(0-->π/2) z轴:左侧翻(0-->π),右侧翻(0-->-π)

右左左右

加速度:单位时间类速度的变化率 为正则急加速,为负则急减速 加速度大说明单位时间里速度变化快,要么急加速,要么急减速了 如果设备运动方向和轴的方向一致,则正值为急加速,负值为急减速  如果设备运动方向和轴的方向不一致,则正值为急减速,负值为急加速

x轴:水平方向,向右为正方向 y轴:垂直方向,向上为正方向 z轴:垂直于手机屏幕,屏幕的正前方为正方向

刚才我们讨论了手机的急加速和减速的问题 那么现在我们怎么通过手机来测试车机的急加速和急减速 是不是就是判断设备运动的方向和轴的方向的关系,同向:正为正就是急加速,为负就是急减速,异向:负为急加速,正为急减速

α:手机方位角 β:车机方位角 y轴: 若0<=α<=90,则0 < β < α + 90 || α+270 <= β <=360  若270<=α<360,则0 < β < α - 270 || α - 90 < β < 360 若90<=α<=270,则α-90 < β < α + 90

x轴: α = α + 90 若α > 360 则 α - 360 z轴: α = α + 180 若α > 360 则 α - 360

位移:s=v*t+0.5*a*t*t

陀螺仪关键在计算方位角、分情况讨论左转弯,右转弯

加速度关键在于怎么判断车辆运动的方向和轴的方向

       通过手机传感器来测量车辆左转弯、右转弯、急加速、急减速行得通不?有没有前提条件?        通过分析我们不难得出结论:通过陀螺仪来测量车辆左转弯、右转弯,急加速、急减速是行不通的,因为手机放在车上,不可能将其固定不动放在一个位置之上。比如电话来了,用户很快的拿出手机接了电话,有急加速吗?有;有转弯吗?有;但是车辆转弯了吗?没有;车辆急加速了吗?没有。

源码下载地址:https://download.csdn.net/download/geduo_83/10901114

问题反馈

在使用中有任何问题,欢迎反馈给我,可以用以下联系方式跟我交流

  • QQ:303704981
  • email:geduo_83@163.com
  • weibo:@geduo_83

关于作者


 
   
      
  1. var geduo_83 = {
  2. nickName : "geduo_83",
  3. site : "http://www.weibo.com/geduo83"
  4. }

 

标签: 陀螺仪力传感器

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台