自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

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

2024-03-14 06:30:00 178

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

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

2024-01-03 07:00:00 624

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

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

2023-02-03 10:15:19 3845 1

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

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

2023-02-02 18:47:58 5201

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

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

2023-01-31 06:00:00 2289

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

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

2023-01-12 14:38:03 766

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

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

2023-01-12 13:44:08 2810 2

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

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

2023-01-12 10:37:22 2471 6

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

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

2023-01-05 15:41:34 2010

原创 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 838

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

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

2022-11-16 18:47:49 4487

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

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

2022-11-15 02:31:10 1983

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

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

2022-10-24 22:20:31 2757

原创 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 2325 1

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

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

2022-10-07 17:05:09 750

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

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

2022-08-20 21:35:42 115

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

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

2022-08-20 20:46:37 466

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

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

2022-08-18 22:14:40 394

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

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

2022-08-16 16:16:18 244

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

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

2022-08-11 11:31:15 147

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

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

2022-08-11 11:30:44 153

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

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

2022-08-11 11:30:03 89 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 276

原创 【一起来学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 389

原创 【一起来学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 227

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

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

2022-07-27 20:03:02 352

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

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

2022-07-27 19:01:10 390

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

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

2022-07-27 06:00:00 165 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 1724 1

原创 解决:旧电脑装Ubuntu系统

https://www.ventoy.net/cn/download.html下载到可以使用的电脑并进行安装,制作系统U盘。https://ubuntu.com/download/alternative-downloads将下载的系统的镜像放到制作的系统的U盘中。

2022-06-01 18:28:26 2213 1

原创 Ubuntu 18.04 ———(Intel RealSense D435i)标定后结果用于VINS-Fusion

相机系统校准(camchain.yaml)此文件存储相机固有和外在参数的校准,以及IMU相对于相机的空间和时间校准参数。每个摄像机都有以下参数:camera_model相机投影类型(针孔/全向)包含给定投影类型的固有参数的内联向量。元素如下: 针孔:[fu fv pu pv]omni: [xi fu fv pu pv]ds: [xi alpha fu fv pu pv]eucm: [alpha beta fu fv pu pv]有关详细信息,请参阅支持的模型distortion_mo

2022-05-28 06:00:00 3450 12

原创 Ubuntu 18.04 ———(Intel RealSense D435i)安装kalibr + 双目视觉与IMU标定(2022年)

下载编译code_utils创建ros工作空间,用于code_utils以及后面的imu_utils,工作空间名和路径可以自己更改,code_utils和imu_utils都是imu标定需要用到的,用于标定imu噪声密度以及随机游走系数mkdir -p ~/imu_catkin_ws/srccd ~/imu_catkin_ws/srccatkin_init_workspacecd ..catkin_makesource ~/imu_catkin_ws/devel/setup.bash下载编

2022-05-25 00:00:00 3632 17

原创 Leetcode刷题 ——— (4)字符串中的第一个唯一字符

文章目录💎一、题目🏆1.题目描述🏆2.原题链接💎二、解题报告🏆1.思路分析🏆2.代码详解💎一、题目🏆1.题目描述字符串中的第一个唯一字符给定一个字符串 s ,找到 它的第一个不重复的字符,并返回它的索引 。如果不存在,则返回 -1 。示例 1:输入: s = “leetcode” 输出: 0示例 2:输入: s = “loveleetcode” 输出: 2示例 3:输入: s = “aabb” 输出: -1提示:1 <= s.length <= 105 s 只包含小.

2022-05-24 17:06:25 71

原创 Leetcode刷题 ——— (3)字符串相加

文章目录💎一、题目🏆1.题目描述🏆2.原题链接💎二、解题报告🏆1.思路分析🏆2.代码详解🏆3.按步骤分析💎一、题目🏆1.题目描述给定两个字符串形式的非负整数 num1 和num2 ,计算它们的和并同样以字符串形式返回。你不能使用任何內建的用于处理大整数的库(比如 BigInteger), 也不能直接将输入的字符串转换为整数形式。示例 1:输入:num1 = “11”, num2 = “123” 输出:“134”示例 2:输入:num1 = “456”, num2 = “77” 输出:

2022-05-23 01:00:00 71

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

