目前在做GD32替代STM32作为主控的各种飞行器研究,欢迎感兴趣的朋友联系我。

六轴传感器(ICM42688)驱动及姿态估计

前言:打算给小巡洋舰搞点花活,顺便做个飞控,记录一下其中最为关键的惯性导航(IMU)。本次项目中使用的是TDK出的最新MEMS传感器以提高项目的生命周期,因此本文将先简单介绍ICM42688这个片子,接着探讨SPI驱动方法,最后记录六轴MEMS传感器的工作原理。

ICM42688简介

ICM42688芯片

这款6轴MEMS运动跟踪传感器内有一个三轴陀螺仪和一个三轴加速度计,通信方面支持I3C接口、常规的IIC、SPI通信和2kB的FIFO,并且按照TDK的老传统这个片子里也是带数字处理单元的。这个片子目前算是消费电子里的顶流了,参数如下:

  • 陀螺仪噪声密度:$0.0028°/s/\sqrt{Hz}$
  • 加速度计噪声密度:$70\mu g/\sqrt{Hz}$
  • 8档陀螺仪量程:$\pm15.6 \sim 2000dps$
  • 4档加速度计量程:2/4/8/16g
  • 前端ADC精度:16bits
  • SPI通信速率达24MHz
  • 最后,温漂参数也是非常不错:
    • 陀螺仪SSF-Temp为$\pm 0.005 % /° C$,ZRO-Temp为$\pm 0.005 °/s/° C$
    • 加速度计SSF-Temp为$\pm 0.005 % /°C$,ZGO-Temp为$\pm 0.15 mg/° C$

至于内置的APEX数字运动处理器也是非常优秀了,可以说是针对消费电子设计的,支持检测拿起、记录步数、倾斜测试等。这些功能在机器人应用上虽然犹如鸡肋,但是应该可以做一些花活。

SPI总线

阅读更多...

读取RC遥控信号(PWM和PPM)

前言:受益于毕业后的狂欢🐟博客鸽了半个月。也不算是完全鸽掉,这段时间搞了一艘RC船,通信部分是基础中的基础,因此记录一下自己写的STM32读取接收机信号的成果。

RC接收机

图片中就是市面上最常见的“富士”系列接收机,可以输出数个通道的数据(对应于RC遥控器上的各个控制通道),而这些远程传输来的数据以PWM信号的形式供给舵机或者自驾仪,比如这款可以输出10个通道PWM信号。同时这款接收机还支持输出PPM信号(和1通道共用引脚),PPM信号如下图所示,只要使用1个引脚就能传输多个通道的数据,相比PWM来说节省了大量的走线和空间,这个信号也是笔者更偏爱的接收方式。

PPMandPWM

阅读更多...

YOLO

本来笔者已决定退CV坑了,但最近要研究生复试了,还是回顾下去年研究的YOLO顺便简单记录一下备查。

YOLO长话短说

个人感觉有深度学习基础的情况下,去学习一个YOLO的网络还是相对容易的,但笔者认为YOLO的精髓不在于网络结构而在于其One-Stage的各种思想。下图是YOLO3的网络结构,里面的小积木打开来看无非是卷积层(Conv)、正则化(BN:Batch Normalization)、激活层(Leaky Relu)以及由这3个家伙一起(DBL)构成的残差块(Res Unit)。

YOLO3

笔者在这里直接讨论YOLO3,略过了YOLO1、2和忽视更新的4、5的原因是:这是YOLO系列发展过程中的一个重要节点!

从理解算法设计思想的角度来看,学3就够了

  • YOLO1发布时,最大的贡献是做了Bounding Box的思想(下面聊),至于网络结构就是最最最简单的全卷积网络,输出一个尺度的特征图;
  • YOLO2个人认为没啥大突破,就是调卷积结构和训练技巧(当然不可否认这些工作是很重要且必要的)
  • YOLO3则是划时代的发布,正如我们观察上面框图所见,YOLO3的输出有3个不同尺寸的特征图($y_1,y_2,y_3$),每个特征图中又有针对尺寸分布设计的Anchor,直接解决了物体的多尺度问题(远近、大小);其次,用了预训练的Darknet-53做骨干网,并且从尾巴往前分别抽3个特征图,用于相应尺度的进一步识别;还有一个重要的思想——信息共享,也就是大尺寸识别网络的中间结果会传递给小一级尺寸的网络;
  • YOLO4和5就没有太多突破性的思想了,和2差不多都是网络优化和训练技巧

好,如果读者是初学者的话,想必看不懂上面这些天书在讲什么(上面这段准备面试啥的应该够了),笔者将在下文中详细记录自己学习过程中的对各个重要拗口概念的理解。

阅读更多...
  • Copyrights © 2022-2023 RY.J
  • Visitors: | Views:

请我喝杯咖啡吧~

支付宝
微信