自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(51)
  • 资源 (1)
  • 收藏
  • 关注

原创 Ubuntu16.04编译运行ORBSLAM3

0、下载代码与数据集代码:https://github.com/UZ-SLAMLab/ORB_SLAM3数据集:https://projects.asl.ethz.ch/datasets/doku.php?id=kmavvisualinertialdatasets注意:数据集下载ASL Dataset Format格式,每一行第二个link.1 、依赖安装1.1 opencvopencv需要3.0以上,本地安装3.4.1,下载地址:https://opencv.org/release

2020-09-12 02:23:24 1744 3

原创 ubuntu16.04+ORBSLAM3:/usr/local/lib/libopencv_imgcodecs.so.3.4.1:对‘TIFFReadDirectory@LIBTIFF_4.0’未定义

本地环境为anaconda2、ROS等,参考这篇博客编译ORBSLAM3,碰见该问题。解决方法:再ORBSLAM3目录下的CmakeList.txt中添加第二行:target_link_libraries(${PROJECT_NAME}/usr/lib/x86_64-linux-gnu/libtiff.so.5 ${OpenCV_LIBS}/usr/lib/x86_64-linux-gnu/libpng.so/usr/lib/x86_64-linux-gnu/libpng12.so.0$

2020-09-12 01:54:06 1209

原创 SINS/GNSS组合导航:捷联惯导静基座下初始对准 (二)精对准

通过对陀螺和加速度计的输出值进行处理,来估计计算地里坐标系和真实导航坐标系之间的小失准角,从而校正粗对准获得的捷联矩阵的过程便是精对准。精对准过程可以以开环的方式进行,即在估计、 的过程中,并不对失准角进行即时的校正,在对准结束后,一次性修正失准角,例如上节提到的一次修正对阵。从误差方程来分析系统的初始精对准,粗对准结束后误差角均为小角度。静基座对准时,水平误差角比方位误差角要小,故可以...

2020-04-15 10:40:52 4466 7

原创 SINS/GNSS组合导航:捷联惯导静基座下初始对准 (二)一次修正粗对准

SINS初始对准要测定系统的姿态变换矩阵,分为粗对准和精对准两个部分,粗短准阶段利用重力和地球自转量粗略计算姿态矩阵;在精对准阶段,不仅依靠前面的姿态矩阵测量值及重力和地球自转量,还要依据惯性器件的输出值和观测量,用合适的滤波方法,对系统的误差量进行估计,修正姿态矩阵,计算出精确的姿态变换矩阵。静态基座下一次修正粗对准粗对准参考文章:https://blog.csdn.net/Littl...

2020-04-11 17:07:12 1909 1

原创 SINS/GNSS组合导航:捷联惯导静基座下初始对准 (一)粗对准(Matlab)

SINS初始对准要测定系统的姿态变换矩阵,分为粗对准和精对准两个部分,粗短准阶段利用重力和地球自转量粗略计算姿态矩阵;在精对准阶段,不仅依靠前面的姿态矩阵测量值及重力和地球自转量,还要依据惯性器件的输出值和观测量,用合适的滤波方法,对系统的误差量进行估计,修正姿态矩阵,计算出精确的姿态变换矩阵。静态基座下解析粗对准粗对准的目的是快速的得到一个粗略的姿态矩阵,即载体系b到导航系e的姿态矩阵...

2020-04-11 16:01:54 6294 6

原创 SINS/GNSS组合导航:组合导航设计(卡尔曼滤波)

1 状态方程2 观测方程3 卡尔曼滤波模型

2020-04-10 11:31:34 17117 12

原创 SINS/GNSS组合导航:SINS误差模型

1 姿态误差模型2 速度误差3 位置误差4 惯性仪表误差4.1 陀螺仪误差模型4.2 加速度计误差模型

2020-04-09 13:25:42 4495 2

原创 SINS/GNSS组合导航:SINS系统及参数解算

1 SINS系统及原理SINS 主要包括导航计算机、惯性测量单元。惯性测量单元包括陀螺仪和加速度计,加速度计用于测量载体相对于i系的加速度与引力加速度之差,简称为比力,记为。陀螺仪用于测量载体相对于i 系的旋转角速度,记为。惯导的机械编排方程用这两个信息获取位置、速度、姿态角这三个导航信息。采用 SINS 进行导航时,由通过将惯性传感器得到的旋转角速度及比力信息进行 积分,解算出载体的速...

2020-04-08 13:34:50 5634

原创 SINS/GNSS组合导航:导航坐标系的定义及欧式变换

3

2020-04-07 22:48:25 2671 2

原创 SLAM后端:位姿图优化(Pose Graph)

1

2020-04-02 23:03:13 4312

原创 SLAM后端:BA优化(Bundle Adjustment)

BA是一种优化方法,最小化重投影误差优化PnP得到的R、t应用场景:利用共视点的3D坐标与相机内参矩阵,根据PnP计算位姿R、t(有误差)。利用R、t及相机的投影模型可以计算出这些特征点在第二帧图像上的投影(有误差),本身这些点在第二帧图像上有真实投影,利用这两个投影构建函数进行优化可以优化位姿。1 BA解决的代价函数观测模型如下:(1)世界坐标系转相机坐标系设P点的世界坐标,...

2020-04-02 22:52:51 8436 2

原创 SLAM前端:ICP(Iterative Closest Point)

ICP算法是点云配准算法,给出两组点云,可以计算出两组点云的位姿关系R、t。问题数学表达为:已知两组点云: 求R、t使下式最小: ...

2020-04-02 01:34:13 1199

原创 SLAM前端(里程计一):ORB特征点提取

ORB特征 = Fast+描述子,Fast判断该点是不是特征点,描述子计算该特征点的方向信息。1 Fast角点(1)Fast规则如下图,遍历每个像素点,检测在像素点附近的圆形窗口上的16个像素的灰度,如果有n个连续点都比中心像素的灰度大或者小的话,这样的中心点就是FAST角点。n可以是12或者9。(2)非极大值已知剔除接近点算法很可能检测出的角点彼此相邻,所以提出了使用非极...

2020-04-01 22:49:38 823

转载 SLAM前端(里程计三):不同情况下的ORB特征点匹配

ORBSLAM中对于特征点的匹配在不同情况下有不同的匹配方式。分为以下几种:1.按照投影进行匹配2.按照bow向量节点进行匹配3.针对初始化地图点的匹配4.针对单目三角化的匹配5.基于相似矩阵的匹配6.通过匹配来提出冗余地图点一、首先看按照投影进行的匹配按照投影方式的不同将其分为上一帧投影到当前帧(tracking线程的按照运动模型进行位姿估计),关键帧...

2020-04-01 21:57:37 577

原创 SLAM前端(里程计二):ORB特征点匹配

(1)构建图像高斯金字塔将图像进行降采样8次,每次尺度缩小1/1.2,如下图所示:采用高斯金字塔的目的是解决特征点尺度不变性,并且可以提取更多的关键点。高斯金字塔每个尺度代表了不同的距离,即低分辨率的图像可以看做从远处拍摄图像的一部分,这样提取8个尺度的图片就可以保证特征点尺度不变性。想像一下,如果第二帧图像相对于第一帧图像走远了,那么根据Fast角点的定义,这两帧图像共有的图像中,很...

2020-04-01 21:55:06 1130

原创 Pytorch教程:CIFAR-10分类

学教程、自己敲、融会贯通# coding=utf-8import torchimport torchvisionimport torchvision.transforms as transformstransform = transforms.Compose( [transforms.ToTensor(), transforms.Normalize((0.5, 0....

2020-04-01 13:12:30 208

原创 ubuntu14.04+nvidia1080ti+cuda8.0+cudnn+caffe

1、安装NVIDIA驱动配置权限,进入nvidia目录下终端执行ctrl+alt+F1登录sudo service lightdm stopsudo chmod a+x NVIDIA-Linux-x86_64-375.66.run sudo ./NVIDIA-Linux-x86_64-375.66.run --no-opengl-files均选yes等sudo reboo...

2020-04-01 13:11:04 205

原创 ROS:Ros+USB摄像头采集数据并发布

1、配置空间环境变量cd catkin_wssource devel/setup.bash2、采集数据roslaunch usb_cam usb_cam-test.launch3、存包rosbag record /usb_cam/image_raw4、播放并重映射rosbag play ros.bag /image_raw:=/camera/image_rawrosrun image_view ...

2020-04-01 13:09:57 374

转载 SLAM前端:PnP(二)EPnP

PnP是一类问题的统称,是指通过多对点的3D位置及2D投影坐标,来估计相机位姿R、t。场景一:视觉slam中在初始化后可以知道空间中一些点在世界坐标系下的坐标,在下一帧图像进行特征点匹配后,利用这些特征点的3D坐标及2D像素坐标,PnP可以计算出当前帧图像的R、t,即在世界坐标系下的R、t。场景二:输入匹配特征点在上一帧的2D像素坐标、在上一帧相机坐标系下的3D坐标、在当前帧的2D像素坐标...

2020-04-01 12:52:56 1091 1

原创 SLAM前端:PnP(一)DLS、P3P

PnP是一类问题的统称,是指通过多对点的3D位置及2D投影坐标,来估计相机位姿R、t。场景一:视觉slam中在初始化后可以知道空间中一些点在世界坐标系下的坐标,在下一帧图像进行特征点匹配后,利用这些特征点的3D坐标及2D像素坐标,PnP可以计算出当前帧图像的R、t,即在世界坐标系下的R、t。场景二:输入匹配特征点在上一帧的2D像素坐标、在上一帧相机坐标系下的3D坐标、在当前帧的2D像素坐标...

2020-04-01 12:22:08 2018

转载 SLAM学习资料

1.PnP算法简介与代码解析(视频+PPT课件+代码解析)链接:https://pan.baidu.com/s/1d9e0FaIvK_s8m1pMJvNXtg 密码:hf222.LeastSquare_and_gps_fusion(视频+PDF)链接:https://pan.baidu.com/s/1hi-fvkGwNM40esUueIDQzQ 密码:upcc3.Scan Matc...

2020-03-31 00:11:44 578

原创 SLAM前端:本质矩阵、基础矩阵、单应矩阵

本质矩阵描述了相机内参已知的情况下同一个点不同视角下的关系,5自由度。即已知同一个点在两帧图像下的坐标,两个坐标、相机内参、本质矩阵满足对极约束条件(1-1)。基础矩阵描述了同一个点在不同视角下的关系,7自由度。单应矩阵描述了同一平面上的点在不同视角下的关系、即两个相机坐标系下的变换关系,9自由度。1 本质矩阵(Essential Matrix)本质矩阵由对极约束定义,对极约束的推...

2020-03-30 13:34:02 1399

原创 SLAM前端:对极几何、三角测量

1 对极几何对极几何在两帧的图像中,其中包含n个匹配的特征点,用于估计相机的位姿:旋转矩阵R与平移向量t。一般只在单目SLAM初始化过程中使用。情景如图,两幅图分别为相机在两位置的图像,共同观测到P点。可以理解为,相机从位置变换到位置,旋转平移矩阵分别为R、t。现在需要求解R、t。空间中的一对匹配点如图所示,左图投影点像素坐标,右图投影点。以左相机相机坐标系为参考坐标系有:...

2020-03-30 12:35:32 1076

原创 视觉SLAM:视觉SLAM中的李群与李代数、左乘扰动模型

SLAM中对矩阵求导数的应用场景?什么情况下用到李代数左乘扰动模型求导数?为什么不能用李群求导?李群与李代数的关系?李代数左乘扰动的理解?1 李群与李代数在SLAM中的用途视觉SLAM中用李群表示相机位姿T,用李代数求导数。对于同一个特征点,如果上一时刻得到该点相机坐标系下的三维坐标为P,当前时刻观测到相机坐标系下的坐标为Z,则两时刻相机位姿变化矩阵为T,有如下公式:...

2020-03-29 23:32:24 1393 1

原创 最优化八:高斯牛顿法、LM法

1 高斯牛顿法(Gauss-Newton)针对优化问题求解x使得f(x)取得最小值,采用高斯牛顿法,步骤如下:step1:给定初始点step2:对于第i此迭代,求解雅克比矩阵及函数值step3:求解增量方程,得到step4:计算step5:如果足够小,或者迭代次数达到阈值,停止,否则重复step2-5证明过程如下:对函数f(x)在处进行一阶泰勒展开得到: ...

2020-03-27 12:23:00 5795

原创 最优化七:一维搜索法

0 一维搜索法最优化的目的是优化目标:,优化思路是迭代计算: (1)计算优化方向(2)计算优化步长优化方向一般是负梯度方向或者设计二阶偏导数。但是某些情况下导数很难计算。这时需要自己设计一个优化方向。当优化方向已知时,如何得到优化步长即为一维...

2020-03-27 10:46:32 2185

原创 最优化六:牛顿法(牛顿法、拟牛顿法、阻尼牛顿法)

牛顿法将目标函数近似为二阶函数,沿着牛顿方向进行优化(包含了Hession矩阵与负梯度信息)。阻尼牛顿法在更新参数之前进行了一维搜索确定步长,确保沿着下降的方向优化。拟牛顿法用常数矩阵近似替代Hession矩阵或Hession矩阵的逆矩阵,不用求偏导与求逆,简化运损。1 牛顿法1.1 算法流程梯度下降法利用了负梯度方向进行迭代,算法如下:...

2020-03-26 14:17:36 9642

原创 最优化五:梯度法(梯度下降法、最优梯度法、共轭梯度法)

1 梯度下降法函数在某一点的梯度是,在该方向单位步长上升最快的向量。梯度下降法是利用待优化变量,沿着负梯度方向不断迭代寻找最优值。直观理解: 梯度下降法算法流程: (PPT画个图可真难)梯度下降法证明:通过泰勒展开表达式证明沿...

2020-03-25 11:40:18 15675 3

原创 最优化方法四:线性规划与非线性规划

1 线性规划与非线性规划的区别线性规划问题:目标函数与约束条件均为优化变量的线性函数,不涉及变量的耦合与高次。注意线性规划的约束条件也可以是不等式约束。表达式如下: 非线性规划问题:目标函数或约束函数是优化变量的非线性函数。根据目标函数和约束函数的不同可以分为:二次规划、几何规划、最小二乘。...

2020-03-24 15:41:33 20258

原创 最优化方法三:等式约束优化、不等式约束优化、拉格朗日乘子法证明、KKT条件

1 等式约束优化问题等式约束问题如下:2 不等式约束优化问题

2020-03-24 00:10:56 20904 26

原创 最优化方法二:凸集、凸函数与凸优化

凸优化最基础的优化方法,设定凸函数、凸集合条件,满足该条件的优化问题可以方便地求解,同时非凸优化问题可以转化成凸优化问题求解,这是凸优化最有价值的地方。1 凸集凸集定义:对于集合D,若对于任意两点满足: 并且该连线上任一点处于集合中,则集合D...

2020-03-23 22:46:17 3630 1

原创 最优化方法一:微分求极值

1 一元函数求极值一元函数的极值通过导数判定,(前提是要有导数)。首先求解驻点,令:其次,判断驻点是否为极值点。2 多元函数求极值多元函数通过微分求解极值需要用到Hession矩阵。2.2 Hession矩阵Hession是二阶偏导数矩阵,是2*2对称方阵,具体形式如下:其性质如下:二元函数的极值判定过程如下:2.1多元函数极值多元函数的求解过程通过二元函数...

2020-03-23 12:40:49 8313

原创 粒子滤波(PF)

算法流程:1、预测:根据上一时刻状态进行粒子采样。2、更新:每一个粒子携带观测值,用观测值计算该粒子的匹配程度,也就是权值。3、重采样:根据权重大小对粒子进行重采样,权重大的粒子重复的概率较大,权重较小的粒子重复概率小。以2D激光与轮式里程计为例,机器人首先根据轮式里程计得到一步预测值,然后在该预测值的基础上播撒粒子,每一个粒子代表了对状态值的随机采样,完成预测。然后...

2020-01-07 17:34:18 1044

原创 无迹卡尔曼滤波(UKF)

无迹卡尔曼滤波算法用于解决系统方程非线性的情况。无迹卡尔曼滤波算法采用无迹变换对状态值进行采样,采样2n+1个sigma点用于计算均值与协方差。相比于EKF对系统方程线性化,无迹卡尔曼滤波近似程度更高。系统方程:状态预测:观测量计算:状态更新:过程推导:​​​​​​​​​​​​​​无迹变换:一般用离散采样点恢复一种分布,采样点越多,近似度越高,但计算量也越大,比如蒙...

2020-01-07 10:55:01 6897

原创 卡尔曼滤波(KF)与扩展卡尔曼滤波(EKF)讲解与推导

卡尔曼滤波系统方程: 为状态转移矩阵,为控制矩阵,为控制向量,为白噪声,对应状态的每一个分量,均值为0,方差为,服从高斯分布。基本假设 下一个状态是前一个状态的线性函数,观测量是状态量的线性函数。预测 ...

2019-12-03 10:50:19 5305 1

原创 ubuntu16.04/ros相关

新建rosbuild_ws与catkin_ws并存:mkdir rosbuild_wscd rosbuild_wsrosws init . ~/catkin_ws/develmkdir srcrosws set srcrosws update src这样rosbuild目录下的src就可以放独立的package。但是ROS的路径还是在catkin_ws底下,每次新开一个终端都...

2019-04-22 21:12:35 560

原创 windows10+ubuntu14.04 重装系统

为了重装系统时节省点时间:1.准备windows和Ubuntu的.iso文件,U盘2.首先制作windows安装盘,进入安装界面把所有的分盘全部删除,或者CD分好后装在C中3.制作Ubuntu安装盘,开机时进bios,从bios进安装盘,接下来设置。 3.1选择空闲,点“+”,选主分区,选/boot分8个G(内存的两倍) 3.2选择空闲,点“+”,逻辑分区,选swa...

2019-03-21 22:25:19 416

原创 ROS工作空间永久修改环境变量

echo "source ~/catkin_ws/devel/setup.sh" >> ~/.bashrc 

2018-07-25 09:21:17 4572

原创 error while loading shared libraries: libg2o_core.so: cannot open shared object file: No such file o

在运行ch6中的g2ocurfitting时,出现的错误。改正方法如下:sudo gedit /etc/ld.so.conf添加如下代码:/usr/local/lib运行:sudo ldconfig参考网址:点击打开链接https://www.cnblogs.com/lizhongpingchn/p/7881368.html...

2018-06-28 11:08:42 4588 2

原创 ubuntu14.04安装octomap

1、下载 https://github.com/OctoMap/octomap/tree/v1.6-fixes2、解压并进入mkdir buildcd buildcmake ..make3、验证bin/octovis octomap/share/data/geb079.bt4、安装过程一开始安装最新版本,提示N多错误,主要是找不见octovise,参考如下网址进行安装,原因可能是与ros已有...

2018-04-13 15:34:15 770

空空如也

空空如也

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

TA关注的人

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