自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(106)
  • 资源 (9)
  • 收藏
  • 关注

原创 【Betaflight源码学习】Betaflight 嵌入式操作系统架构解析:与 FreeRTOS 的深度对比

Betaflight飞控系统采用轻量级自研调度机制,与FreeRTOS形成鲜明对比。该系统基于时间片的非抢占式调度,通过scheduler()函数顺序执行任务,确保飞控关键任务获得确定性执行时间。其核心taskDescriptor_t结构体包含任务函数指针、执行频率等参数,所有任务在枚举列表中明确定义。这种高度优化的调度方式为无人机控制提供了低延迟保障,但牺牲了部分系统灵活性。两种架构在任务调度策略、实时性保障等方面存在根本差异,直接影响飞控系统性能表现。

2025-11-23 22:11:25 1445

原创 Linux中新建GitHub仓库并向仓库添加文件操作流程

本文介绍了在Linux系统中创建GitHub仓库及管理代码的完整流程: 创建GitHub远程仓库 登录GitHub新建仓库,设置名称、描述和公开性 建议初始化README文件以便直接克隆 本地环境准备与配置 安装Git并配置用户信息 初始化本地仓库,添加并提交文件 关联并推送代码 将本地仓库与远程仓库关联 使用git push命令推送代码 处理Token认证问题 删除仓库方法 通过仓库设置中的Danger Zone删除 需输入仓库全名确认删除 全文提供了命令行操作指南和可视化流程图,涵盖从创建到删除的全套G

2025-11-18 21:57:21 642

原创 瑞控FPVF405飞控开发板硬件功能整理

瑞控FPVF405飞控开发板采用STM32F405主控,配备BMI270陀螺仪/加速度计、DPS310/BMP280气压计和HMC5883磁力计。支持8路PWM输出、多路UART通信和I2C/SPI接口,内置8MB Flash存储和MAX7456 OSD芯片。硬件设计包含蜂鸣器、LED灯带、电压电流检测等功能,适用于无人机飞控系统开发。开发板提供完整的传感器接口和外设支持,采用30.5mm标准尺寸。

2025-11-17 21:46:02 966

原创 基于RTT调试接口的项目适配性的lib库化实现与工程应用

摘要:本文介绍了基于RTT调试接口的库化实现方法,通过将SEGGER RTT源码编译为静态库(.lib)实现代码复用。关键步骤包括使用Keil MDK创建专用工程、配置输出选项生成库文件,并通过条件编译策略实现调试与发布版本的无缝切换。文中详细展示了包装头文件(DEBUG_RTT.h)的设计,利用预编译宏(USE_RTT_DEBUG)控制调试功能开关,实现分级(ERROR/WARNING/INFO等)、分终端、分颜色的智能调试输出。该方法既保留了调试灵活性,又确保发布版本无额外开销,显著提升了嵌入式调试的工

2025-11-16 23:41:16 1065 1

原创 嵌入式调试利器:SEGGER RTT 常用函数详解、实战技巧(J-Scope工具)与项目用例

摘要 SEGGER RTT是一种高效的嵌入式调试技术,通过内存缓冲区实现双向通信,无需额外硬件接口。其优势包括高速传输、低资源占用和中断安全性。本文详细解析RTT核心API函数,包括缓冲区配置(SEGGER_RTT_ConfigUpBuffer)、数据输出(SEGGER_RTT_WriteString)和输入(SEGGER_RTT_GetKey)等功能,并提供初始化、通道分配和终端设置等实用技巧。通过合理使用多通道策略和高级功能(如时间戳、交互命令),可显著提升调试效率。典型应用包括实时日志输出、传感器数据

2025-11-16 00:25:42 1446

原创 如何在Keil5中在没有硬件支持的情况下使用Keil的模拟器(Simulator) + 调试窗口输出进行调试

