
SLAM
dieju8330
莫道黯然銷魂,何處柳暗花明
博客迁移☞http://epsilonjohn.club/
展开
-
Eigen::四元数赋值
无效赋值Eigen::Matrix4f gnss_of_lidar;...// 无效赋值Eigen::Quaternionf q=Eigen::Quaternionf::Identity();q.matrix()=gnss_of_lidar.block(0,0,3,3);有效赋值Eigen::Matrix4f gnss_of_lidar;...// 有效赋值Eigen::Matrix3f R=gnss_of_lidar.block(0,0,3,3).matrix(原创 2020-12-18 11:23:46 · 2727 阅读 · 0 评论 -
GTSAM学习::Stereo(1)SteroVOExample
Stereo(1)SteroVOExample这是一个3D 双目视觉里程计的例子,机器人在原点启动,向前移动1米,双目观测到3个landmark已知:双目相机内参,基线 双目观测到的对应的landmark像素坐标求解:相机位姿 landmark的坐标头文件#include <gtsam/geometry/Pose3.h>#include <gtsam/geometry/Cal3_S2Stereo.h>#include <gtsam/no.原创 2020-07-23 09:47:16 · 661 阅读 · 2 评论 -
GTSAM学习::Example(4)SelfCalibrationExample
Example(4)SFMExample基于VisualSLAMExample,但是标定数据还没有固定,在进行SFM的同时估计标定参数引入头文件1、模拟数据// For loading the data#include "SFMdata.h"2、类型(2D点)// Camera observations of landmarks (i.e. pixel coordinates) will be stored as Point2 (x, y).#include <g.原创 2020-07-22 10:05:04 · 460 阅读 · 0 评论 -
GTSAM学习::Example(3)SFMExample
Example(3)SFMExample使用模拟的数据求解SFM问题模拟生成一些路标点和一些相机位姿 固定第一个路标点(固定尺度),固定第一个位姿(设置先验) 求解 剩下的位姿以及路标点引入头文件1. 数据模拟用来创建模拟数据的头文件// For loading the data, see the comments therein for scenario (camera rotates around cube)#include "SFMdata.h"2. 2..原创 2020-07-10 00:13:47 · 828 阅读 · 0 评论 -
GTSAM学习::Example(2)CameraResectioning(重投影)
Example(2)CameraResectioning求解相机Resectioning问题已知:相机内参 若干世界坐标系3D点 3D点对应的2D像素点观测值求解相机位姿引入头文件#include <gtsam/inference/Symbol.h>#include <gtsam/nonlinear/LevenbergMarquardtOptimizer.h>#include <gtsam/geometry/SimpleCamera...原创 2020-07-09 22:52:42 · 1241 阅读 · 0 评论 -
GTSAM学习::Example(1)SimpleRotation
Example(1)SimpleRotation这是个超级简单的例子,根据一个先验信息来优化一个旋转角度。这个示例将对带有单个因子的单个变量执行一个相对简单的优化。引入头文件1. 2D旋转#include <gtsam/geometry/Rot2.h>2. 符号表示系统中的每个变量(pose)都必须使用一个惟一的key进行标识,我们可以使用keys (1, 2, 3, ...) or symbols (X1, X2, L1),这里使用symbols#.原创 2020-07-08 23:47:14 · 1438 阅读 · 0 评论 -
SLAM::g2o安装和使用
g2o安装和使用安装依赖sudo apt-get install libeigen3-dev libsuitesparse-dev qtdeclarative5-dev qt5-qmake下载源码git clone https://github.com/RainerKuemmerle/g2o.git开始编译cd g2omkdir buildcd buildcmake ..make安装sudo make install安装成功之后,运行会出现链接动态库失败原创 2020-05-30 08:23:11 · 6762 阅读 · 3 评论 -
Eigen::常用操作[转]
Opencv::Mat 与 Eigen互转Opencv::Mat转Eigen#include <Eigen/Dense>#include <iostream>#include <opencv2/core/eigen.hpp>#include <opencv2/opencv.hpp> using namespace std;usi...转载 2020-04-28 23:10:46 · 2135 阅读 · 0 评论 -
VSLAM::[手写VIO_课堂笔记]第四讲(下)_基于滑动窗口算法的VIO系统原理
1. 第四讲(下)_基于滑动窗口算法的VIO系统1.1. 滑动窗口算法1.1.1. 图的表示解释: (假设矩阵左上角元素索引(1,1))Λ1\Lambda_1Λ1: (1,2)元素不为空, 表示第1个顶点与第2个顶点之间的残差r12r_{12}r12与顶点1\2有关系Λ2\Lambda_2Λ2: (1,3)元素不为空, 表示第1个顶点与第3个顶点之间的残差r13r_{...原创 2020-02-11 22:16:45 · 1134 阅读 · 0 评论 -
VSLAM::[手写VIO_课堂笔记]第四讲(上)_基于滑动窗口算法的VIO系统原理
1. 第四讲(上)_基于滑动窗口算法的VIO系统原理1.1. 高斯分布到信息矩阵1.1.1. SLAM问题的模型1.1.2. 举例上面省略了一些步骤∑11=Conv(x1,x1)=E([x1−E(x1)]2)\begin{aligned} \sum_{11}=Conv(x_1,x_1)=E([x_1-E(x_1)]^2)\end{aligned}11∑=Conv...原创 2020-02-11 22:09:47 · 513 阅读 · 0 评论 -
VSLAM::[手写VIO_课堂笔记]第三讲(上)_基于优化的IMU与视觉信息融合(最小二乘问题)
1. 第三讲(上)_基于优化的IMU与视觉信息融合(上)第三讲(上):(1)最小二乘问题的求解推导(2)其中有LM算法的相关推导以及鲁棒核函数的推导1.1. 最小二乘与非线性优化1.1.1. 最小二乘1.1.2. 非线性最小二乘1.1.2.1. LM算法增量ΔX\Delta XΔX表达式推导求解如下:(JTJ+μI)ΔX=−JTf⟹(VΛVT+μI)...翻译 2020-02-08 23:26:45 · 677 阅读 · 0 评论 -
Eigen::关于旋转(旋转向量\旋转矩阵\四元数\欧拉角)的初始化和转换以及应用
Eigen::关于旋转(旋转向量\旋转矩阵\四元数\欧拉角)的初始化和转换以及应用code:#include <iostream>#include <eigen3/Eigen/Core>#include <eigen3/Eigen/Geometry>using namespace std;using namespace Eigen;i...原创 2020-02-08 18:19:41 · 2883 阅读 · 0 评论 -
VSLAM::[手写VIO_课堂笔记]第二讲_IMU测量模型+误差模型+运动模型&&欧拉角微分推导
1. 第二讲_IMU相关内容1.1. 旋转运动学1.1.1. 运动半径rrr对θ\thetaθ的求导,再写成矩阵形式下图中:半径a和高度h固定\color{red}{下图中:半径a和高度h固定}下图中:半径a和高度h固定从结果可以看到,矩阵形式的导数表示可以写成矩阵形式ω×r\omega \times rω×r,左侧为反对称矩阵w1.1.2. 考虑更复杂的情况,假设旋转坐标系下的...翻译 2020-02-07 22:16:44 · 1381 阅读 · 0 评论 -
VSLAM::[手写VIO_课堂笔记]第一讲_预备知识
1. 四元数的基本运算主要运算四元数乘法乘法性质满足结合律不满足交换律乘积的模等于模的乘积乘积的逆等于各个四元数的逆以相反的顺序相乘其他运算*四元数部分参考:旋转矩阵、欧拉角、四元数理论及其转换关系2. 四元数与旋转向量简单来说,四元数的思想就是把方向余弦矩阵的三次旋转表示为只绕一个旋转轴旋转一次完成,因此可以用4个数来表示这个过程,其中包...翻译 2020-02-06 22:51:39 · 872 阅读 · 0 评论 -
realsense SDK2.0学习::(二)D435深度图片对齐到彩色图片-SDK实现
D435深度图片对齐到彩色图片开发环境:ubuntu 16.04LTS Intel Realsense SDK2.0 C++ Opencv3.4 CMakeIntel Realsense SDK2.0 貌似已经有了红外摄像头和RBG摄像头的标定数据,本例参照example里面的例程Align进行简化和修改,注释翻译。这里是直接用SDK的对齐了,迟点会出自己实现的对齐方案。...原创 2018-12-27 23:39:02 · 14350 阅读 · 18 评论 -
realsense SDK2.0学习::(三)D435深度图片对齐到彩色图片-代码实现
D435深度图片对齐到彩色图片深度图片对齐彩色图片,就是我们有深度图和彩色图,要知道彩色图中像素点所对应的深度值,需要利用深度图以及相机参数进行转换,本文先以进行原理推导,再给出实际运行代码 一、确定所需变量深度图Id 深度摄像头获取 彩色图Ic RBG摄像头获取 深度摄像头内参 自行标定或直接realsense sdk2.0 获取...原创 2018-12-27 23:41:26 · 16404 阅读 · 27 评论 -
linux:编译、使用共享库Sophus
编译、使用共享库在学习SLAM过程中需要用到Sophus库来计算李群李代数这些。下文将描述如何从github下载该库并且使用该库一、下载和验证(书中要求使用非模板类的Sophus库)git clone https://github.com/strasdat/Sophus.gitcd Sophusgit checkout a621ff二、编译 mkdir ...原创 2018-12-24 12:50:34 · 1549 阅读 · 0 评论 -
realsense SDK2.0学习::(四)D435深度图片对齐到彩色图片-Eigen实现
D435深度图片对齐到彩色图片-Eigen实现为了更深入了解深度图对齐彩色图的过程,本例将坐标变换部分使用Eigen库来实现本例基本按上篇:Intel Realsense SDK2.0学习::(三)D435深度图片对齐到彩色图片-代码实现 ,只不过是将坐标运算部分用Eigen实现而不是直接用 rs2 库实现原理部分见上一篇,这里直接给代码 :一、不使用MKL加速#defi...原创 2018-12-30 00:25:15 · 5548 阅读 · 7 评论 -
realsense SDK2.0学习::(五)D435利用深度信息做测距工具
D435利用深度信息做测距工具利用D435的深度信息,可以做出类似望远镜测距的效果,但是距离比较短,估计撑死10+m,但是0.1米到6米这段距离还是挺准确的。先上个效果图:这里显示的深度图是原深度图(没有对齐),已经对齐的深度图用来保存深度信息了,就没显示出来。思路:取深度信息和彩色图 将深度图对齐到彩色图,具体可参见《Intel Realsense SDK2.0...原创 2018-12-31 00:03:57 · 20745 阅读 · 20 评论 -
linux:ubuntu16.04LTS 安装PCL1.8
ubuntu16.04LTS 安装PCL1.8PCL1.9 貌似没有visualization ,不知道为什么不能 include头文件,因此重新下载PCL1.8 ,编译,安装一、下载源代码https://github.com/PointCloudLibrary/pcl/releases找到PCL1.8 二、安装必要的依赖sudo apt-get install gi...原创 2018-12-26 00:43:29 · 4467 阅读 · 2 评论 -
Opencv2.4学习::HOG特征
HOG特征一、什么是HOG特征是关于目标区域梯度方向的特征 是一个向量 二、如何提取HOG特征图片归一化处理,减弱光线、阴影等影响 图像梯度计算,一般用卷积方法,水平模板为[-1,0,1],竖直模板为[-1,0,1]T,看到这个,很容易联想到边缘检测,实际上,这个梯度很大程度上就代表了图像的边缘轮廓信息 统计梯度方向,将目标窗口(win:64*128)继续细分为块(bloc...原创 2019-01-23 21:20:59 · 1013 阅读 · 0 评论 -
2D激光SLAM::ROS-AMCL包源码阅读(一)关于pf粒子的数据结构
结构体:单个粒子// Information for a single sampletypedef struct{ // Pose represented by this sample pf_vector_t pose; // Weight for this pose double weight; } pf_sample_t;粒子的聚类?/...原创 2019-07-07 15:56:30 · 547 阅读 · 0 评论 -
SLAM::g2o学习例程(一)曲线拟合
SLAM::g2o学习例程(一)曲线拟合使用g2o库对曲线进行拟合g2o库使用的是截至2019年7月10日github上的最新版本直接上代码,带注释#include <iostream>#include <iostream>#include <g2o/core/base_vertex.h>#include <g2o/co...原创 2019-07-10 16:20:18 · 899 阅读 · 2 评论 -
realsense SDK2.0学习::(一)读取D435视频【彩色&&深度】
读取D435图片开发环境:ubuntu 16.04LTS Intel Realsense SDK2.0 C++ Opencv3.4 CMake 网上关于Inetl Reaslsense SDK2.0的教程甚少,这里边学习边做系列教程这个没什么原理好讲,直接上代码以及注释:#include <iostream>#include<stdlib.h&g...原创 2018-12-27 23:36:10 · 9961 阅读 · 7 评论