Intel RealSense D435i一、准备工作二、修改参数rs_camera.launchrealsense_color_config.yaml一、准备工作1、Intel Realsense D435i、Ubuntu 18.042、已经安装好Realsense驱动3、已经安装好VINS-Mono并且能运行数据集二、修改参数rs_camera.launch修改部分参数【rs_camera.launch】;第一处,修改unite_imu_method如下,这里是让IMU的角速度和加速

2022-05-18 06:00:00 1745

原创 Ubuntu 18.04 ———(Intel RealSense D435i)安装相机的驱动librealsense + realsense-ros

Intel (英特尔) RealSense D435i安装测试librealsense SDK 2.0librealsense SDK相当于相机的驱动,SR300和ZR300的支持驱动是librealsense SDK 1.0,而D435i是librealsense SDK 2.0——————官方安装教程Intel® RealSense™ SDK 2.0注册公匙sudo apt-key adv --keyserver keys.gnupg.net --recv-key C8B3A55A6F3EFCD

2022-05-17 05:00:00 8420 5

原创 Leetcode刷题 ——— (2)把字符串转换成整数

把字符串转换成整数💎一、题目🏆1.题目描述🏆2.原题链接💎二、解题报告🏆1.思路分析🏆2.代码详解🏆3.按步骤分析💎一、题目🏆1.题目描述将一个字符串转换成一个整数,要求不能使用字符串转换整数的库函数。 数值为 0 或者字符串不是一个合法的数值则返回 0数据范围:字符串长度满足0≤n≤100进阶:空间复杂度 O(1) ,时间复杂度 O(n)注意:①字符串中可能出现任意符号,出现除 +/- 以外符号时直接输出 0②字符串中可能出现 +/- 且仅可能出现在字符串首位。输入描述:

2022-05-12 06:00:00 80

原创 Leetcode刷题 ——— (1)仅仅反转字母

仅仅反转字母💎一、题目🏆1.题目描述🏆2.原题链接💎二、解题报告🏆1.思路分析🏆2.代码详解🏆3.按步骤分析💎一、题目🏆1.题目描述给你一个字符串 s ,根据下述规则反转字符串:所有非英文字母保留在原有位置。 所有英文字母(小写或大写)位置反转。 返回反转后的 s 。示例 1:输入:s = “ab-cd”输出:“dc-ba”示例 2:输入:s = “a-bC-dEf-ghIj”输出:“j-Ih-gfE-dCba”示例 3:输入:s = “Test1ng-Leet=code-Q!”

2022-05-11 06:00:00 198

原创 C++Primer第五版 ——— (ch3)课后习题参考答案

C++Primer第五版 ——— (ch3)课后习题参考答案练习 3.1练习 3.2练习 3.3练习 3.4练习 3.5练习 3.6练习 3.7练习3.8练习 3.9练习 3.10练习 3.11练习 3.1使用恰当的 using 声明重做 1.4.1节(第 11 页)和 2.6.2节(第 67 页)的练习。using namespace std ;(将标准库声明)-------前面已使用了,这里不再重复。练习 3.2编写一段程序从标准输入中一次读入一整行,然后修改该程序使其一次读入一个词。

2022-05-03 00:00:00 1434

原创 C++Primer第五版 ——— (ch2)课后习题参考答案

这里写目录标题练习 2.1练习 2.2练习 2.3练习2.5练习2.6练习2.72.8 练习练习 2.9练习 2.10练习 2.11练习 2.12练习 2.13练习 2.14练习 2.15练习 2.16练习 2.17练习 2.18练习 2.19练习 2.20练习 2.21练习 2.22练习 2.23练习 2.24练习 2.25练习 2.26练习2.27练习 2.28练习 2.29练习 2.1类型 int、long、long long 和 short 的区别是什么?无符号类型和带符号类型的区别是什么?f

2022-04-30 06:00:00 2373

keil&ccs软件使用手册

keil&ccs软件使用手册

2024-03-13

ORB-SLAM3 v0.4-beta

ORB-SLAM3 v0.4-beta

2023-04-20

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

简化版捷联惯导+ 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

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

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

2023-01-12

序贯滤波(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进行运行

2022-05-27

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

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

fmu_sram_uart1_test.rar

sram读写完成+串口测试

2021-07-08

Stm32h743+FDCAN.zip

Stm32h743+FDCAN1+FDCAN2

2021-07-08

126(读写完成).zip

基于正点原子开发板

2021-03-12

PWM电机正反转.zip

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

2021-01-22

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

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

2020-11-24

空空如也

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

TA关注的人

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