摘要:本文详细介绍了在Keil MDK中使用软件仿真器(Simulator)调试STM32F407项目的配置方法。主要内容包括:1)启用仿真器并正确设置芯片型号参数;2)解决访问外设寄存器时的权限错误问题,提供完整的仿真配置脚本;3)逻辑分析仪的信号添加技巧及常见错误解决方案。文章特别针对"access violation"错误给出了三种处理方案,并推荐通过全局变量间接观察引脚状态的可靠方法。这些技巧能在无硬件情况下有效验证代码逻辑,适合开发前期调试使用。

2025-11-11 23:17:00 1850 1

原创 基于STM32F4XX标准库的保姆级FreeRTOS环境快速部署指南

本文详细介绍了基于STM32F4标准库快速部署FreeRTOS环境的完整流程。主要内容包括:1)硬件准备(STM32F407开发板)和软件需求(Keil MDK、标准外设库、FreeRTOS源码);2)基础STM32工程创建步骤;3)FreeRTOS内核源码结构解析及关键文件功能说明;4)详细集成步骤,涵盖源码添加、硬件适配层配置(ARM_CM4F)、内存管理方案选择(heap_4.c)及FreeRTOSConfig.h参数定制。特别针对STM32F4的特性,给出了优先级配置建议(0-4级保留给系统关键中断

2025-11-06 23:01:31 1038

原创 工程调试利器:RTT(Real-Time Transfer)保姆级使用教程

摘要: RTT(Real-Time Transfer)是SEGGER推出的高速嵌入式调试技术,利用调试通道实现MB/s级数据传输,无需占用串口引脚。本教程详解RTT优势、文件结构及集成方法:1)硬件需J-Link调试器和支持RTT的MCU;2)软件需安装V864版J-Link驱动包;3)工程集成时添加SEGGER_RTT核心文件,配置缓冲区大小。RTT支持多通道双向通信,适用于实时日志、性能分析等场景,显著提升调试效率。注意根据工具链选择正确的系统调用文件,并合理优化缓冲区配置。

2025-11-05 14:23:54 1774 1

原创 【Betaflight源码学习】之初始化函数(init.c)

摘要: 本文详细解析了Betaflight飞行控制器的初始化流程,涵盖硬件初始化、配置加载和系统状态设置等关键步骤。代码首先初始化串口和系统全局设置,随后处理任务数据、IO接口和目标特定配置。根据存储介质类型(SD卡、外部闪存或EEPROM),分别执行相应的初始化与故障检测。此外,还涉及调试引脚、LED、外部中断和按钮的初始化,并支持EEPROM配置重置功能。整个过程通过标志位管理初始化状态,确保系统可靠启动,为飞行控制提供坚实基础。

2025-10-24 11:37:57 860 1

原创 【VxWorks 实时操作系统(RTOS)】常用函数汇总

VxWorks 实时操作系统(RTOS)中的核心函数 taskSpawn 和 semMCreate 分别用于任务创建和互斥资源管理。taskSpawn 动态创建并激活新任务,支持优先级调度和多种任务选项,如浮点运算和栈溢出检测。semMCreate 创建互斥信号量,确保多任务间资源的互斥访问,支持优先级继承以防止优先级反转

2025-05-21 21:51:52 1296

原创 计算机存储与数据单位的核心定义及换算逻辑

本文介绍了计算机存储与数据单位的核心定义及换算逻辑,并结合嵌入式系统(如FreeRTOS)的实际应用场景进行解释。核心单位包括Bit、Byte、字和双字,其换算关系因CPU架构而异。例如,32位CPU中1字=4字节,1双字=8字节。在FreeRTOS中,堆栈大小以字为单位,需根据CPU字长换算实际内存。常见误区包括字长混淆和单位缩写混淆。总结中强调了嵌入式开发的核心公式和关键步骤,并提供了速记口诀以帮助记忆。

2025-05-19 21:19:35 580

原创 Keil5和CCS5.5软件使用教程【保姆级】

2024-03-14 06:30:00 1874 3

原创 在单片机中对采集的ADC值进行补偿

