自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

linzs.online

这是一个记录一些学习路上收获的博客

  • 博客(76)
  • 资源 (7)
  • 收藏
  • 关注

原创 Ceres的自动求导实现原理剖析

最近在详细思考Ceres优化中的一些实现细节,发现这个自动求导挺巧妙的,摸索了解里面具体的实现过程,这里写下一些心得,以便日后复习!

2023-02-20 22:17:47 1384 6

原创 Protobuf报错CHECK failed: GeneratedDatabase()->Add(encoded_file_descriptor, size):

Protobuf全称,是Google研发的一种跨语言、跨平台的序列化结构的数据格式,是一个灵活的、高效的用于序列化数据的协议。最近在调用它来解析onnx模型的时候遇到了一些折磨了很久的坑,记录一下。

2023-02-04 15:41:19 2668

原创 GroundTrue和里程计输出的位姿的参考坐标系不一致的情况

最近遇到一个数据集的ground true的参考坐标和vSLAM输出的位姿的参考坐标不一样的问题,在之前参加的一个PRCV 2022的多传感器融合SLAM挑战赛中也同样遇到类似的问题,感觉这个问题还挺常见的。

2023-01-01 16:32:52 602

原创 使用D435i+Avia跑Fast-LIVO

最近Fast-LIVO开源了,之前看它的论文的时候发现效果很优秀,于是用实验室现有的设备尝试一下。这里主要记录一下使用不带外触发功能的D435i + Avia跑Fast-LIVO的过程,为了适配代码,主要修改了雷达的驱动、相机的launch文件、以及使用了一个外部的rospkg对相机的IMU坐标系做了转换

2022-11-27 14:45:58 5706 46

原创 LIO-SAM中的mapOptmization

最近在学习LIO-SAM源码的时候,发现LIO-SAM这套代码调用了比较多库的内置API,里面涉及的一些细节也比较多,整个工程还是比较清晰的,值得学习!LIO-SAM这个框架主要由四个大的模块组成,其中这个图优化模块的内容最多,里面也涉及最多细节,这里主要记录下这个文件的解读。

2022-11-05 10:22:29 1030 1

原创 RS雷达转Velodyne雷达数据Failed to find match for field ‘intensity‘

因为目前很多SLAM框架支持的激光雷达都是Velodyne型号的,对于速腾RS雷达的使用者来说,需要对数据进行转换,其实现在速腾的雷达已经支持输出XYZIRT格式的点云,但是因为速腾的RS16雷达输出中包含了部分Nan的点,需要做剔除。

2022-11-02 10:10:28 13335 10

原创 wsl中使用ROS工具rqt显示界面跑到窗口外面

在WSL中使用ROS时确实会有一些小bug,比如下面这个,rqt那个功能界面跑到了窗口外面,根本无法移动回去,指令运行时没有任何报错。通过下面这个方法可以还原!

2022-11-01 09:23:14 8814 1

原创 报错 Key is stored in legacy trusted.gpg keyring

最近在安装ROS2的时候遇到一个关于密钥的报错,这里记录一下!

2022-11-01 09:20:24 11945

原创 机器人端的图形界面ssh远程显示方案

最近在做机器人平台调试的时候,我们一般通过ssh的方式远程登陆机器人端的小电脑进行开发,比如有时候我们需要打开rviz进行一些话题消息的可视化,所以这时候就需要远程打开某些图形软件了,我们可以通过X11服务实现。

2022-10-29 16:42:16 11617 6

原创 LIO-SAM中的scan_to_map原理剖析

最近在阅读LIO-SAM源码的时候,在它这个后端优化部分这里,scan_to_map里面涉及到了一些数学原理,这部分同样采用了欧拉角来推导残差和雅可比矩阵,最后基于此构建增量方程进行求解。因为这一部分相对来说比较多的细节,所以这里单独一节记录下来。

2022-10-18 23:08:23 10102 4

原创 ROS中的多线程使用

ROS里面每个节点都是用默认的单线程来处理任务,以前很多时候都没有注意使用多线程的方式来处理回调函数,今天在这里总结一下。

