【空心杯四旋翼TinyLeaf】传感器入门

       传感器是飞行器的“眼睛耳朵”,有了传感器,才可以根据控制律对被控对象进行闭环控制。各种各样的传感器,满足了飞行器各式各样的控制需求。


目录

1 姿态传感器

加速度计

陀螺仪

磁力计

2 距离传感器

超声波测距传感器

ToF激光测距传感器

红外测距传感器

3 气压计

4 空间定位传感器(GPS/北斗/RTK/UWB)

5 光流传感器

6 视觉传感器

7 激光雷达


 笔者用过传感器有限,使用过的传感器会详细一些,没有使用过或不太了解的先占坑,有机会用到了正在详细叙述。

1 姿态传感器

姿态传感器是飞行器姿态控制的核心,姿态不能收敛,后续的一切都无从谈起。姿态传感器是一类传感器的统称,没有什么传感器是会直接告诉你姿态的,姿态必然是通过一系列运算得到的(不包括自带姿态解算功能的芯片或带有协处理单片机的模块)。姿态传感器主要包括加速度计,陀螺仪,磁力计。根据这些传感器的数据,通过一定的解算,就可以得到姿态角,目前较为广泛使用的算法是四元数变换。

  • 加速度计

测量传感器所受加速度在XYZ三轴上的分量。在不受外力的情况下,三轴分量的矢量和就是重力。因此在静止的情况下,可以通过加速度计的读数估计出传感器目前相对地面的位置。

  • 陀螺仪

测量传感器在XYZ三轴轴向的旋转角速度,这类传感器是动态控制的关键,因为传感器在发生转动的时候才会有非零的读数,四旋翼飞行器的姿态控制在一般要求下要求俯仰和横滚角角速度为0,就是通过陀螺仪实现的。

  • 磁力计

测量空间地磁场在XYZ三轴的分量,磁力计对于飞行器的航向控制的抗漂移非常关键,陀螺仪和加速度计的数据融合,陀螺仪负责积分得到转过角度,加速度计通过重力分量纠偏,抑制数据漂移,可以较好的估计出俯仰和横滚的角度,而航向角所在平面与大地平行,加速度计无法参与纠偏。这时候就需要磁力计提供的地磁场方向来观测航向,从而抑制航向的漂移。

笔者用过的传感器有MPU6050(一款六轴姿态传感器,模块很便宜,实质是加速度计+陀螺仪)、MPU9250(一款九轴姿态传感器,实质是加速度计+陀螺仪+磁力计),HMC5983(一款磁力计,已经停产,比较贵。但是稳定且好用)。

2 距离传感器

距离传感器测量反射面与传感器之间的距离,在飞行器控制中主要用来避障和定高。根据原理可以分为以下几类:

  • 超声波测距传感器

超声波传感器通过发送指定频率超声波,根据反射回波与发射的间隔时间,根据超声波传播的速度计算传感器与反射面的距离,这类传感器价格差异大,测量距离一般在3cm-5m之间,精度在0.5cm左右。此类传感器要求反射面必须足够大,且需要光滑。

  • ToF激光测距传感器

通过发射激光,根据光反射回传感器的时间计算距离,精度较高,一般可达到毫米级。要求反射面较大,且具备反射光的条件(光滑,非透明)。距离在10cm~10m量级。笔者使用的型号有VL53L0X与VL53L1X。

  • 红外测距传感器

实际为光电对管,其中一只发射红外光,另一只接受发射的红外光强度,当传感器与反射面较近时才可以接受到较强得到反射,因而不能测量精确的距离,一般用作避障的传感器。

3 气压计

气压随着海拔高度变小,通过测量气压就可以估算出飞行器当前的高度,气压本身随距离变化较小(在厘米级尺度上),因此受噪声扰动较为明显。目前常见的做法是在气压计上盖一块海绵充当“硬件低通滤波器”。这类传感器可以用来做飞行器的定高。

4 空间定位传感器(GPS/北斗/RTK/UWB)

这类传感器由于其价格门槛,笔者暂时还没有接触到。GPS之类的传感器用的还是比较多的,值得注意的是定位的稳定性与连接到的卫星数量相关,一般在室外使用较多,因为在室内往往搜星的数量较少。而UWB之类的传感器则不受此限制,可以用做室内的定位。RTK的精度可以达到厘米级,UWB的精度大约在10cm左右,目前主要的问题还是比较贵,和RTK一样,精度可以通过堆基站数量的方法解决(同时意味着采样率的下降和价格的上升)。

5 光流传感器

光流传感器的原理和光电鼠标类似,不过特殊的透镜使得其可以在较远的距离上工作,其主要测量参数为传感器视界内画面的移动速度。因此可以用来做飞行器的定点,其局限主要来自光流算法遵循的亮度平滑假设,此外还有孔径问题。所以要求光流传感器指向的平面要有一定的纹理,且明暗变化尽可能缓慢。这些局限的距离描述和原因可以参考我的另一篇博文:光流法的过去,现在和发展趋势

6 视觉传感器

视觉传感器能做的非常多,视觉传感器之所以如此出众,与其庞大的数据量有关。在机器学习的加持下,衍生出许许多多的功能,诸如人物追踪,视觉导航等,目前有一款开源的嵌入式图像处理模块OpenMV做的不错,可以通过MicroPython做一些简单的图像处理功能。而且其生态做的不错,IDE带有大量的例程可供开发。笔者也参考其开源的原理图设计过一款轻量级的图像传感器,之后如果能稳定运行,笔者会开一篇教程介绍。

7 激光雷达

激光雷达很贵,其通过高速旋转的激光测距阵列获得一个圆柱形视角内的距离信息,笔者认为,激光雷达作为飞行器的传感器是一种赤裸裸的土豪行为(无贬义),目前国外的几个团队(瑞士苏黎世大学,明尼苏达大学MARS实验室)做的很好,主要是通过SLAM(同步定位与地图构建)技术做自动导航。不得不承认这是一项很有前景的技术。


       笔者能力有限,错漏之处在所难免,如有错误,可在下方评论指出,也可邮箱交流:[email protected]

码字不易,给个赞可好?

发布了51 篇原创文章 · 获赞 270 · 访问量 6万+

猜你喜欢

转载自blog.csdn.net/ReadAir/article/details/105171416