使用两个点求线性方程的斜率和截距的方法是线性回归的一种简化形式,也称为最小二乘法。因此,更常见的方法是使用所有可用的数据点进行线性回归分析,而不是仅使用两个点来计算斜率和截距。在这个简化的代码中,我们使用两个已知的点(x1, y1)和(x2, y2)来计算线性方程的斜率和截距,然后使用该线性方程对测量值进行校准补偿。在单片机中,对采集的ADC(模数转换器)进行补偿的方法有很多种,具体取决于你的应用需求和ADC的特性。在进行补偿时,最重要的是要理解你的ADC的特性和限制,以及你的应用的需求。

2024-01-03 07:00:00 2958

原创 C语言——全局变量在多个.c文件中共用

的形式,是告诉编译器我这个变量将在其他外部c文件中定义,我这里只是在外部用它。编译器就不给他分配内存空间,而等到真正遇到变量定义的时候再给他分配内存空间。全局变量可以定义在一个.c文件中,变量存储在静态存储区,变量可以被其他文件中的函数使用,变量的作用范围是。当定义了全局变量的时候,在其他.c文件中使用的时候需要。”的形式,编译器需要给他分配内存单元的;是来自来自外部的外部变量;变量定义和变量声明的区别,

2023-02-03 10:15:19 5054

原创 C语言——读写TXT文件中的(多行多列矩阵型)浮点型数据的两种方式

但是很多时候,我们对于空间的需求上面的两种情况是满足不了的,有的时候我们需要的内存大小要程序运行之后才能知道,或者说有时候数组大小空间不够了,那么数组编译时开辟的内存空间的方式就不可行了,这个时候就需要动态内存开辟了。关于malloc所开辟空间类型:malloc只开辟空间,不进行类型检查,只是在使用的时候进行类型的强转。在使用malloc函数之前我们一定要计算字节数,malloc开辟的是用户所需求的字节数大小的空间。上的,而我们使用的局部变量和函数的形参是在。:数组太大,栈空间不够用导致栈溢出!

2023-02-02 18:47:58 7408

原创 Kalman滤波中状态方程初始化参数设置

这个矩阵是卡尔曼滤波中比较难确定的一个量,一般有两种思路:一是在某些稳定的过程可以假定它是固定的矩阵,通过寻找最优的Q值使滤波器获得更好的性能,这是调整滤波器参数的主要手段,Q一般是对角阵,且对角线上的值很小,便于快速收敛;对于可观测性较强的状态分量,对应的状态初值和均方误差阵设置偏差容许适当大些,它们随着滤波更新将会快速收敛,如果均方误差阵设置太小,则会使收敛速度变慢。:表示状态转移矩阵,是n×n阶方阵,它是算法对状态变量进行预测的依据,状态转移矩阵如果不符合目标模型有可能导致滤波发散。

2023-01-31 06:00:00 5103

原创 低成本MEMS INS系统 + GNSS组合导航序贯滤波MATLAB仿真

对于标准Kalman滤波,其中增益计算式涉及矩阵的求逆运算,当量测维数较高时,计算量很大。序贯滤波(sequential Kalman filter)是一种将高维数量测更新降低为多个低维数量测更新的方法,能有效地降低矩阵的求逆计算量。其中,量测更新过程分为N次的迭代更新,最终使得。

2023-01-12 14:38:03 1148

原创 低成本MEMS INS系统 + GNSS组合导航MATLAB仿真

【代码】低成本MEMS INS系统 + GNSS组合导航MATLAB仿真。

2023-01-12 13:44:08 4302 5

原创 低成本MEMS惯导系统的捷联惯导解算MATLAB仿真

之前将高成本的捷联惯导忽略地球自转、圆锥曲线运动以及划桨运动等化简为可适用低成本的捷联惯导MATLAB程序,但是其中的子程序都是用的严老师的代码,想自己锻炼一下自己的代码能力,所以对低成本的捷联惯导进行重新编写!!

2023-01-12 10:37:22 3744 8