2022-10-05 20:39:11 11863 1

原创 gazebo中给机器人添加16线激光雷达跑LIO-SAM

最近想搭建一个机器人移动平台,但是设备还没完全到齐,在设备全部到齐之前,我们先在gazebo中做一个仿真,进行相关的算法和功能包的部署。在这个仿真中机器人在一个移动底盘上搭载了16线激光雷达、IMU、RGB-D相机,并在最后跑了一个LIO-SAM,建图效果还不错。整个过程遇到了一些问题,都一一解决了,对主要的问题做了一些记录,有其他问题的可以在讨论区回复。另外,本工程的源码放在在GitHub上,欢迎大家下载学习。

2022-09-19 10:47:36 21710 122

原创 ZED 2i 双目-IMU标定

IMU噪声与bais随机游走标定、双目-IMU联合标定

2022-09-16 23:12:28 12665 25

原创 ROS多设备组网(WSL+miniPC+Nv Orin)

实验室最近购买了两台小电脑,一台是x86的miniPC,另外一台是Nvidia的Orin,因为工位上不想摆那么多的鼠标键盘以及也没地方放那么多的显示器,所以很多时候都是通过远程登陆的方式进行访问的。远程登陆有一个问题,如果只是把小电脑当服务器使用那自然是没问题,但是很多时候我们需要在ROS平台上调试我们的其他设备,这个时候就需要用ROS分布式组网了。分布式组网非常简单,我们只需要配置一下即可,下面记录一下配置过程。

2022-09-15 14:40:28 10038 1

原创 实现外网Ping通WSL(网卡桥接方式实现)

在我们经常和机器人打交道的这群人中有一个需求,那就是希望我们的电脑主机能够和外部的机器人系统进行组网,比如:通过ROS组网通信,调试机器人,机器之间传输文件等。但是,WSL2是在windows主机内部建立的虚拟局域网,其ip从外部无法访问。网上实现外网Ping通WSL的很多文章提到端口转发,但是ROS的文档里面要求用到所有的端口,所以采用端口转发不太实际。所以要想办法让WSL2的ip暴露出来,使得外部的主机能够访问到。通过这两个脚本,每次我们可以很轻松实现wsl虚拟网卡和window网卡桥接的建立和取消。

2022-09-15 09:57:39 17557 15

原创 Ubuntu中USB端口与外设绑定,ROS读取IMU模块数据

Ubuntu中USB端口与外设绑定的两种方法,并通过ROS读取IMU模块的数据

2022-09-09 13:33:09 10406

原创 SLAM中evo评估工具(用自己的数据集评估vinsFusion)

用自己的数据跑vinsFusion,开启回环检测,并使用evo轨迹评估工具进行评估

2022-09-06 23:01:07 12091 9

原创 LeGo-LOAM 跑通与源码学习

在Ubuntu 20.04 下跑通LeGO-LOAM并进行了源码的学习,相关注释在我个人的github仓库中,文末有根据此工程绘制的思维导图有助于快速理解本框架。

2022-07-20 09:18:32 10802 1

原创 A-LOAM源码阅读

LOAM是3D激光SLAM的一个经典框架,本文主要是对A-LOAM源码进行阅读,并绘制了思维导图,现分享出来,希望能帮到大家

2022-07-17 15:12:36 9153

原创 VINS 外参在线标定

VINS 外参在线标定

2022-05-08 20:05:31 9448

原创 模式识别(一)

本文是研究生课程《模式识别》的课程作业之一,涉及最大似然估计、贝叶斯估计、最小错误率决策面求解等问题

2021-12-04 22:06:10 12276 4

原创 Separable Convolution(深度可分离卷积)

卷积神经网络中的Separable Convolution作用:它的核心思想是将一个完整的卷积运算分解为两步进行,分别为Depthwise Convolution与Pointwise Convolution,有效的减小了参数数量,适合部署在受到硬件性能限制的移动设备上。这种深度可分离卷积的方法实际上是跨通道相关性和空间相关性的充分解耦。举个例子,假设 输入是5*5*3的图像,最终要求输输出的是3*3*4的feature map:#mermaid-svg-b6hNPhyvJoKkPcm9 .label{

