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

前言:

这篇文章写于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

项目背景

1.1 引经据典谈沙龙

说到沙龙,我想到了公元365年,在中国历史所举办的,有史料记载的,最早的一次文学沙龙“兰亭诗会”,当时有会稽市(也就是浙江绍兴南亭这个地方,当时王羲之作为绍兴市市长)市长王羲之,谢安等41位军政高官参会,大家在一起吟诗作赋,把酒言欢,一时间,群贤毕至,少长咸集,虽无丝竹管弦之声,一觞一咏,亦足以畅叙幽情。彼时彼刻,正如此时此刻,在一千多年后的今天,我们大家欢聚一堂在九五智驾,今天我们不谈文学,不谈大数据、也不谈互联网哪些事儿,今天主要和大家来聊一聊陀螺仪在车联网中的应用。

1.2 立足现实谈数据

未来的时代是连接的时代,百度连接了人和信息,阿里巴巴连接了人和商品,腾讯连接了人和人,那么九五智驾连接了人和车,未来的时代是数据的时代,那么海量的数据挖掘工作已经是迫在眉睫,基于此,就诞生了今天我们所要讲到的,公司的一个研究性的项目,车辆驾驶行为数据采集系统,也就是通过手机陀螺仪采集数据,进行加工分析,来判断车辆的左转弯,右转弯,以及急加速,急减速的问题

1.3 回归主题谈流程

本次沙龙共分为三个部分,第一部分讲左转弯,右转弯,第二部分我们讲急加速,急减速,第三部分我进行归纳总结、提问讨论
当时接到这个项目压力也是相当的大,因为以前对这块也没有任何的了解和接触,陀螺仪是什么?能干这个事儿吗?带着这些疑问,我就问了下当时的度娘,度娘立即就回应了,给了我一张图片,大家请看,当时看了就有些晕

陀螺仪

2.1 陀螺仪的概念和意义

我们在看另外一张图片,这是什么,地动仪,东汉末年我国著名的天文学家张衡所发明的地动仪,他是用来测量地震的,尺子大家都知道是用来测量长度的工具,那么我们的陀螺仪是测量什么的?他是用来测量角速度,所以陀螺仪也叫角速度传感器,何为角速度,说道角速度,大家可能会想到线速度,物体单位时间内所走的距离那就是线速度,同样道理那么物体在单位时间内所走的角度,就是角速度,手机上的陀螺仪叫微机械陀螺仪,他是手机传感器当中的一种。


传感器分类:感知环境的、感知距离的、感知运动的
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//gyroscope
10 重力传感器:Sensor.TYPE_GRAVITY
11 压力传感器:Sensor.TYPE_PRESSURE

2.2 反向推理分析

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

2.3 正向实现过程

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

2.4 相关算法

2.4.1 角速度公式

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

2.4.2 均值滤波器

a = (x + y + z)/3

2.4.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;
  }

2.5 左转、右转算法

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

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

2.6 X、Y、Z轴数据分析

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

2.7 画图提问

右左左右

加速计

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

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

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

3.3 X、Y、Z数据分析

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

3.4 提出问题测车机

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

3.5 同向、异向算法

α:手机方位角
β:车机方位角

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

3.6 计步器的讨论

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

总结

4.1 陀螺仪

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

4.2 加速计

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

讨论

5.1 问题

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

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

问题反馈

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

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

关于作者

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