原创 高、低成本MEMS惯导系统姿态、位置、速度更新算法的对比

姿态更新求解方法是,先使用陀螺角增量的多子样采样计算等效旋转矢量,补偿转动不可交换误差,再使用等效旋转矢量计算姿态更新四元数。选取“东–北–天(E–N–U)”地理坐标系作为捷联惯导系统的导航参考坐标系,后面记为n系,则以 系作为参考系的姿态微分方程为。矩阵表示以i系作为参考基准,b系从m-1时刻到m时刻的旋转变化,表示以i系作为参考基准,n系从m-1时刻到m时刻的旋转变化,)进行了两次等间隔采样,角增量分别为。,以及惯导系统在地球表面附近移动。

2023-01-05 15:41:34 3939 1

原创 slambook2(ch2)—— Ubuntu20.04 使用cmake + make自动化编译过程

(比如上次使用make生成了文件a,文件b,文件c,这次使用make命令只需要生成文件a和文件b,并且文件a有所变化。那么这次生成的文件a会覆盖上次的文件a;上次生成的文件b保持不动,这次不需要再费劲生成一遍了;而上次生成的文件c也保持不动,尽管这次不需要文件c)make命令可以让新生成的去覆盖旧的,但是有一些上次生成了这次不需要生成他的文件,就没法删除了。所以才需要make clean一下,删除所有被make创建的文件。因为,如果makefile的内容不会改变时,就不需要经过。

2022-11-25 20:29:07 1027

原创 解决:将Ubuntu系统打包成ios镜像并制作U盘系统

Systemback的作者在2016年停止了开发,因此Ubuntu 18.04和18.10不在支持列表中。系统上安装Systemback的方法。

2022-11-16 18:47:49 5881

原创 解决:terminate called after throwing an instance of ‘cv::Exception‘......Incorrect indentation‘

本来还以为是系统问题,但是重新装完系统搭环境过后发现并不是,白白浪费一晚上时间,这不重要但是把自己的心态搞炸了,对自己产生了深深的怀疑,否定了自己前期的工作,也是自己太想成功了,而且今天运气是差极了迫不得已去签一个不想去的offer,去找书记签字去了4次都不在,自主实验也没有验证,程序也是各种出错电脑也关机不得终止实验,还收到一个非常想去的公司的拒绝,人生呀!太难受了!好在在凌晨两点半迎来转机。。。。

2022-11-15 02:31:10 3113 1

原创 解决:Ubuntu18.04多版本opencv互相切换

查看版本:打开终端,输入。

2022-10-24 22:20:31 3005

原创 Ubuntu 18.04 ———Jetson nano +Intel RealSense D435i + 标定 + 运行VINS-Fusion(2022年)

英伟达官方为Jetson Nano提供了SD卡版本的系统镜像,并且一直在更新和维护,该镜像中包含对应的Ubuntu系统以及配置好的cuda环境和opencv环境,因此只需要下载和安装该镜像即可完成Jetson Nano的大部分环境配置。连接外设(鼠标、键盘、显示器)并启动,这里如果我们要进行屏幕显示的启动,除了连接的HDMI显示器,鼠标和键盘也是必须要连接的,在Jetson Nano 2GB Developer Kit里面有描述。问题:rosdep update错误解决。解决:镜像版本太高,降低版本!

2022-10-19 13:19:51 3575 2

原创 提取.bag文件中的图片数据

【代码】提取.bag文件中的图片数据。

2022-10-07 17:05:09 1195

原创 【一起来学C++】————(12)STL之deque容器

【代码】【一起来学C++】————(12)STL之deque容器。

2022-08-20 21:35:42 188

原创 【一起来学C++】————(11)STL之vector容器容器