2021-10-08 16:45:19 9057

原创 g++使用笔记

从源代码到可执行程序的流程1、预处理:处理一些预处理指令,例如#include等2、编译:把高级语言转换为汇编语言3、汇编:把汇编语言文件转换为二进制文件4、链接:如果各个文件有依赖关系会考虑依赖关系建立各个文件之间的联系g++常用指令① g++ -E xxx.cpp 仅作预处理,不进行编译、汇编和链接,生成预处理之后的文件(.i)执行该指令会直接在terminal中显示预处理过程,例如#include,只能看到部分预处理结果;这个只显示预处理,不生成文件;如果想查看详细的预处理,可以重定向到

2021-06-24 10:55:19 8929

原创 C++整理

基本知识Bit:计算机内存的基本单元,可以看做电子开关0/1,八位的内存块可以设置出256种不同的组合。Byte :通常指8位的内存单元,字节就是描述计算机内存量的度量单位,1KB等于1024字节。从C++源码创建可执行程序基本分为三个步骤:1、预处理器处理所有预处理指令。例如将所有#include预包含指令用文件xxx的内容替换2、编译器将每个.cpp文件编译成一个对应的目标文件(二进制机器指令)3、连接器将程序的所有目标文件和依赖库的目标文件的二进制机器代码组合成一个二进制技巧代码的可以执

2021-05-09 09:41:19 8783 1

原创 如何理解信号与系统中的卷积

卷积 是信号与系统中一个具有重大意义的方法,曾经我询问过很多学习过这门课的学生还有考研的学生,很多人根本就不知道学了个啥东西,其实我觉得信号与系统这门课讲的确实有些偏理论了,我认为如果真正要把这门课学懂讲懂要多结合控制方面的知识去探索,而不是单单停留在一些对数学上的分析和求解问题,我们作为一个工程人,数学是一种工具一种解决问题的方法,就是要被我们拿来解决工程问题的。言归正传,从一个工程的角度去理解卷积本人认为要理解好卷积主要解决以下几个问题:1、卷积用来做什么?2、什么是卷积?3、为什么可以用卷积来

2021-03-05 10:02:26 13994 2

原创 如何理解【叉乘得到误差】

在无人机算法中经常会遇到这样一个词条“通过叉乘得到误差“,实际上我以前也没真正理解只是这样一直用,后面考研的时候认真学习了线性代数等课程,对工程里面的词有了一些自己的理解。完整的表述应该是这样的:在只关心向量是否平行的情况下,两个向量之间的误差可以通过叉乘来表示两个向量之间的误差定义:error=∣A×B∣∣A∣2+∣B∣2error=\frac{|A×B|}{\sqrt{|A|^2 +|B|^2}}error=∣A∣2+∣B∣2​∣A×B∣​ 所以我们才常常看到动不动就叉乘,是因为在叉乘之前他们肯定是

2021-02-21 22:00:17 9221 1

原创 深入理解线性卡尔曼滤波(KF)算法及Matlab仿真实现

Kalman Filter前言卡尔曼滤波算法实际上是一种Optical Recursive Data Processing Algorithm(最优化递归数据处理算法)一、Data Fusion在了解卡尔曼滤波算法之前首先了解一种数据融合思想。假设现在有两个样本值Z1和Z2,则设估计值Z^=Z1+K(Z2−Z1)\hat{Z}=Z_{1}+K\left(Z_{2}-Z_{1}\right)Z^=Z1​+K(Z2​−Z1​)现在只要求得一个合适的K使得估计方差σ\sigmaσZ^\wideh

2021-01-22 20:11:49 16173 8

原创 模糊推理及FuzzyPID算法详解及仿真

目录一、模糊推理过程二、模糊PID算法理论实现三、模糊PID算法的Simulink仿真四、整理感悟一、模糊推理过程在搞懂模糊PID算法之前,首先来研究一下模糊推理过程是怎样的。二、模糊PID算法的理论实现过程三、模糊PID算法的Simulink仿真为了对比模糊PID和传统PID的区别,这里也做一个传统单环的PID来一起做输出对比。运行之后,蓝色的是传统PID的输出,红色的是模糊PID的...

