Ardupilot EKF3核心算法《EKF3中传感器使用的环形缓冲区》

目录

文章目录

  • 目录
  • 摘要
  • 1.环形缓冲区原理
  • 2.环形缓冲区代码
  • 3.环形缓冲区代码分析
  • 4. IMU环形缓冲区代码分析


摘要


本节主要记录Ardupilot EKF3核心算法《EKF3中传感器使用的环形缓冲区》实现原理及代码!!!我们的EKF3环形缓冲区数据读取有数据更新限制,存入和读取的数据时间间隔不能超过100ms,否则EKF3从中读取数据是无效的。


1.环形缓冲区原理


在通信程序中,经常使用环形缓冲区作为数据结构来存放通信中发送和接收的数据。环形缓冲区是一个先进先出的循环缓冲区,可以向通信程序提供对缓冲区的互斥访问。

环形缓冲区通常有一个读指针和一个写指针。读指针指向环形缓冲区中可读的数据,写指针指向环形缓冲区中可写的缓冲区。通过移动读指针和写指针就可以实现缓冲区的数据读取和写入。在通常情况下,环形缓冲区的读用户仅仅会影响读指针,而写用户仅仅会影响写指针。如果仅仅有一个读用户和一个写用户,那么不需要添加互斥保护机制就可以保证数据的正确性。如果有多个读写用户访问环形缓冲区,那么必须添加互斥保护机制来确保多个用户互斥访问环形缓冲区。
图1、图2和图3是一个环形缓冲区的运行示意图。图1是环形缓冲区的初始状态

你可能感兴趣的:(ardupilot,EKF3核心算法,算法,java,网络)