光纤陀螺仪 武汉大学定位组官网

VG910 & VG103PT


  • 设备说明

VG910和VG103PT是高精度光纤陀螺仪,是14年从陕西长城测控买的。VG910+采集板在两万八左右,VG103PT+采集板价格在两万四左右,采集板五千左右。目前队里有两套VG910和一套VG103PT,使用的时候务必小心。

需要掌握的知识


  • 光纤陀螺仪基本原理及构造:参考官网和pcb图

  • 陀螺仪的基本参数
  • 陀螺仪通信接口:VG910是usart通信,VG103PT通过spi采集数据。了解下两种通信原理,学会用编程语言写通信接口

  • 陀螺仪的安装位置:陀螺仪必须和车绝缘,尽可能安装在车中心,防止机构可能对它造成的伤害

  • 常见的滤波器

    卡尔曼滤波(一阶卡尔曼滤波、二阶扩展卡尔曼滤波)、带通滤波、二阶滤波等

  • 陀螺仪标定的原理

    光纤陀螺仪是基于Sagnac效应检测角速度的装置 。陀螺仪将角速度转换为陀螺仪电压,再经过AD、采集转换输出信号量。

    graph LR
    A[角速度] --> |Scale Factor| C[陀螺仪电压值]
        C --> |AD差分转换| E[AD值]
        E --> |Scale| A
    

    可以看出,陀螺仪直接输出的是AD值,我们需要对AD值进行转换才能得到当前的角速度,进而积分得到角度。

    因此,我们定义积分系数

    \[Scale = \frac{AD}{\omega}\]

    ​ 由于积分系数与角速度相关,需要在不同转速下测定积分系数与角速度的关系。我们用二次曲线拟合不同转速下测定积分系数与角速度的数据,得到

    \[Scale = A*\omega^2 + B*\omega + C\]

    ​ 单片机运算能力不足,不能实时根据角速度计算积分系数,故我们引入filted_rate变量,对表达式进行修改

    \[filted\_rate = AD*Sample\_Time\]

    ​ 然后用二次曲线拟合filted_rate和Scale的关系,即

    \[Scale = a*filted\_rate^2 + b*filted\_rate + c\]

    ​ 采取牺牲空间的查表法,得到filted_rate从1~1500变化时对应的积分系数值,于是

    \[\theta = \sum filted\_rate/ Scale(filted\_rate)\]
  • UCOS系统了解

代码使用说明

在使用陀螺仪之前,必须看懂代码,知道Angle_Task从采集AD值到转换的一系列流程,这里涉及到UCOS的调度,需要大家提前掌握。

以下是一些需要重点注意的变量。

  • 采样周期 Sample Time : ADC完成数字量转换并读取的时间,计算方法参考

  • 阈值Threshold:在采样时间内陀螺仪能检测到的最大AD值,即陀螺仪在采样时间内检测到的最小角速度对应的AD值
  • 零点Zero Point:陀螺仪静止时输出的AD值
  • 积分系数Scale:转动角速度与当前AD值的比例,且 \(\omega=AD/Scale\)

  • 中间变量filted_rate: \(filted\_rate = AD*Sample\_Time\)

同时,我们也需要关注几个重要的步骤,也就是ANGLE_TASK任务和相应的外设接口

  • 陀螺仪零点的采集方法
  • 陀螺仪零点的采集时间
  • 陀螺仪数据的采集接口
  • 陀螺仪的数据经历了哪些滤波