2021-01-13 22:37:36 17302 10

原创 【Android探索】基于OpenCV的微液滴粒径分析APP

前言:这个App是之前《数字图像处理》课程的一次课程设计中的产物,现在整理一下记录下来,里面涉及到了比较多的控件以及拓展包,功能不是很丰富但是也比较算齐全,其中使用的技术原理包括在安卓上使用OpenCV库对图像进行一些预处理、利用透视变换方法纠正歪斜图像、生成excel统计表格、以及做一些柱状图统计数据等。因为设计的控件等比较多,所以下文以功能模块的形式分块介绍,有需要的可以直接参考相关模块即可。...

2020-02-06 16:43:31 8786 1

原创 【Android探索】基于Android Studio平台的蓝牙遥控APP

前言:好久没更新这博客了,接下来有时间记录下前阵子做的东西,当作是复习之余的回顾往事和时间消遣,哈哈。首先是这个蓝牙遥控APP,这个APP是之前做一个小比赛的时候尝试做来玩玩的,主要内容是使用这个APP来与HC05设备进行数据交互然后控制一个灯光云台,虽然最后拿了个小奖,但是毕竟术业有专攻,做的不是很好,也过去一段时间了,下面记录一下主要的实现过程。先有一个整个工程的概念逻辑,逐步完善即是perf......

2020-01-31 21:40:42 19632 13

原创 CubeMX配置输入捕获模式获取输入信号脉宽

前言:最近做一个小玩意又用到了单片机的输入捕获功能,这里记录下配置过程(以便以后照搬)1、输入捕获原理在输入捕获模式下,当检测到ICx信号上相应的边沿后,计数器的当前值被锁存到捕获/比较寄存器(TIMx_CCRx)中。当发生捕获事件时,相应的CCxIF标志(TIMx_SR寄存器)被置1,如果开放了中断或者DMA操作,则将产生中断或者DMA请求。如果发生捕获事件时CCxIF标志已经为高...

2019-10-21 12:40:16 11100 1

原创 STM32内部Flash读写

前言:把数据存储到到EEPROM或FLASH可以对一些数据进行掉电可存储,STM32L系列才有内部EEPROM,其他系列都只有Flash,操作FLASH也可以达到掉电保存数据的效果。关于存储器件家族介绍用一张图来描述最好不过了,如下:硬件支持:STM32F051C8T6,64KB的FLASH,没有EEPROM。正文:按照不同容量,Flash组成部分:主存储器块和一个信息块以及一些闪...

2019-09-28 17:18:44 10246

原创 浅谈加速度计旋转补偿

前言:其实这个旋转补偿的叫法是我个人对这个现象以及解决方案的称呼,发现网上很少关于这个问题的讨论和探讨,很多工程的代码里面也没有涉及到这方面的考虑,似乎直接忽略了这方面的对整个系统的影响。可能是一般都会把加速度计安装在接近系统的中心位置所以在系统旋转的时候对系统不会产生很大的影响,但是如果加速度计没有安装在系统旋转轴上,当系统绕轴旋转的时候处于不在旋转轴上的加速度计就会产生向心加速度,加速计就会叠...

2019-09-06 08:35:56 10125 4

原创 用Matlab分享一个软件低通滤波算法

