![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
SLAM
文章平均质量分 75
机器人学渣
Freedom of thoughts.
展开
-
SLAM--三角化ceres 优化
ceres 优化三角化过程原创 2024-07-02 09:40:30 · 691 阅读 · 0 评论 -
impedance control for robot arm through C++
【代码】impedance control for robot arm through C++原创 2023-11-17 16:49:18 · 116 阅读 · 0 评论 -
ROI tracking by using OpenCV
ROI tracking by using OpenCV。原创 2023-09-19 22:44:32 · 292 阅读 · 0 评论 -
Non-linear Optimization
Resolve least square problem.原创 2023-04-18 21:11:45 · 532 阅读 · 0 评论 -
SLAM--位姿估计 (扩展卡尔曼滤波EKF/高斯牛顿非线性优化)
目录一、扩展卡尔曼滤波EKF求解1.矩阵伴随基础2.卡尔曼滤波基础3.位姿推导二、非线性优化(高斯牛顿迭代)1.高斯牛顿迭代基础2.推导一、扩展卡尔曼滤波EKF求解1.矩阵伴随基础李代数的伴随矩阵:ad(ξ∧)=ξ⋏=[ρϕ]⋏=[ϕ∧ρ∧0ϕ∧]ad(\xi^\land )=\xi ^⋏=\begin{bmatrix} \rho \\ \phi \end{bmatrix} ^ ⋏= \begin{bmatrix} \phi^ \land \quad \rho^\land \\ 0 \quad原创 2022-04-27 20:41:17 · 1091 阅读 · 0 评论 -
SLAM--卡尔曼滤波、粒子滤波
目录一、卡尔曼滤波1、条件高斯PDF2.广义卡尔曼步骤:3.扩展卡尔曼滤波EKF二、粒子滤波1.贝叶斯滤波2. 粒子滤波算法一、卡尔曼滤波1、条件高斯PDF存在多元正态分布(x,y)(x,y)(x,y),则联合高斯密度函数为:p(x,y)=N([μxμy],[∑xx∑xy∑yx∑yy])(3)p(x,y)=\bm N(\begin{bmatrix} \bm \mu _x\\ \\\bm \mu _y \end{bmatrix},\begin{bmatrix} \bm {\sum} _{xx}&a原创 2022-04-23 00:16:46 · 1365 阅读 · 0 评论 -
SLAM--intel realsense2在ORB SLAM2 和 ORB SLAM3下建图和重定位(ubuntu 20.04, opencv 4.2.0 以上)
用intel 的realsense相机实现orb-slam2(ubuntu 20.04系统):链接地址:github:https://github.com/zouyuelin/ORB_SLAM2_Changed 建图和重定位效果步骤1.编译g2ocd g2o_with_orbslam2/mkdir buildcd buildmake -jsudo make install2.构建ROS工作空间mkdir -p ~/catkin_ws/srccd ~/catki原创 2022-02-24 16:20:39 · 5204 阅读 · 50 评论 -
tensorflow keras 搭建相机位姿估计网络--例
主要展示keras 的使用方法,搭建网络模型的步骤。目录概要一、数据集的处理二、网络模型的搭建三、模型的训练四、加载保存的模型概要这个网络是利用两帧图像,预测相机的位姿变换矩阵,总共6个自由度网络的输入: [image_ref , image_cur]网络的输出: [tx , ty , tz , roll , pitch , yaw] 一、数据集的处理数据集的格式:# image_ref image_cur tx ty tz roll(x) pitch(原创 2022-01-21 15:40:32 · 1400 阅读 · 1 评论 -
SLAM--搭建自己的视觉里程计VO-RGBD相机(一)
自己搭建SLAM系统—视觉里程计,没有包括回环检测和BA 位姿优化。目录一、 视觉里程计VO二、具体代码三、调用代码实现参考一、 视觉里程计VO定义camera类:用于相机相关的参数和坐标系变换方法:class camera{public: typedef shared_ptr<camera> Ptr; camera(){} static cv::FileStorage configfile; static cv::Mat K; //Mat类原创 2022-01-21 12:12:39 · 3574 阅读 · 1 评论 -
ubuntu 20.04上配置 QT_ROS的插件
github源码位置:https://github.com/ros-industrial/ros_qtc_plugin/releases下载:ROSProjectManager-0.4.1-Linux-x86_64.zip 以及 Source code (zip) 两个文件;原创 2021-11-01 21:11:05 · 5315 阅读 · 32 评论 -
SLAM--深度滤波器
目录一、归一化积二、一、归一化积设p1(x)p_1(x)p1(x)和p2(x)p_2(x)p2(x)是两个不同的概率密度函数,归一化积为:p(x)=η⋅p1(x)p2(x)p(x)=\eta \cdot p_1(x)p_2(x)p(x)=η⋅p1(x)p2(x)其中:η=∫p1(x)p2(x)dx\eta=\int p_1(x)p_2(x)\mathrm{d}xη=∫p1(x)p2(x)dxη\etaη是为了满足概率公理的归一化常数。定理:对于p(x∣y1,y2)p(x|y原创 2021-08-11 11:32:52 · 508 阅读 · 1 评论 -
SLAM--LSD_SLAM在高版本系统中运行(ubuntu20.04 ROS-noetic)
LSD_SLAM原地址:https://github.com/tum-vision/lsd_slam修改后github地址:https://github.com/zouyuelin/LSD_SLAM_Changed.gitLSD_ROOM数据集: https://vision.in.tum.de/research/vslam/lsdslam1.下载usb_cam到ROS的工作目录:cd ~/catkin_ws/src/git clone https://github.com/bosch-ros原创 2021-08-04 15:41:34 · 1148 阅读 · 7 评论 -
SLAM--单目尺度漂移(相似变换群Sim3)
参考文献1.Horn, Berthold, K, et al. Closed-form solution of absolute orientation using unit quaternions[J]. Journal of the Optical Society of America A, 1987.2.Strasdat H . Local Accuracy and Global Consistency for Efficient SLAM[J]. Imperial College London,原创 2021-08-02 14:48:35 · 1663 阅读 · 0 评论 -
SLAM--单双目相机标定
目录一、单目标定标定原理标定过程去畸变代码二、双目标定标定原理标定过程一、单目标定标定原理对于单目的相机,存在投影关系:Puv=1sK∗[Rcw ∣ Tcw]∗Pw 即[xy]=1sK⋅[r1 r2 r3 t]⋅[XYZ1]P_{uv}=\frac 1 {s} K*[R_{cw}\space|\space T_{cw}]*P_w\\~\\即\quad\begin{bmatrix} x\\y\end{b原创 2021-07-26 21:58:43 · 1733 阅读 · 0 评论 -
SLAM--各种开源项目
SLAM优秀开源工程最全汇总:https://blog.csdn.net/albertleebob/article/details/106548818?utm_medium=distribute.pc_relevant.none-task-blog-2defaultbaidujs_baidulandingword~default-0.base&spm=1001.2101.3001.4242转载 2021-07-24 21:16:09 · 656 阅读 · 0 评论 -
SLAM--三角测量SVD分解法、最小二乘法及R t矩阵的判断
目录一、三角测量方法一:SVD分解法的推导方法二:最小二乘法求解二、ORB_SLAM2 三角测量源码:三、利用Eigen源码实现三角测量:方法一:SVD分解法方法二:最小二乘法求解(速度最快)方法三:利用OpenCV自带函数四、对求解的R t筛选的方法:一、三角测量方法一:SVD分解法的推导我们假设在相机坐标1和2存在这样的重投影关系:[u1v11]=1s1KT1wPw \begin{bmatrix} u_1\\v_1\\1\end{bmatrix}=\frac 1 {s_1}KT_{1w}原创 2021-07-19 23:34:25 · 3467 阅读 · 6 评论 -
SLAM--DBow3
DBoW3库的使用:原文链接:https://blog.csdn.net/weixin_43821376/article/details/101480247作者的demo:#include<iostream>#include<opencv2/opencv.hpp>#include<DBoW3/DBoW3.h>#include<string>using namespace std;using namespace cv;int main(in转载 2021-07-17 13:37:53 · 429 阅读 · 0 评论 -
SLAM--位姿图优化和PnP求解
目录一 、位姿优化推导二、 利用g2o优化三、 全部源码参考一 、位姿优化推导我们把相机位姿和空间点的优化称为BA 优化,这种优化在小空间、短时间内效果不错,当特征点的随时间变多时,BA的计算效率就会下降,为了保证效率,我们可以在实际过程中只对位姿进行优化。(另外如果一定需要BA优化,可以开启两个线程,一个BA线程,一个VO线程。)这里推导位姿的优化:我们规定第iii个相机的位姿为Tw,iT_{w,i}Tw,i,所以有:ΔTi,j=Tw,i−1⋅Tw,j\Delta T_{i,j}=T_{w,i原创 2021-07-16 14:53:13 · 2148 阅读 · 2 评论 -
SLAM--Pangolin显示相机位姿
CMakeLists.txtcmake_minimum_required(VERSION 3.5)project(testPangolin LANGUAGES CXX)set( CMAKE_BUILD_TYPE "Release" )set( CMAKE_CXX_FLAGS "-std=c++11 -O3" )# Eigen3find_package( Eigen3 REQUIRED )# pangolingfind_package( Pangolin REQUIRED)#Sophu原创 2021-07-13 23:13:17 · 849 阅读 · 2 评论 -
SLAM--G2o实现BA优化
利用G2o实现BA优化—学习笔记目录前言一、G2o简单例程二、利用G2o实现BA优化2.1 初始化G2o求解器2.2 添加顶点2.3 添加边2.4 优化2.5 获取优化的值2.6 保存为g2o文件三、优化后的程序参考链接前言使用G2o需要图论的知识。一般来说,要优化的参数就是顶点,边就是顶点之间的映射关系。BA优化,即Bundle Adjustment,需要对相机姿态和特征点同时进行优化,以求得到最优的状态。对于优化的参数:x=[ξ1ξ2...ξm∣p1p2...pn]T\pmb x=[\x原创 2021-07-12 19:02:09 · 3650 阅读 · 0 评论 -
SLAM--BA优化
目录一、BA优化一、BA优化BA(Bundle Adjustment)优化,是指从视觉重建中提炼出最优的 3D3D3D 模型和相机参数(内参数和外参数)。从每一个特征点反射出来的几束光线(bundles of light rays),在我们把相机姿态和特征点空间位置做出最优的调整 (adjustment) 之后,最后收束到相机光心的这个过程。和重投影不同的是,BA优化是对多段相机的位姿和位姿下的路标点的空间坐标进行优化。我们令位姿变量为ξ\xiξ,...原创 2021-07-06 22:49:44 · 7540 阅读 · 0 评论 -
机器人学(机构学)笔记
另外,如果存在相对角速度ωrel\bm \omega_{rel}ωrel,则存在下列关系:Vrel=ωrel×RBAarel=ωrel×Vrel\bm V_{rel} = \bm \omega_{rel} \times \bm R_{\small{BA}} \\\bm a_{rel} = \bm \omega_{rel} \times \bm V_{rel }Vrel=ωrel×RBAarel=ωrel×Vrel例:补充:...原创 2021-06-27 12:24:06 · 411 阅读 · 0 评论 -
SLAM--求解2D-2D图像间的运动
目录一、数学基础1.1 反对称矩阵的性质1.2 奇异值分解二、本质矩阵的推导三、求解本质矩阵Rt参考文献一、数学基础1.1 反对称矩阵的性质我们令A=[0−a3a2a30−a1−a2a10]A=\left[ {\begin{matrix}0&{ - {a_3}}&{{a_2}}\\{{a_3}}&0&{ - {a_1}}\\{ - {a_2}}&{{a_1}}&0\end{matrix}} \right]A=⎣⎡0a3−a2−a30a1原创 2021-06-05 22:22:16 · 248 阅读 · 2 评论 -
SLAM--最小化重投影误差
目录一、相机模型二、最小化重投影误差2.1 优化位姿2.2 优化路标一、相机模型设相机坐标系下的左边点[X,Y,Z]T[X,Y,Z]^T[X,Y,Z]T,相机物理成像的其次坐标为[X′,Y′,1][X',Y',1][X′,Y′,1],成像焦距为fff,由相似三角形的关系可以得到:X′=fXZ Y′=fYZ(1)X'=f\frac X Z\\ ~\\ Y'=f\frac Y Z \tag{1}X′=fZX Y′=fZY(1)设像素坐标为[u,v]T[u,v]^T[u,v]T原创 2021-06-02 21:11:43 · 3339 阅读 · 0 评论 -
SLAM--状态估计
目录一、高斯密度函数二、联合高斯概率密度函数分解推导三、线性高斯系统状态估计3.1 离散状态的批量估计3.2 最大后验估计的协方差一、高斯密度函数设X=[X1X2...Xn]T\bm X=\begin{bmatrix} \bm X_1 &\bm X_2 &... &\bm X_n\end{bmatrix}^TX=[X1X2...Xn]T是n维随机向量,x=(x1,x2,...,xn)T\bm x = \begin{pmatrix} x_1,x_2,...,x_n\e原创 2021-05-29 20:14:39 · 1243 阅读 · 0 评论 -
SLAM--线性化求解估计位姿
目录前言一、旋转矩阵SO(3)群前言指数形式的线性化:若存在一个无穷小量x0x_0x0,则对指数ex0e^{x_0}ex0泰勒展开:ex0=1+x0+x022!+...+x0nn!e^{x_0}=1+x_0+ \frac {x_0^2} {2!}+...+\frac {x_0^n} {n!}ex0=1+x0+2!x02+...+n!x0n我们取一阶的泰勒展开:ex0≈1+x0e^{x_0}\approx 1+x_0ex0≈1+x0所以对于无穷小量δϕ\delta \phi原创 2021-05-22 14:15:19 · 749 阅读 · 0 评论 -
SLAM--非线性优化
目录一、最小二乘法二、求解增量方程一、最小二乘法回顾最小二乘问题:minxF(x)=12∑i=1N∥f(x)∥22\mathop {\min }\limits_x F(x) = \frac {1}{2}\sum\limits_{i = 1}^N {\left\| f(x)\right\|_2^2} xminF(x)=21i=1∑N∥f(x)∥22观察这个函数可以发现,它同二次函数一样,存在着极小值,要使得F(x)达到最小值,只需要令:∂F(x)∂x=0\frac {\partial原创 2021-05-20 21:52:23 · 364 阅读 · 0 评论 -
SLAM--李群李代数左扰动模型
一、数学基础对于两个非零向量:a=(x1,y1,z1)T,b=(x2,y2,z2)Ta = ({x_1},{y_1},{z_1})^\mathsf{T},b = ({x_2},{y_2},{z_2})^\mathsf{T}\\a=(x1,y1,z1)T,b=(x2,y2,z2)T则向量的内积:⟨b,a⟩=aTb=x1x2+y1y2+z1z2\left\langle {b,a} \right\rangle = a^\mathsf{T} b = {x_1}{x_2} + {y_1}{原创 2021-05-18 15:32:02 · 1336 阅读 · 0 评论 -
非线性优化:Ax=b求解的几种算法
原文链接:视觉SLAM中的数学——解方程AX=b与矩阵分解:奇异值分解(SVD分解) 特征值分解 QR分解 三角分解 LLT分解转载 2021-05-16 14:17:21 · 1441 阅读 · 0 评论 -
ORBSLAM2在ubuntu20.04上运行,实时单目摄像头(适用高版本的PCL,OpenCV4.2.0等)
在ubuntu20.04系统上利用高版本的OpenCV4.2.0,PCL1.10.0等库搭建ORBSLAM2前言: ORBSLAM2是一个众所周知的非常优秀的开源项目,但搭建原始的ORBSLAM2需要较旧版本的PCL,Boost,VTK 等库,如果库版本稍微高一点,编译项目可能就会失败,比如在较高版本的系统环境中,例如ubuntu20.04, OpenCV4.2.0等,这是最烦的地方。同时新版本比较有用的功能就无法使用了,例如OpenCV4.1.0版本以上可以利用CUDA加速来实现特征提取,这是个非常原创 2020-12-24 22:15:59 · 5330 阅读 · 61 评论