陀螺仪在车联网中的应用相关推荐

  1. 【车联网】一文了解5G在车联网中的应用

    转发文章最多的朋友可以免费进入价值99元的<湾区AI精英会>海归圈子 1. 引言 近年来,因汽车数量持续增长而引起的交通安全.出行效率.环境保护等问题日益突出,车联网相关领域的研究和发展受 ...

  2. 车联网中密码技术的探究

    目录 一.发展 二.面临的威胁 三.密码技术在车联网中的应用 四.国密算法比较 五.总结 一.发展 物联网的实践最早可追溯到1990年施乐公司的网络可乐贩售机--Networked Coke Mach ...

  3. 物联网在车联网中的应用

    物联网在车联网中的应用 今天我想跟大家一起来分享一下互联网在车联网这个领域里面的一些应用. 那么大家做过长途飞机的时候应该都知道,然后前面通常会有一个小屏幕,然后你可以通过一个控制手柄来做一些个人的那 ...

  4. 车联网中基于轨迹预测的无人机动态协同优化覆盖算法

    本文由吴壮,唐伦,蒲昊,汪智平,陈前斌联合创作 摘要 针对城市车联网中出现的基站覆盖空洞及局部流量过载等问题,该文提出了一种基于车辆轨迹预测信息的动态预部署方案.首先,为了训练得到统一的 Seq2Se ...

  5. 5G URLLC物理层关键技术在车联网中的应用

    [摘  要]探讨了3GPP 5G URLLC物理层的关键技术及其在车联网中的应用,其中NR R15的关键技术包括"短调度单元技术""低谱效率传输技术"" ...

  6. 面向移动边缘计算车联网中车辆假名管理方案

    摘 要 移动边缘计算(mobile edge computing, MEC)技术将计算和存储资源下沉到网络边缘,为车联网带来了高实时性和可靠性的服务.然而,MEC技术也面临各种安全威胁,攻击者可控制边 ...

  7. 5G 在车联网中的需求

    目录 文章目录 目录 车联网 自动驾驶技术的分级标准 迈向自动驾驶的技术路径 自动驾驶对 5G 网络能力的需求 车联网 C-V2X 通信标准化进展 3GPP C-V2X 相关进展 CCSA C-V2X ...

  8. 车联网中如何应用大数据

    车联网通过新一代信息通信技术,实现车与云平台.车与车.车与路.车与人.车内等全方位网络链接,主要实现了"三网融合",即将车内网.车际网和车载移动互联网进行融合.车联网是利用传感技术 ...

  9. android studio 陀螺仪,Android Studio中陀螺仪的例子吗?(Android Studio Gyroscope e

    我试图建立它确实当设备被倾斜到一定程度所需影响的应用程序. 我已经采取了看,并成功启用,加速计,但是这并没有给我想要的影响. 就像我说的,我希望设备做什么,我希望它,只有当该设备已取得了一定的程度,说 ...

最新文章

  1. nexus搭建maven私服
  2. 通俗易懂地解释遗传算法?有什么例子?
  3. 全球及中国绿色建筑产业规模现状与未来走势分析报告2022版
  4. 三种Target Encoding方式总结
  5. 162. Find Peak Element
  6. python easygui_Python里的easygui库
  7. 面向切面编程--AOP(二)
  8. xss 全编码两次_URL编码与XSS
  9. 天涯明月刀开发_《天涯明月刀手游》正式上线 4700万玩家期待的那个江湖来了...
  10. Oracle放大招:MySQL 即将支持 Hash Join
  11. 孩子一生的教育纪录片
  12. unity5.0安卓开发环境配置
  13. c语言ad转换实验报告,苏州大学实验报告-实验四ad转换模块实验报告
  14. oracle卸载ogg,Oracle GoldenGate(ogg)安装经验大汇总,采坑总结,绝对干货!
  15. 计算机专业教室三行诗,当学霸写起三行情书,看完第一个就懵了……
  16. 收敛域、收敛区间与收敛半径
  17. 伊犁哈萨克自治州谷歌高清卫星地图下载
  18. C语言源代码系列-管理系统之电子英汉词典
  19. 天翼云、移动云ubuntu服务器分区和磁盘挂载步骤
  20. java程序员自我简介及简历

热门文章

  1. python字典属于什么类型_Python的字典类型
  2. input输入框只能输入数字,只能输入字母数字组合
  3. python做上位机好不_如何使用Python开发串口通讯上位机(完结)
  4. Servlet之 url-pattern (访问路径)的三种配置方式
  5. Win10非分页缓冲池过大
  6. JSTL标签循环集合列表
  7. 计算机未来想从事的职业作文,未来的职业作文5篇
  8. 计算机教育需求导向,OBE教育理念融入大学计算机基础教学的研究
  9. php单例模式pdo,PHP 单例模式理解
  10. python中文单字_单字翻译,考虑上下文,使用计算机语言处理工具