前言:前一阵子学习了matlab的一些数据处理的基本操作,但是都没怎么用,很多操作忘记了,昨天晚上看到一个滤波算法思想感觉还不错,现在打算用Matlab来仿真看看具体效果怎样正文:代码如下:初次写Matlab的代码,可能里面很多不规范的操作,代码非常简单。这里设置了1000个样本,并添加一些高斯噪声,然后做一个类似窗口滤波的操作cleart = linspace(1,1000,...

2019-09-01 16:24:30 12461 7

原创 CubeMX配置SPI读取ICM20602陀螺仪数据

前言:前阵子电赛买了个ICM系列陀螺仪,数据比MPU系列稳定,但是没有DMP模块,只能读到原始AD值然后做转换算法输出六轴数据,现在想用HAL库配置下SPI读取下相关数据。软件:STM32CubeMX V5.3.0固件库版本:STM32Cube FW_F1 V1.8.0硬件:STM32F103C8T6ICM20602陀螺仪模块正文:1、和前面一样配置一个C8T...

2019-08-31 18:21:04 13947 27

原创 CubeMX配置FreeRTOS跑多线程任务

前言:想起以前用标准库做RTOS的时候一大堆操作就很烦,还好MX支持了直接配置生成RTOS工程很方便,最近发现一些很久以前买的模块没用上放着占地方然后顺便拿出来做了个小遥控器玩玩,下面给遥控器配个RTOS跑跑。软件:STM32CubeMX V5.3.0固件库版本:STM32Cube FW_F1 V1.8.0硬件:STM32F103C8T60.96寸IIC接口OLED...

2019-08-30 21:21:14 14566 2

原创 CubeMX配置IIC与小OLED通讯

前言:废话少说马上开始,关于IIC的一篇比较好的原理理解文章https://blog.csdn.net/XiuHua_Wu/article/details/81381516软件:STM32CubeMX V5.3.0固件库版本:STM32Cube FW_F1 V1.8.0硬件:STM32F103C8T60.96寸IIC接口OLED正文:1、开启2、配置I...

2019-08-30 00:15:00 12836

原创 CubeMX配置ADC电压采样DMA读取

前言:接着上面的工程继续配置一个ADC电压采样软件:STM32CubeMX V5.3.0固件库版本:STM32Cube FW_F1 V1.8.0硬件:STM32F103C8T6正文:1、配置四通道ADC采样输入2、设置系统ADC时钟3、配置ADC转换初始化参数ADC1配置:使能扫描转换模式(Scan Conversion Mode),使能...

2019-08-29 15:21:39 11842

原创 CubeMX配置IO输出

前言:很久没玩单片机了,最近更新了个新版本的MX,界面有点陌生,打算重新摸索一遍随便写点东西记录一下。软件:STM32CubeMX V5.3.0固件库版本:STM32Cube FW_F1 V1.8.0硬件:STM32F103C8T6正文:1、File -> New Project -> STM32F103C8Tx2、首先设置R...

2019-08-29 13:22:43 8694

原创 电赛四轴小结——姿态解算篇【mahony互补滤波算法】

前言:前段时间一直在备赛没时间做总结,其实无人机控制算法中主要是姿态解算系统和姿态控制系统,这里先总结下姿态解算系统的相关要点,研究一下关于姿态解算的过程和实现,本篇博文主要是以mahony的算法为基础理解姿态解算的过程。传感器:陀螺仪计(gyroscope,也称作 gyro):灵敏度:陀螺仪计测量的是角速度,具有高动态特性,关键参数就是gyro sensitivity(其单位是mil...

2019-08-22 09:42:43 16807 38

Typora 0.11.18,适用于win、Ubuntu、mac

Typora for free! 这里面是Markdown编辑器Typora 0.11.18,能够避免1.0版本之后产生的某些问题。里面有 .exe / .deb / .dmg版本的安装包,适用于win、Ubuntu、mac

2022-01-16

BlueToothBLE_APP.zip

自定义DIY蓝牙开发APP,基于Android的,AndroidStudio平台

2021-04-20

运料小车自动往返控制系统.rar

基于S7-200西门子PLC的运料小车自动往返控制系统课程设计,综合控制,往返、单向、停止等可独立控制!

2020-09-02

基于STM32的ICM20602陀螺仪数据获取

基于STM32的ICM20602陀螺仪数据获取,能够获取原始数据,并对数据做了标准化处理转化成了具体的角度和角速度以及温度

2019-12-10

小四轴飞控板.rar

基于STM32F103的一款小四轴PCB设计,包含基本的陀螺仪以及NRF2401等

2019-06-01

常用PCB设计封装

常用的PCB设计封装库,里面包含了常见的电容电阻等基础元器件以及常见的STM系列IC封装等

2018-12-11

空空如也

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

TA关注的人

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