自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(101)
  • 资源 (3)
  • 收藏
  • 关注

原创 shell常实用命令

利用ssh远程执行服务器命令fuction expect_server(){ expect <<EOF set timeout 1000 spawn $@ expect { "(yes/no)?" {send "yes\r"; exp_continue} "asswor*" {send "${SERVER_PASSWD}\r"; exp_continue} eo...

2019-08-09 14:33:04 4358 1

原创 Fisher矩阵与自然梯度法

Fisher矩阵和自然梯度法是机器学习中重要的概念和方法,用于优化问题的求解。Fisher矩阵可以帮助我们理解参数空间的曲率,而自然梯度法则利用Fisher矩阵的信息来更好地学习函数。通过结合这两个概念,我们可以更有效地优化模型参数,并提高学习的效率和性能。

2024-03-04 22:56:04 1010

原创 信息矩阵、hessian矩阵与协方差矩阵

由此,我们便可以具体看出hessian矩阵与协方差矩阵之间的联系,当我们需要边缘化marginalize一个变量时,可以将信息矩阵求逆转化为相关的协方差矩阵,然后剔除掉变量后,再次求逆得到新的信息矩阵。如此我们可以将问题转化为一个最小二乘问题,同时我们看出信息矩阵与协方差的数学意义。本节探讨信息矩阵、hessian矩阵与协方差矩阵的关系,阐明边缘化的原理。,提取与b无关的矩阵A,再对A求逆,即得到marg 后的信息矩阵。以Marg b为例:需要先将信息矩阵(此例中为。)求逆,得协方差矩阵。

2024-02-23 11:28:04 971

原创 非精线搜索步长规则Armijo规则&Goldstein规则&Wolfe规则

如最速下降法,拟牛顿法这些常用的优化算法等,其中的线搜索步骤通常使用Armijo规则、Goldstein规则或Wolfe规则等。线搜索规则的选择直接影响了优化算法的性能和收敛速度,因此在应用中需要进行仔细的实验和调优。Goldstein规则是对Armijo规则的一种改进,它引入了一个额外的上界条件。Wolfe规则旨在确保步长既满足足够的下降条件,又满足足够的曲率条件,以保证收敛性和数值稳定性。Armijo规则是最简单的线搜索规则之一,它基于函数值的下降来决定步长。是Wolfe规则的参数,通常。

2024-02-03 22:18:45 1344

原创 牛顿法与拟牛顿法

文章目录牛顿法&拟牛顿法1 牛顿法2 拟牛顿法2.1 对称秩1校正2.2 DFP2.3 BFGS牛顿法&拟牛顿法设无约束优化问题:min⁡f(x), x∈Rn\min f(x),{\kern 1pt} \,x \in {R^n}minf(x),x∈Rn1 牛顿法基本思想,通过泰勒二阶展开,通过对泰勒展开求导,并令其等于0,从而求得极小值。将f(x)f(x)f(x)在xkx_kxk​处进行泰勒展开:f(x)≈f(xk)+Δf(xk)(x−xk)+12(x−xk)TΔ2f(xk)(

2024-01-30 21:39:38 976

原创 ubuntu程序性能分析

valgrind工具:valgrind是一个用于调试和性能分析的工具集,其中包括了多个工具,如memcheck、cachegrind等。你可以使用cachegrind工具来测量程序的缓存命中率。perf命令:perf命令是一个强大的性能分析工具,可以用于测量程序的各种指标,如CPU周期、缓存命中率等。以上工具可以帮助你测量程序的计算量,并提供各种性能指标和分析结果。time命令:time命令可以用于测量程序的执行时间。这将输出程序的执行时间,包括用户时间、系统时间和实际时间。

2024-01-12 14:33:20 537

原创 pythonPIL 将tif修改为jpg

请输入您需转换的文件路径及文件名:imagepath/img.tif,同样会在在imagepath会生成img.jpg文件。会提示:"请输入要转换的tif图片路径及名称: "则在imagepath会生成img.jpg文件。

2023-11-28 21:43:48 188

原创 李群&李代数:SO3 与so3 & SE3与se3 & SIM3

文章目录1 旋转*叉乘1.1 旋转矩阵的导数1.2 物理意义1.3 实例1.4 角轴与反对称矩阵2 SO3 与so32.1 so3 2 SO32.2 SO3 2 so33 SE3 与se33.1 se3 2 SE3:3.2 SE3 2 se34 SIM3 与sim35 Adjoint Map1 旋转*叉乘1.1 旋转矩阵的导数根据旋转矩阵的性质:RRT=IRR^T=IRRT=I,对两侧进行求导可得:R˙RT=−RR˙T\dot{R} R^T=-R\dot R TR˙RT=−RR˙T从而可知,R˙R

2023-11-21 16:33:18 197

原创 python SO3 & so3 BCH近似计算

【代码】python SO3 & so3 BCH近似计算。

2023-09-21 17:17:31 181

原创 margnalize&Huber&Jacibian测试Demo

当误差 r 大于阈值 δ 后,函数增长由二次形式变成了一次形式,相当 于限制了梯度的最大值。同时,Huber 核函数又是光滑的,可以很方便地求导。以经典特征点法为例:归一化坐标。Huber核函数使用说明。

2023-08-24 10:13:30 135

原创 GDB调试cmake工程

(5)指定某线程执行某gdb命令:thread apply 线程id gdb_cmd。(6)全部的线程执行某gdb命令:thread apply all gdb_cmd。(4)运行全部的线程:set scheduler-locking off。此时,可以将动态库对应的源文件及符号表导入到gdb,从而可以通过。info breakpoints(info b):查看所有的断点。(1)查看可切换调试的线程:info threads。(2)切换调试的线程:thread 线程id。n:next,下一步,不进入函数。

2023-07-04 17:01:22 1147

原创 远程访问(内网穿透)

远程:1804 ubuntu软件依赖:ssh,xrdp, cpolar本地:win10软件依赖:mstsc.exe(远程桌面)

2023-05-08 18:01:53 751 1

原创 STL的并行遍历:for_each(依赖TBB)和omp parallel

guided:循环迭代划分成块的大小与未分配迭代次数除以线程数成比例,然后随着循环迭代的分配,块大小会减小为chunk值。chunk的默认值为1。dynamic:动态调度迭代的分配是依赖于运行状态进行动态确定的,当需要分配新线程时,已有线程结束,则直接使用完成的线程,而不开辟新的线程。这个分配是静态的,线程分配规则根据for的遍历的顺序。其中,shared括号中说明所有线程公用的变量名,private括号中的变量为各个线程均独立的变量。当遍历的操作较多,这里sleep来模拟较多的工作,并行体现出优势。

2023-04-10 11:46:09 1110

原创 opencv parallel_for_使用及注意

parallel_for_用法

2022-08-31 16:55:14 1218

原创 点云对齐/轨迹对齐方法及论文讲解

对齐两个轨迹或者对齐两组点云所要求解的自由度包含两组坐标系的3个平移,3个旋转及一个放缩尺度共7个自由度。或者计算里程计的精度问题,得到里程计估计的时间离散位姿后以及轨迹位姿真值后,如何评判里程计的精度。为x轴方向,y轴位于三个点构成的平面上,垂直于x轴,z轴符合右手定则正交与x轴与z轴。在已知两组坐标系之间的旋转变换后,求解平移及尺度因子是相对比较简单的。分别为三个点构成的坐标系的基础向量在两个原始坐标系的表示。为对应z轴的单位向量,得到新坐标系单位矩阵构成的基向量。利用3个点分别建立新的坐标系,设。

2022-08-22 17:14:11 1877

原创 lint题目120 单词接龙 实现

单词变换算法

2022-08-12 17:40:05 187

原创 Lucas-Kanade 20 Years On 正反向/累加/合成求解算法

主要翻译及概述基于图像对齐的正向累加、正向合成、反向合成及反向累积迭代算法Forward additive algorithm、Forward Compositional algorithm、Inverse additive algorithm & Inverse Compositional algorithm对应代码下载地址-https://download.csdn.net/download/weixin_41469272/862451421981年提出的图像对齐的算法Lucas-Kanade在计算

2022-07-19 21:58:16 777

原创 欧拉角转换特殊情况(万向锁等)

文章目录问题说明欧拉角到旋转矩阵旋转矩阵到欧拉角万向锁与π\piπ结合测试代码问题说明旋转的表示方式有:角轴,旋转矩阵、四元数、欧拉角。具体见旋转矩阵、欧拉角、四元数及四元数插值欧拉角表示优点:理解友好;3个变量3个自由度缺点:奇异性(万向锁);同一个旋转可由多组欧拉角来表示,即一个旋转对应多组欧拉角。这篇文章从旋转矩阵转化欧拉角来分析这些情况。主要说明同一个旋转解析出不同欧拉角的特殊情况。首先提以下旋转矩阵概念:旋转矩阵根据内外旋可以写成左右乘的形式,左右乘的旋转矩阵是互相的转置。旋转矩

2022-05-11 14:48:32 1308

原创 单目初始化及尺度不确定

单目里程计:问题:通过单目相机图像序列,计算得到图像序列对应的相机位姿(R,t)(R,t)(R,t)两个特点:1、需要足够平移才能完成初始化2、尺度不确定及尺度漂移1、单目初始化需要相机足够的平移,才能够完成初始化。使用2D-2D的方式来估计两帧相机之间的位姿时,可以通过求解**H(单应矩阵homography)或F(基础矩阵fundamental)以及BA(bundle adjustment)**等方式来解析出相机的位姿。在近纯旋转(低偏移)的情况下,F阵解算失效,通过H和BA的方式可以

2022-04-21 14:38:21 2405 1

原创 三角化特征点(triangulation)方法及实现对比

三角化特征点(triangulation)方法及实现对比问题已知两帧相机在世界坐标下的位姿[R,t][R,t][R,t], 求两帧的共视点的3维坐标。设两帧为参考帧(reference)和当前帧(current),共视点ppp在两帧下的坐标分别为xrx_rxr​和xcx_cxc​,对应深度为drd_rdr​和dcd_cdc​。图像归一化齐次坐标为prp_rpr​和pcp_cpc​(非像素坐标)。pr=[urvr1],  pc=[ucvc1]p_r=\left[\begin{mat

2022-03-23 22:26:33 2817

原创 TUM RGBD数据集工具及使用

TUM RGBD数据集工具及使用1. 工具工具下载地址:https://vision.in.tum.de/data/datasets/rgbd-dataset/tools• add_pointclouds_to_bagfile.py 给bag中加入点云topic• associate.py 生成depth 和 rgb的匹配信息• evaluate_ate.py 绝对误差评估,常用• evaluate_rpe.py 相对误差评估• generate_pointcloud.py 生成点云数据•

2022-03-15 14:40:26 4742 5

原创 RGBD-slam和DVO-slam安装及运行

文章目录RGBD-slam1 下载2 编译3 运行DVO 编译运行:1.下载dvo-slam2.下载编译Sophus3.下载编译g2o4.修改dvo的几个package的CMakeLists.txt5. 编译dvo_slam6运行dvo_slamRGBD-slam1 下载(1)源码包下载cd <ros_ws>/srcgit clone https://github.com/felixendres/rgbdslam_v2.git(2) 修改以下文件:1)src/misc.cpp8

2022-03-14 21:30:56 2353

原创 ORB-Mono原理梳理

ORB-Mono原理梳理1. ORB主要特点:  1)ORB特征点;2)共视图;3)本质图的回环处理1)ORB特征点描述子相对SIFT轻量,节省计算时间。利用角点(Fast关键点)的尺度方向恢复角点因为相机旋转带来的方向变化,恢复角点方向,再计算描述子,才能得到更加准确的匹配关系。2)共视图用于局部BA优化,并辅助回环检测。共视图根据观测权重可以被删减为本质图(Essential graph),其包含单链的生成树(Spanning tree)。3)本质图用于回环处理时进行的全局BA优化。缩小计