迭代器的主要作用就是让算法能够不用关心底层数据结构,其底层实际就是一个指针,或者是对指针进行了封装,比如:vector的迭代器就是原生态指针T*。因此迭代器失效,实际就是。,删完之后pos刚好是end的位置,而end位置是没有元素的,那么pos就失效了。因此删除vector中任意位置上元素时,vs就认为该位置迭代器失效了。erase删除pos位置元素后,pos位置之后的元素会往前搬移,没有导致底层空间的改变,理论上讲迭代器不应该会失效,但是:如果。支持随机访问的迭代器。

2022-08-20 20:46:37 711

原创 【一起来学C++】————(10)STL之string容器

在使用string类时,必须包含。

2022-08-18 22:14:40 549

原创 【一起来学C++】————(9)STL入门

STL(standard template libaray-标准模板库):是C++标准库的重要组成部分,不仅是一个可复用的组件库,而且是一个包罗数据结构与算法的软件框架。STL(Standard Template Library,标准模板库)STL 从广义上分为: 容器(container) 算法(algorithm) 迭代器(iterator)容器和算法之间通过迭代器进行无缝连接。STL 几乎所有的代码都采用了模板类或者模板函数学习目标:vector中存放自定义数据类型,并打印输出。...

2022-08-16 16:16:18 477

原创 【一起来学C++】————(7)多态

多态是C++面向对象三大特性之一,多态是在不同继承关系的类对象,去调用同一函数,产生了不同的行为。比如Student继承了Person。Person对象买票全价,Student对象买票半价。public ://Speak函数就是虚函数 //函数前面加上virtual关键字,变成虚函数, //那么编译器在编译的时候就不能确定函数调用了。cout ...

2022-08-11 11:31:15 330

原创 【一起来学C++】————(6)C++中的继承

继承(inheritance)机制是面向对象程序设计使代码可以复用的最重要的手段,它允许程序员在保持原有类特性的基础上进行扩展,增加功能,这样产生新的类,称派生类。继承呈现了面向对象程序设计的层次结构,体现了由简单到复杂的认知过程。以前我们接触的复用都是函数复用,继承是类设计层次的复用。有些类与类之间存在特殊的关系,例如下图中:我们发现,定义这些类时,下级别的成员除了拥有上一级的共性,还有自己的特性。这个时候我们就可以考虑利用继承的技术,减少重复代码class A :public BA 类称为子类。...

2022-08-11 11:30:44 255

原创 【一起来学C++】————(8)模板

比如:当用double类型使用函数模板时,编译器通过对实参类型的推演,将T确定为double类型,然。在上述代码中,如果T的数据类型传入的是像Person这样的自定义数据类型,也无法正常运行。因此C++为了解决这种问题,提供模板的重载,可以为这些特定的类型提供具体化的模板。,对于模板函数的使用,编译器需要根据传入的实参类型来推演生成对应类型的函数以供。在上述代码中提供的赋值操作,如果传入的a和b是一个数组,就无法实现了。后产生一份专门处理double类型的代码,对于字符类型也是如此。不会发生隐式类型转换。.

2022-08-11 11:30:03 218 1

原创 【一起来学C++】————(5)内存管理(上)

