自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

雨落凡城的博客

从小白到大黑

  • 博客(52)
  • 收藏
  • 关注

原创 四元数非正式笔记梳理_Quaternion kinematics for the error-state Kalman filter

Introduction本文是针对对papers [Quaternion kinematics for the error-state Kalman filter]的非正式阅读笔记。原papers写的非常好,通俗易懂,本文笔记记录过程中总是丢了连贯性,强烈推荐阅读英文原版。 之所以说是非正式,一方面是因为与其说是笔记,倒不如说是公式速查笔记,丢了公式的一些来龙去脉,另一方面原因是里面保留着一些来至于翻译软件的直接翻译(太懒敲字),以及个人随性的笔记。为了便于对照原文,这里保留了与原paper相同的公式序

2022-03-08 21:11:08 1818

原创 优化库——GTSAM(一)

???? 前言本文主要从代码架构方面,简要了解一下框架,使得使用的时候“踏实一点”,想要细致了解以下的,我在后面参考链接里面放置一些推荐链接,可以作为了解以example_odomtry为例讲解一下主要流程0 创建图对象1 添加先验一元边2 添加约束因子3 设定初值(观测值)4 进行优化1-1 ???? FactorGraph & Factor图对象的顶层基类为FactorGraph,常用的非线性图属于派生类NonlinearFactorGraph-->Facto

2021-08-16 23:17:09 4019 1

原创 优化库——ceres(三)实战案例

实战案例1.1 CmakeLists.txt配置//CMakeLists.txt:cmake_minimum_required(VERSION 2.8)project(ceres)find_package(Ceres REQUIRED)include_directories(${CERES_INCLUDE_DIRS})add_executable(test test.cpp)target_link_libraries(test ${CERES_LIBRARIES})1.2 示例:ce

2021-08-03 22:47:01 2043 1

原创 优化库——ceres(二)深入探索ceres::Problem

文章目录1-1 :bookmark: Problem类函数总览1-2 :bookmark: ceres::LocalParameterization1-2-1自定义LocalParameterization1-2-2 案例:QuaternionParameterization解析1-2-3 ceres::LocalParameterization的其他用法1-3 :bookmark: 关于添加残差块,参数块,设置参数化的区别和调用关系参考链接1-1 ???? Problem类函数总览整个Problem函

2021-08-03 22:22:04 2733 3

原创 优化库——ceres(一)快速概览

文章目录1 :book: ceres快速概览1.1 :bookmark:问题建模和求解1.2 ::bookmark:ceres使用流程1.3 :bookmark: 求导方法:构建代价函数(STEP2)1.3.1 解析求导(自定义求导)1.3.2 其他求导1.4 :bookmark: 构建优化问题并求解(STEP3)参考链接1 ???? ceres快速概览基本概念对于任何一个优化问题,我们首先需要对问题进行建模,之后采用合适的优化方法,进行求解。在求解的过程中,往往需要进行梯度下降求取最优,这里涉及了

2021-08-02 23:35:14 4138 2

原创 SLAM基础——聊一聊信息矩阵

文章目录前言1 :book: 信息矩阵1-1 :bookmark: 信息矩阵是什么?有什么作用?1-2 :bookmark: 信息矩阵与Hessian矩阵的关系1-2-1 Hessian矩阵和H矩阵的关系1-2-2 Hessian或H矩阵和信息矩阵的关系2 :book: 信息矩阵与最小二乘的关联2-1 :bookmark: 先谈一谈常规的最小二乘2-2 :bookmark: 包含信息矩阵的最小二乘​3 :book: 信息矩阵如何更新的?3-1 :bookmark: 舒尔补介绍3-2 :bookmark: 在

2021-07-31 01:19:04 8369 4

原创 SLAM基础——舒尔补介绍