2022-02-13 20:39:08 531

原创 H(单应矩阵homography),本质矩阵(Essential Matrix)和F(基础矩阵fundamental)

H(单应矩阵homography),本质矩阵(Essential Matrix)和F(基础矩阵fundamental)H矩阵适用于:1)特征点位于平面上;2)纯旋转,使用Faugeras 和 Lustman方法通过H阵解算出8种可能的(R,t)(R,t)(R,t)F使用于普通场景(非平面场景),但是从E/F中解算位姿有四种可能性,且不适用于低视差的场景。因此单应矩阵H可以更好的应用于低视差(接近纯旋转)的场景下。而当平移接近零时,E和F阵则接近零(E=t∧R,  F=K−TEK−1

2022-02-13 12:41:04 6053

原创 概率&滤波器&图优化&最小二乘求解

文章目录SLAM后端优化1 预知识点1.1 高斯分布的正则形式(canonical form)及马氏距离:1.2 状态方程的协方差及信息矩阵传递1.3 信息矩阵和Hessian矩阵1.4 协方差矩阵与信息矩阵1.5 Schur补概念1.6 信息矩阵的边缘化1.7 贝叶斯后验滤波器2 概率在线/全局SLAM算法2.1 卡尔曼滤波(KF)2.2 扩展卡尔曼滤波器(EKF)2.3 UKF:TODO。2.4 Information Filter (IF)2.5 Extended Information Filte

2021-12-17 23:14:43 2570

原创 SVO原理解析

一、SVO框架:  从上图可以看出SVO的分为两个主要部分:定位和建图。这两部分以并行线程执行,保证算法的实时性。从图中也可以看出来,两个线程是有所耦合的,如定位线程的第二步(图像坐标对齐)时使用了建图中估计的特征点的深度(三维坐标点)。  SVO算法分解开后,就是几个比较传统的求解思路的组合。定位中包含三步:  1、 直接法求解粗略的相机初始位姿:这里作者不再使用大范围的图像块进行直接法的tracking,进在关键帧进行离散的特征点提取,并保证特征点在图像中分布的均匀性。将特征点按帧进行传递,使

2021-11-19 17:29:51 7601

原创 DVO-slam原理介绍

文章目录1、误差约束公式2、权重最小二乘迭代求解(IRLS):2.1 论文1中的迭代公式:论文1中只说明了光度误差:2.2 论文2中的迭代公式3、关键帧的选择参考论文1:Robust Odometry Estimation for RGB-D Cameras参考论文2:Dense Visual SLAM for RGB-D Cameras1、误差约束公式基于直接法的稠密建图,误差采用两部分:灰度误差和深度误差:灰度误差:灰度误差表示匹配点在图像中被观测到的光度误差,误差方程定义如下:深度误

2021-11-05 21:15:59 1454

原创 直接法FC(Forward Compositional )&IC( Inverse Compositional )&ESM求解方法介绍

直接法FC&IC*ESM求解方法介绍论文:Efficient Compositional Approaches for Real-Time Robust Direct Visual Odometry from RGB-D Data以下公式与原文出入较大,批判阅读一、介绍这篇论文讲述使用RGBD实现直接法VO的求解思路基于直接法的求解方法:提出三种求解思路:Forward Compositional (FC);Inverse Compositional (IC);Efficient

2021-10-29 23:24:36 2057 1

原创 LSD-slam算法原理

LSD-slam算法原理论文:LSD-SLAM: Large-Scale Direct Monocular SLAM一、 预先知识:1、三维刚体与相似变换1.1 三维刚体变换仅包括6个自由度,即三轴旋转和三轴偏移,变换矩阵定义如下:李代数与变换矩阵的转换关系:定义李代数:ξ∈se(3)\xi \in se\left(3\right)ξ∈se(3)G=expse(3)(ξ),ξ=logSE(3)(G){G}={exp}_{se(3)}(\xi), \xi = log_{SE(3)}(G)G=

2021-10-29 20:59:13 4529

原创 lsd-slam深度滤波器

lsd-slam深度滤波器论文:《Semi-Dense Visual Odometry for a Monocular Camera》一、背景基于特征点的单目SLAM:分为两步:  1. 提取离散特征点并进行特征点匹配  2. 通过匹配的特征点计算相机及特征点的位姿解算两个缺点:  1. 使用的图像特征通常仅为角点,斑点及边角线。  2. 匹配特征点的计算消耗较大基于直接法的稠密单目SLAM:直接使用图像解算相机位姿。并建立稠密世界地图二、算法大纲LSD算法核心点:  1. 概率

2021-10-25 18:33:03 2609

原创 SLAM轨迹精度测评(TUM格式)

本文介绍3个评测slam轨迹精度的工具evoevaluate_ate.pyrpg_trajectory_evaluation1. evo安装及使用evo安装: 使用pip安装,使用-i指定镜像源pip install -i https://pypi.tuna.tsinghua.edu.cn/simple evo --upgrade --no-binary evo使用:轨迹绘制:#单个轨迹绘制evo_traj tum traj_tumxxx.txt -p#多个轨迹绘制evo_tr

2021-08-24 11:55:48 5297 10

原创 特征点法&光流法&直接法

介绍特征点法:提取图像特征点,计算特征点图像描述子(图像灰度/变化梯度等),通过描述子来匹配特征点,确定特征点的匹配关系,利用三角/对极几何/PnP等算法估算相机运动。计算精度高,但是耗时。光流法:提取图像特征点,与特征点法不同的是,光流法通过图像灰度值(RGB)值匹配特征点,光流描述了像素在图像中的运动,再利用三角/对极几何/PnP等算法估算相机运动。减少特征点匹配所需的计算量,精度也有保证。直接法:提取图像特征点,通过计算灰度值(RGB)值直接解算得到运动估计(R,t)。利用像素移动直接计算得到

2021-06-21 15:28:59 4618

原创 realsense D435i gazebo slam(px4)仿真

realsense D435i gazebo slam仿真包含realsense T265 D435i的urdf和sdf文件、realsense_gazebo_plugin包及realsense 模型文件使用示例。下载realsense 仿真模型[catkin_ws]表示自定义的工作目录mkdir -p [catkin_ws]/srccd [catkin_ws]/srcgit clone https://gitee.com/nie_xun/realsense_ros_gazebo.gitcd

2021-06-15 11:27:31 6805 36

原创 C++ 使用

boost中shared_lock和unique_lock的区别shared_lock和unique_lock一般搭配使用,用来解决变量的读写冲突。shared_lock是read lock,即设置读标志,同时限制写权限。当要读取某个变量时,使用shared_lock,相当于为此变量设置了读标志位,不影响其他线程(或进程)读取该变量,但是不允许其他线程(或进程)改写该变量。被锁后仍允许其他线程执行同样被shared_lock的代码。这是一般做读操作时的需要。使用shared_lock上锁的代码可以

2021-03-23 23:03:57 612

原创 IMU 互补滤波器

本文主要介绍《Keeping a Good Attitude: A Quaternion-Based OrientationFilter for IMUs and MARGs》一文的互补滤波算法论文下载地址https://www.mdpi.com/1424-8220/15/8/19302,文中带了基础知识的讲解,比较全面。如果下载不到,可尝试使用https://download.csdn.net/download/weixin_41469272/15005220源代码使用介绍:http://wiki

2021-02-03 21:17:05 4545 2

原创 四旋翼控制系统建模

四旋翼控制系统建模四旋翼飞行原理前端旋翼 1 和后端旋翼 3 逆时针旋转,而左端旋翼 2 和右端的旋翼 4 顺时 针旋转,以平衡旋翼旋转所产生的反扭转矩。由此可知,悬停时:四只旋翼的转速应该相等,以相互抵消反扭力矩;同时等量地增大或减小四只旋翼的转速,会引起上升或下降运动;增大某一只旋翼的转速,同时等量地减小同组另一只旋翼的转速,则产生俯仰、横 滚运动;增大某一组旋翼的转速,同时等量减小另一组旋翼的转速,将产生偏航运动。滚转、俯仰由同组旋翼的转速不同产生;偏航由不同组旋翼转速不同产生,

2020-11-06 17:47:53 2172 4

原创 Aruco Marker ROS demo

Aruco Marker ROS demo调用opencv实现 Aruco Marker的生成,检测及定位。代码地址https://gitee.com/nie_xun/aruco_test.git使用源码下载编译cd catkin_ws/srcgit clone https://gitee.com/nie_xun/aruco_test.gitcd ..catkin_makeAruco Marker生成roslaunch aruco_test aruco_marker_gener

2020-10-28 14:46:34 481

原创 激光雷达与相机标定

文章目录激光雷达与相机标定1.下载源码并编译2. 制作标定板3.配置4. 启动5. 过程操作遇到问题参考链接激光雷达与相机标定激光雷达与相机的标定方法有:Autoware, apollo, lidar_camera_calibration, 与but_velodyne本文介绍使用lidar_camera_calibration来进行激光雷达与相机的标定。本人要标定的激光雷达为:VLP16,相机:INDEMIND相机1.下载源码并编译mkdir -p catkin_ws/srccd catkin

2020-10-28 13:29:57 6398 9

原创 cvCornerHarris角点提取实例c++

cvCornerHarris:功能:检测图像的哈里斯角点检测,判断出某一点是不是图像的角点函数形式:void cvCornerHarris( const CvArr* image, CvArr* harris_responce, int block_size, int aperture_size=3, double k=0.04 );参数列表:Image 输入图像harris_responce存储哈里斯检测responces的图像。与输入图像等大block_size 邻域大小(见关于cvCor

2020-08-30 19:31:59 427

原创 DEMO-lidar原理介绍及数据集运行测试

DEMO-lidar介绍论文:《Real-time Depth Enhanced Monocular Odometry》Real-time Depth Enhanced Monocular Odometry概述DEMO-lidar源码解析demo-rgbd解读http://wiki.ros.org/demo_lidarDEMO-lidar:Depth Enhanced Monocular Odometry (Demo),是一个组合深度信息的单目视觉里程计。主要由三个主线程:“feature

2020-08-22 22:44:53 1778 19

IMU pose complementary filter.zip

介绍imu tools 实现的基于imu数据 互补滤波器实现姿态估计的英文全文介绍 以及两篇相关文献

2021-02-03

MT_Software_Suite_linux-x64_2019.3.2.zip

MT_Software_Suite_linux-x64_2019.3.2.tar.gz & MTmanager使用说明 & 介绍说明txt

2020-07-22

ercixingzuiyou&shixianjiaozuiyou&huamo.zip

6种态势,两种目标逃逸方式下的现代导引律代码,包括,最优二次型、最优二次型滑模、最优视线角、滑模最优视线角导引律

2020-06-15

空空如也

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

TA关注的人

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