【一起来学C++】————(5)内存管理(上)C/C++内存分布C语言中动态内存管理方式C++内存管理方式new和delete操作自定义类型new和delete的实现原理内置类型自定义类型operator new与operator delete函数:内存泄漏的分类:堆内存泄漏(Heap leak)系统资源泄漏C/C++内存分布我们先来看下面的一段代码和相关问题int globalVar = 1;static int staticGlobalVar = 1;void Test(){ static

2022-08-01 20:00:29 342

原创 【一起来学C++】————(4)类与对象(下)

再谈构造函数初始化列表例如:class Date{public: Date(int year, int month, int day) { _year = year; _month = month; _day = day; }private: int _year; int _month; int _day;};虽然上面的构造函数调用之后,对象中已经有了一个初始值,但是不能将其称作为类对象成员的初始化,构造函数体中的语句只能将其称作为赋初值,而不能称作初始化。因

2022-07-31 22:08:09 461

原创 【一起来学C++】————(3)类与对象(中)

【一起来学C++】————(3)类与对象(中)1. 类的6个默认成员函数2. 构造函数概念特性3. 析构函数概念特性4. 拷贝构造函数5. 赋值操作符重载6. 默认拷贝构造与赋值运算符重载的问题7. const成员函数8. 取地址及const取地址操作符重载1. 类的6个默认成员函数如果一个类中什么成员都没有,简称为空类。空类中什么都没有吗?并不是的,任何一个类在我们不写的情况下,都会自动生成下面6个默认成员函数。class Date {};2. 构造函数概念构造函数是一个特殊的成员函数,1

2022-07-29 19:49:47 315

原创 【一起来学C++】————(2)类与对象(上)

这里写目录标题一、面向过程和面向对象初步认识二、类的引入三、类的定义1、类的两种定义方式方式一方式二四、类的访问限定符及封装访问限定符封装五、类的作用域六、类的实例化七、类对象模型计算类对象的大小结构体内存对齐规则八、this指针this指针的特性一、面向过程和面向对象初步认识C语言是面向过程的,关注的是过程,分析出求解问题的步骤,通过函数调用逐步解决问题。C++是基于面向对象的,关注的是对象,将一件事情拆分成不同的对象,靠对象之间的交互完成。二、类的引入C语言中,结构体中只能定义变量,在C++中

2022-07-27 20:03:02 415

原创 【一起来用C++】————(1)类的练习案例(多文件编写)

设计一个圆形类(Circle),和一个点类(Point),计算点和圆的关系。分别用全局函数和成员函数判断两个立方体是否相等。设计立方体类(Cube)求出立方体的面积和体积。

2022-07-27 19:01:10 532

原创 【一起来学C++】————(1)入门

什么是C++C语言是结构化和模块化的语言,适合处理较小规模的程序。对于复杂的问题,规模较大的程序,需要高度的抽象和建模时,C语言则不合适。为了解决软件危机, 20世纪80年代, 计算机界提出了OOP(objectoriented programming:面向对象)思想,支持面向对象的程序设计语言应运而生。1982年,Bjarne Stroustrup博士在C语言的基础上引入并扩充了面向对象的概念,发明了一种新的程序语言。为了表达该语言与C语言的渊源关系,命名为C++。因此:C++是基于C语言而产.

2022-07-27 06:00:00 265 1

原创 slambook2(ch7)—— orb_cv.cpp代码详解(ORB特征提取与匹配)

2. 图片输入确保图像个数为2: imread函数imread函数原型非常简单,可以总结为三点3. 初始化 vector Ptr detector = ORB::create();4. 第一步:检测 Oriented FAST 角点位置使用detect方法,将其存入Keypoints变量中 时间工具chrono举例:通过 clock 类别所提供的 now() 这个函数,可以快速地取得现在的时间;而两者相减的话,则会产生一个型别为 durat

2022-06-03 06:00:00 2238 1

工程模板-新建RTT工程-STM32F405标准库-RTT version 864.zip

关联博文: 嵌入式调试利器:SEGGER RTT 常用函数详解、实战技巧(J-Scope工具)与项目用例 https://blog.csdn.net/qq_38364548/article/details/154848476 基于RTT调试接口的项目适配性的lib库化实现与工程应用 https://blog.csdn.net/qq_38364548/article/details/154918801

2025-11-16

SEGGER-RTT-V864支持浮点数输出

SEGGER_RTT_V864支持浮点数输出

2025-11-13

STM32F103标准库移植Freertos工程文件

STM32F103标准库移植Freertos工程文件

2025-11-07

基于STM32F407标准库移植Freertos例程文件

基于STM32F407标准库移植Freertos例程文件

2025-11-07

嵌入式开发调试:手把手教你从零开始使用RTT-可直接使用的RTT工程

工程模板-新建RTT工程-STM32F407标准库-RTT version 6.51e

2025-11-07

基于STM32F4XX标准库的保姆级FreeRTOS环境快速部署指南

准备工作 硬件需求: STM32F4XX开发板(本文以STM32F407为例)。 软件需求: 开发环境:Keil MDK。 STM32标准外设库(版本1.8.0或更高)。 FreeRTOS源码(版本10.4.3或更高)。 3. 创建基础STM32F4标准库工程 步骤详解: 在Keil MDK中新建工程,选择STM32F4XX芯片型号。 添加标准外设库文件:启动文件、系统初始化代码、外设驱动。 配置工程选项:设置编译器优化、链接脚本。

2025-11-06

嵌入式开发调试:手把手教你从零开始使用RTT

告别繁琐的串口线!RTT提供了一种高速、非侵入式的调试信息传输方式,极大提升嵌入式开发调试效率。本教程将手把手教你从零开始使用RTT

2025-11-05

keil&ccs软件使用手册

keil&ccs软件使用手册

2024-03-13

ORB-SLAM3 v0.4-beta

ORB-SLAM3 v0.4-beta

2023-04-20

简化版捷联惯导+MATLAB程序(仿照西工大严老师编写)

具体描述请看我的博客:低成本MEMS惯导系统的捷联惯导解算MATLAB仿真

2023-01-12

简化版捷联惯导+ C语言编写(仿照西工大严老师MATLAB程序编写)

低成本MEMS惯导系统姿态、位置、速度更新算法的对比:在低成本MEMS惯导系统中,陀螺仪精度(零偏重复性)为0.1(°)/s量级,加速度计精度为5 mg量级。由于陀螺仪精度太低,无法敏感到地球自转信息,因而没有必要采用完整而复杂的捷联惯导更新算法,可对其作大幅简化。 具体描述请看我的博客:低成本MEMS惯导系统的捷联惯导解算MATLAB仿真以及自己修改的简化版MATLAB程序!!! https://download.csdn.net/download/qq_38364548/87380265 https://download.csdn.net/download/qq_38364548/87364983

2023-01-31

kalibr fix/18.04

现在kalibr的github上貌似没有fix/18.04了,现在上传提供大家使用

2023-02-09

低成本MEMS INS系统 + GNSS组合导航序贯滤波-C语言程序(采用malloc动态分配内存空间)

相比于上一个程序将文件提取出的数据导入到结构体数组中,本程序改为malloc动态分配内存空间,具体操作过程请看我的博客: https://blog.csdn.net/qq_38364548/article/details/128851020 本程序是仿照仿照严老师的MATLAB程序编写的低成本组合导航系统,具体的描述和MATLAB程序请看我的博客!! MATLAB程序:https://download.csdn.net/download/qq_38364548/87380141 具体描述:https://blog.csdn.net/qq_38364548/article/details/128655225

2023-02-02

低成本MEMS INS系统 + GNSS组合导航序贯滤波-C语言程序

本程序是仿照仿照严老师的MATLAB程序编写的低成本组合导航系统,具体的描述和MATLAB程序请看我的博客!! MATLAB程序:https://download.csdn.net/download/qq_38364548/87380141 具体描述:https://blog.csdn.net/qq_38364548/article/details/128655225 对于标准Kalman滤波,其中增益计算式(5.3-29c)涉及矩阵的求逆运算,当量测维数较高时,计算量很大。序贯滤波(sequential Kalman filter)是一种将高维数量测更新降低为多个低维数量测更新的方法,能有效地降低矩阵的求逆计算量。 利用序贯滤波,在滤波增益计算中的矩阵求逆问题将转化为标量的倒数运算,有利于减少滤波计算量和增强数值计算的稳定性。 如果量测方差阵Rk不是对角矩阵,通过三角变换的变换方法,可实现对角化处理,再利用序贯滤波。特别地,如果量测噪声方差阵Rk是常值阵,则只需在滤波初始化时作一次三角分解即可。

2023-02-02

序贯滤波(sequential Kalman filter)+ MATLAB程序(简化版sins与gnss融合)

对于标准Kalman滤波,其中增益计算式(5.3-29c)涉及矩阵的求逆运算,当量测维数较高时,计算量很大。序贯滤波(sequential Kalman filter)是一种将高维数量测更新降低为多个低维数量测更新的方法,能有效地降低矩阵的求逆计算量。 利用序贯滤波,在滤波增益计算中的矩阵求逆问题将转化为标量的倒数运算,有利于减少滤波计算量和增强数值计算的稳定性。 如果量测方差阵Rk不是对角矩阵,通过三角变换的变换方法,可实现对角化处理,再利用序贯滤波。特别地,如果量测噪声方差阵Rk是常值阵,则只需在滤波初始化时作一次三角分解即可。

2023-01-12

sins + gnss 组合导航算法Matlab仿真

1、卫星信号非常微弱,极易受到干扰,但卫星导航提供的位置误差不随时间累积,卫导系统与惯导系统之间具有很好的互补性,通过惯性/卫星组合导航可以充分发挥两种系统的优点。 2、此算法属于低精度组合导航算法,适合初学者用来学习知识。 3、 算法未考虑空间杆臂误差和时间不同步误差!!!! 4、 算法采用松耦合的结构,GPS与INS均独立工作并各自提供导航参数的结果。为了提高导航精度,通常将GPS的位置与速度输入到滤波器中,同时,INS的位置、速度、姿态也作为滤波器的输入,滤波器通过比较二者的差值,建立误差模型以估计INS的误差。利用这些误差对惯导结果进行修正,得到速度、位置、姿态的组合导航结果。 松耦合的组合结构易于实现,并且比较稳定。当它为开环时,可以提供三个独立的导航结果(原始INS、原始GPS和组合结果),当它为闭环时可以提供两个独立的导航结果(原始GPS、组合结果)。 一个主要的缺点,当卫星数量低于最低数量时,GPS会暂时失效。并且GPS KF的输出是时间相关的,那么KF对于测量噪声不相关的假设就会受到影响,从而影响系统性能。

2023-01-06

低成本MEMS惯导系统姿态、位置、速度更新算法的对比

低成本MEMS惯导系统姿态、位置、速度更新算法的对比:在低成本MEMS惯导系统中,陀螺仪精度(零偏重复性)为0.1(°)/s量级,加速度计精度为5 mg量级。由于陀螺仪精度太低,无法敏感到地球自转信息,因而没有必要采用如4.1节所述的完整而复杂的捷联惯导更新算法,可对其作大幅简化。

2023-01-05

rs_imu_stereo.launch

此文件用于双目视觉与IMU标定后的结果对VINS-Fusion进行运行 解决博客可能的跑飞问题: roslaunch realsense2_camera rs_imu_stereo.launch roslaunch vins vins_rviz.launch rosrun vins vins_node src/VINS-Fusion/config/realsense_d435i/realsense_stereo_imu_config_my.yaml

2022-05-27

rs_imu_stereo.launch

此文件用于双目视觉与IMU标定后的结果对VINS-Fusion进行运行

2022-05-27

suitesparse-4.2.1.tar.gz文件

解决安装kalibr过程中出现的问题

2022-05-24

Ubuntu 18.04 ———(Intel RealSense D435i)运行VINS-Mono

配置文件: rs_camera.launch realsense_color_config.yaml

2022-05-17

Stm32h743+FDCAN.zip

Stm32h743+FDCAN1+FDCAN2

2021-07-08

C语言带登录猜数字小游戏

自己写的C语言带登录猜数字小游戏;首先开始游戏之前先登录,共有3次机会;3次登录错误后,必须等10S后才能登录,以后每登录失败1次就会有10S延时。有任何问题,我们都可以讨论。-------自学C语言

2020-11-24

fmu_sram_uart1_test.rar

sram读写完成+串口测试

2021-07-08

PWM电机正反转.zip

PWM电机正反转带程序和Proteus仿真

2021-01-22

126(读写完成).zip

基于正点原子开发板

2021-03-12

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除