文章目录1:book: 舒尔补介绍1-1:bookmark: 舒尔补定义1-2:bookmark: 舒尔补的定理推导1-3 :bookmark: 用途:快速求矩阵的逆1-4:bookmark:用途:舒尔补在信息矩阵求解中的使用1-5:bookmark:用途: 舒尔补应用于多元高斯分布通过舒尔补分解多元高斯分布边际概率和条件概率的信息矩阵总结参考资料1???? 舒尔补介绍1-1???? 舒尔补定义给定任意的矩阵块 M\mathbf{M}M , 如下所示:M=[ABCD]\mathbf{M}=\lef

2021-07-31 00:32:04 4799 4

原创 VINS——初始化过程

1 ???? 前言初始化总体流程如下:旋转外参数 qbc\mathbf{q}_{b c}qbc​ 未知, 则先估计旋转外参数.利用旋转约束估计陀螺仪 bias.qc0bk=qc0ck⊗qbc−1\mathbf{q}_{c_{0} b_{k}}=\mathbf{q}_{c_{0} c_{k}} \otimes \mathbf{q}_{b c}^{-1}qc0​bk​​=qc0​ck​​⊗qbc−1​利用平移约束估计重力方向,速度,以及尺度初始值.sp‾c0bk=sp‾c0ck−Rc0b

2021-07-31 00:13:52 1458

原创 SLAM基础——常见矩阵以及矩阵分解

0 ???? 前言本篇,多出自其他大佬的文章,厚着脸皮总结组织一下1 ???? 矩阵求解参考链接https://blog.csdn.net/wangshuailpp/article/details/80209863https://www.cnblogs.com/AndyJee/p/3846455.html1-1 ???? 内容一:直接给出AX=B\bf{AX=B}AX=B解的情况。(1)R(A)< r(A|B),方程组无解(2)r(A)=r(A|B)=n,方程组有唯一解(3)r(A)

2021-07-20 23:45:34 1290 2

原创 SLAM基础——最小二乘

1 ???? 概念入门:最小二乘估计(LSE)最小二乘估计,简写为LSE(Leart Squares Estimate)1-1 ???? 最小二乘模型的引出线性模型如下:Y=AX+ε\mathbf{Y}=\mathbf{A} \boldsymbol{X}+\boldsymbol{\varepsilon}Y=AX+ε其中:Y=(y1,y2,…,yn)T\mathbf{Y}=\left(y_{1}, y_{2}, \ldots, y_{n}\right)^{T}Y=(y1​,y2​,…,

2021-07-20 23:34:08 770

原创 SLAM基础——部分预备知识

1 ???? 四元数1-1 ???? ​四元数介绍四元数 q 有一个实部和三个虚部。我们把实部写在前:q=[q0,q1,q2,q3]T 或 q=[w,x,y,z]T\mathbf{q}=\left[q_{0}, q_{1}, q_{2}, q_{3}\right]^{T} \text { 或 } \mathbf{q}=[w, x, y, z]^{T}q=[q0​,q1​,q2​,q3​]T 或 q=[w,x,y,z]T其中 q0q_0q0​ 为实部,[q

2021-07-20 23:09:32 196 1

原创 滤波_1_卡尔曼滤波理解

1 ???? 导文(入门)卡尔曼滤波是无人驾驶中最基本的算法之一,在传感器融合与定位中几乎无处不在。这里借助笔记顺一顺卡尔曼滤波的过程适用系统:线性高斯系统宏观意义:噪声既加权(下面与理想状态的低通滤波进行对比)加权公式低通滤波低频信号×1\times{1}×1+高频信号×0\times{0}×0这里的低指的是低频信号值,高指的是高频噪声,对高频噪声给定权重,才是最理想的状态卡尔曼滤波估计值×p1\times{p_1}×p1​+观测值×p2\times_{p_2}×

2021-06-13 20:19:36 593

原创 C++_1_手写智能指针

文章目录1 :book: `share_ptr`仿写2 :book: `auto_ptr`仿写(C17的时候被废除了)3 :book: `unique_ptr`仿写(C11引入)10 :book: 参考资源1 ???? share_ptr<T>仿写智能指针(shareptr<T>)有两个关键变量,而且都是指针类型:1 引用对象的指针(类型为指针)2 引用对象的引用次数(类型为指针)每次智能指针对象更换对象的时候,都会先更新当前的引用次数(减一) ,然后才会接管新的传入对象

2021-06-08 23:11:40 508 1

原创 SLAM基础——预积分流程梳理

文章目录1 :book: 前言1 :book: IMU模型1-1 :bookmark: 测量误差模型1-2 :book: 状态传递过程(连续形式)1-3 :book: 状态传递过程(离散形式)2 :book: IMU预积分2-1 :bookmark: 连续形式2-2 :bookmark: 离散形式(欧拉法)3 :book: 误差递推方程、协方差和雅可比矩阵3-1 :bookmark: 连续形式下 PVQ 增量的误差、协方差及 Jacobian3-2 :bookmark: 离散形式下 PVQ 增量的误差、协方

2021-05-24 18:14:28 822

原创 SLAM基础——关于SLAM三大矩阵

文章目录1 :book: 参考资料2 :book: 对极几何模型3 :book: 本质矩阵和基础矩阵的推导3-1 :bookmark: 本质矩阵推导3-2 :bookmark: 基础矩阵推导3-4 :bookmark: 基础矩阵的模型退化情况3-5 :bookmark: 基础矩阵的简化情况3-6 :bookmark: 基础矩阵求解(待整理)STEP1 DLT过程STEP2 第一次SVD求解FSTEP3 第二次SVD分解进行矩阵重构4 :book: 单应矩阵(射影变换)1 :bookmark:解法一: 最小二

2021-05-22 21:45:59 1247

原创 矩阵(二):为什么Ax=0的解为最小奇异值对应的向量?

参考资料解超定方程 Ax=01 ???? 解超定方程工程中很多问题会归结为求超定方程Ax=0\mathbf{A x}=\mathbf{0}Ax=0 , A\mathbf{A}A是 m*n的矩阵,且m>n 。如SLAM中三角化地图点,PnP等一些问题都是求解这个方程。很显然,这个方程有一个0解,但这不是我们想要的,我们实际想求非零解。为了求非零解,我们对 A\mathbf{A}A加上一个约束∥x∥2=1\|\mathbf{x}\|^{2}=1∥x∥2=1。也就是限制 x\mathbf{x

2021-05-22 21:26:55 3008 9

原创 markdown公式语法

\prime 撇(右上角上标用)\space 空格\mathbf 取消斜体设置(只针对紧跟其后的一个元素)\bf 功能同上(针对在其后面的所有元素)\lambda \sigma \wedge ^\Rightarrow 向右的箭头\leftrightarrow 双向箭头\mid 竖杠\boldsymbol 加粗\overline 对变量加上划线(一般用作均值表示)\perp 垂直号\sqrt 开根号...

2021-05-22 17:51:21 383

原创 C++_7_const的一些使用

7 const参考链接:const的用法,特别是用在函数前面与后面的区别!没有学不会的 C++:logic constness 和 bitwise constnessAdvanced C++ – Logic Constness and Bitwise Constness7.1 用const修饰函数的参数参数作输出用,不论它是什么数据类型,也不论它采用“指针传递”还是“引用传递”,都不能加const修饰.const只能修饰输入参数:如果输入参数采用**“指针传递”**,那么加const

2020-09-25 14:20:28 163

原创 VScode插件利器

vscode中TODO的使用vscode 中TODO的使用TODO HighlightTodo Tree

2020-04-09 00:20:41 212

原创 ubuntu安装串口驱动(找不到ttyUSB*)

文章目录0 参考链接1 查看电脑的内核版本2 下载安装包3 编译安装0 参考链接https://blog.csdn.net/hnlyzxy123/article/details/82181027https://blog.csdn.net/jazzsoldier/article/details/70169732下载链接https://elixir.bootlin.com/linux/v4....

2020-04-06 23:54:32 9471

原创 ROS(四):如何关联非工作空间下的功能包

文章目录1 一个任性2 环境变量加载1 一个任性在使用ROS运行ORB_SLAM2时候,偏偏不想把ORB_SLAM2放置在work_ws/src目录下,就放置在了 ~/下,需要进行如下操作进行执行2 环境变量加载添加如下到~/.bashrcexport ROS_PACKAGE_PATH=${ROS_PACKAGE_PATH}:~/ORB_SLAM2/Examples/ROS完事了~...

2020-03-15 21:04:57 352

原创 ROS(三):使用clion开发ROS功能包

文章目录1 添加clion路径2 在ROS工作空间下打开clion1 添加clion路径我的clion安装在 ~/MySoft/,所以向~/.bashrc文件添加下面一句话export PATH=~/MySoft/clion-2019.1.2/bin:$PATH2 在ROS工作空间下打开clionsource ~/catkin_ws/src/clion.sh如果打开后工程不是在~...

2020-03-15 20:59:29 422

原创 多机器(一):docker封装ubuntu并使用VNC view打开

文章目录1 各个部件装配1.1 拉取ubuntu16镜像1.2 安装ROS1.3 安装 VNC1.4 VNC view连接2 安装过程2.1 个人完整安装过程(可能会有遗漏)2.2 过程中出现的问题汇总2.2.1 VNC view 无法打开终端问题2.2.2 如果死活没办法解决灰屏,开始下面1 各个部件装配1.1 拉取ubuntu16镜像#运行交互式的容器(若没有,则会自行拉取ubuntu:...

2020-03-14 10:34:13 605

原创 服务器(二):VNC view 死活没办法解决灰屏

1 VNC view 死活没办法解决灰屏安装xfcesudo apt-get install gnome-core xfce4配置编辑~/.vnc/xstartup文件:#!/bin/shunset SESSION_MANAGERunset DBUS_SESSION_BUS_ADDRESSstartxfce4 &[ -x /etc/vnc/xstartup ] ...

2020-03-14 10:19:13 2003

原创 服务器(一):VNC view 无法打开终端问题

1 VNC view 无法打开终端问题参考链接:Ubuntu 的终端打不开,gnome-terminal没反应ubuntu 打开不了gnome-terminal 显示错误提示exited status 8Ubuntu系统日常崩溃之-terminal打不开Ubuntu 的终端打不开,gnome-terminal没反应在x-term(随便在一个自带终端里运行)中运行gnome-termin...

2020-03-14 10:17:02 8619

原创 MongoDB(二):数据库可视化工具robot3

文章目录1 Robo 3T安装2 开始使用3 ubuntu常用的mongoDB命令1 Robo 3T安装官网下载地址:https://robomongo.org/  进入官网,点击下载,Studio 3T功能更全面,基础功能是免费的,部分功能是收费的,这里选择Robo 3T就够基础学习使用了安装,就下面两步。。。。。tar -xzf robomongo-0.9.0-linux-x86_6...

2020-03-14 09:50:46 1016

原创 python(一):文件操作

1 文件操作my_file=open('my file.txt','w') #用法: open('文件名','形式'), 其中形式有'w':write;'r':read.my_file.write(text) #该语句会写入先前定义好的 textmy_file.close() #关闭文件""""This is my f...

2020-03-13 00:05:27 75

原创 ROS(一):launch使用案例文件(单纯的复制来的)

案例一 //使用启动标记启动启动文件,以便将文件标识为启动文件<launch> //在这里,我们启动两个组,其名称空间标签为turtlesim1,turtlesim2为turtlesim节点,名称为sim。 //这允许我们在没有名称冲突的情况下启动两个模拟器。 <group ns="turtlesim1"> <...

2020-03-12 23:58:23 105

原创 矩阵(一):SVD分解

文章目录0 参考链接(尊重原著)1 SVD分解原理2 SVD分解意义3 SVD分解的应用4 SVD数学举例0 参考链接(尊重原著)下面这个讲的很好很全面视觉SLAM常见的QR分解SVD分解等矩阵分解方式求解满秩和亏秩最小二乘问题(最全的方法分析总结)矩阵分解SVD原理1 SVD分解原理奇异值和特征值有相似的重要意义,都是为了提取出矩阵的主要特征。假设A是一个m∗n阶矩阵,如此则存在一个...

2020-03-12 23:52:45 12357 1

原创 MongoDB(一):MongoDB数据库以及c/c++驱动安装

文章目录1.1 安装mongodb1.2 安装 mongo-c-driver1.3 安装 mongo-cxx-driver1.1 安装mongodb注意了,MongoDB可以对应多个版本的驱动,但是mongodb C++驱动对依赖mongodb C驱动的支持却是一一对应的,一定注意好自己的版本信息.由于我的系统是ubuntu16的,只能好像安装mongodb=3.6版本。mongodb ...

2020-03-11 11:25:23 1170

原创 优化库——g2o(二)ORB-SLAM2在局部建图线程中的优化

文章目录4.0 参考链接4.1 ORB-SLAM2在局部建图线程中的优化4.0 参考链接ORB-SLAM2代码阅读笔记(七):LocalMapping线程DreamWaterFound/self_commit_ORB-SLAM24.1 ORB-SLAM2在局部建图线程中的优化局部建图线程调用// Local BA// 当局部地图中的关键帧大于2个的时候进行局部地图的BAif(mp...

2020-03-06 00:08:59 1127

原创 优化库——g2o(一)整体介绍

文章目录0 参考链接1 基本流程梳理2 代码文件3 代码使用举例0 参考链接[从零开始一起学习SLAM | 理解图优化,一步步带你看懂g2o代码][深入理解图优化与g2o:g2o篇]本文参考上面两个链接,想要了解详细内容,参考上面两个1 基本流程梳理图的核心SparseOptimizer是整个图的核心, is-a 是实心箭头,表示这个SparseOptimizer它是一个Opt...

2020-03-05 10:47:38 2772

原创 C++数组操作:变量申请数组

0 参考链接储与对原创的尊重,本文参考链接如下C++ 用变量定义数组1 几种数组的申请//int a[n+1]; //这一种只有在一些写的编译器如dev c++才会支持//int a[45]; 没有下面的指针快int* a = new int[n+1];1.1 首先可以使用指针:2.1.1 一维:cin>>n;int* a=new int[n]; if ...

2020-02-23 11:13:00 2200

原创 Ubuntu装机

这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Ma...

2020-01-23 15:37:30 410

原创 ubuntu16在Y7000P系统下安装显卡驱动

参考链接1 首先看看自己Ubuntu内核支持到哪个版本的驱动:sudo apt-cache search nvidia*sudo apt-cache search nvidia*libcuda1-384 - NVIDIA CUDA runtime librarynvidia-304 - NVIDIA legacy binary driver - version 304.135nvid...

2020-01-22 17:40:47 3016

原创 ubuntu16 显示ip、dns、网关

在新版的ubuntu 终端里输入命令nm-too未找到 'nm-tool' 命令原来,从Ubuntu 15.04开始, nm-tool 就已经不存在, 却而代之的是nmclinmcli dev show 可以查看MAC, IP, DNS等信息;...

2020-01-22 16:58:26 217

原创 VINS中有关RVIZ的操作

1 发布里程计前期准备 pub_odometry = n.advertise<nav_msgs::Odometry>("odometry", 1000);Eigen::Vector3d tmp_P;Eigen::Quaterniond tmp_Q;Eigen::Vector3d tmp_V; std_msgs::Header header = imu_msg->h...

2019-12-20 01:21:41 408

原创 C++中const用法

C++中const用法

2019-12-11 18:51:07 135

原创 Ubuntu 16.04下anaconda3使用和有关的pytorch安装

0 参考链接Ubuntu 16.04安装anaconda3anaconda3使用与介绍安装成功后,在~/.bashrc下最下面会多出来一些配置# added by Anaconda3 5.3.0 installer# >>> conda init >>># !! Contents within this block are managed by 'c...

2019-12-05 17:42:09 498

原创 github常见问题与操作(待续)

1 参考连接github私有库怎么转换公共库-百度经验

2019-11-29 20:09:44 186

空空如也

空空如也

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

TA关注的人

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