- 博客(120)
- 资源 (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
6459
1
原创 FAST-LIO、FAST-LIO2与FASTER-LIO
FAST-LIO(Fast LiDAR-Inertial Odometry)是一种基于紧耦合迭代扩展卡尔曼滤波器(IEKF)的激光雷达-惯性里程计框架。
2025-05-17 11:46:57
598
原创 网络结构及安全科普
名词分类定义与原理IP(互联网协议)网络层协议用于在网络中唯一标识设备并路由数据报。通过IP地址(如IPv4/IPv6)实现设备间通信,将数据分割为数据包传输,不保证可靠性(需配合TCP/UDP)。TCP(传输控制协议)传输层协议面向连接的可靠协议,通过“三次握手”建立连接,传输中校验数据完整性,丢失数据会重传。常用于需要高可靠性的场景(如网页浏览、文件传输)。UDP(用户数据报协议)传输层协议无连接的不可靠协议,不建立连接直接发送数据,延迟低但不保证交付。
2025-04-21 16:10:48
881
原创 RGBD惯性SLAM
本篇介绍一种基于视觉光流法的RGBD惯性SLAM算法,该算法的前身是DEMO算法。相对于原始版本:更新了相对较老的IplImage 相关接口加入了GTSAM后端;滑动窗口后端;3D-3Dbatch优化;点到面batch后端。分别对应不同的branch。后端表现都很一般。待进一步优化,只推荐使用visualOdometry.cpp 对应的前端。其他推荐的借鉴代码见后介绍,主要供自己后续使用。代码地址slidW 分支:bundleAdjust_new.cpp使用slidingwindow的方法。
2025-04-14 22:24:33
1089
原创 RGBD/激光/惯性SLAM算法DEMOD
图像坐标系,X指向图像右侧,Y指向图像下方。相机坐标系{C}和世界坐标系{W}。相机坐标系{C}固定于相机上,XY轴与图像方向定义一致。世界坐标系{W}固定在算法启动时的起始点,且与初始时刻相机坐标系的指向一致。该算法采用的欧拉角旋转顺序为 Z - X - Y。
2025-04-10 13:42:13
644
原创 ROS2介绍、基本使用及与ROS1的区别
DDS的核心是一个以数据为中心的发布-订阅(Data-Centric Publish-Subscribe,DCPS)模型,该模型旨在为分布式异构平台上的进程间提供高效的数据传输。由于ROS1的实现,这种通信需要一个主进程(在分布式系统中是唯一的)。通过与主节点的XML/远程过程调用(RPC)事务后,订阅节点请求与发布节点的连接,使用约定的连接协议。对于许多现有的机器人应用,尤其是在传统工业应用中,ROS1 仍然是非常成熟的解决方案,但随着 ROS2 生态系统的逐渐成熟,ROS2 会成为未来的主要发展方向。
2025-03-14 13:21:15
1943
原创 docker安装及使用介绍
确保宿主机上运行的是ROS1和ROS2需要在宿主机上安装并配置好ROS1和ROS2。ROS1和ROS2需要在宿主机中各自独立运行。确保它们可以正常通信。在Docker中安装ROS2你需要确保Docker容器中已经正确安装并配置了ROS2。可以使用官方的ROS2 Docker镜像,或者自己构建一个镜像。构建和运行在Docker容器中,你需要构建并启动来桥接ROS1和ROS2的消息。配置 ROS1 和 ROS2 环境在ROS1和ROS2的环境中,ROS1发布的消息需要通过转发到ROS2。
2025-03-13 20:58:30
762
原创 滑动窗口及边缘化直观理解
这点也可以,从约束方程(3)中进行具体理解,即先验约束即使在得到新的约束方程后,会约束变量保持先验得到的变量结果,而所有变量的估计是不可能不存在误差的,因而先验得到的变量值也存在误差,进而进一步影响最后的变量估计,这个误差是随着时间累积的,即使有更多的观测约束,也消弭不了。而新的观测对应信息矩阵,红色部分,会在后续的迭代过程中进一步被优化。marg后得到的先验信息矩阵包含了已经被marg掉的变量节点与窗口现有节点之间的约束关系,当窗口现有节点更新时,原本先验信息矩阵与现有节点相关的约束也应该进行更新。
2025-03-11 20:32:50
638
原创 学习网站介绍
这里的课程由世界名校联手打造,涵盖各个领域,学完之后,你不仅能成为武学大师,还能成为国际交流的使者!武功概要:这些网站各具特色,有的专注于独门绝技的传授(如华文慕课的汉语言文学),有的则擅长热道(如运营派的营销技巧)。从人工智能的“天机算”到经济学的“财富宝典”,应有尽有!这里的编程课程如同锋利的宝剑,移动开发技术则是暗器的精髓,学成之后,定能在江湖中独步天下!武功概要:这里汇聚了各路高手的内功心法,从IT编程的“九阳神功”到设计创作的“独孤九剑”,再到语言学习的“易筋经”,只有你想不到,没有你学不到!
2024-12-15 13:11:00
397
原创 最速下降法&高斯牛顿法&LM&共轭梯度法&预条件共轭梯度法
文章目录最速下降法原理伪代码优点与局限性C++ 示例代码高斯牛顿法原理伪代码优点与局限性C++ 示例代码LM 法(Levenberg-Marquardt 法)原理优点与局限性伪代码C++ 示例代码共轭梯度法提出原理伪代码C++ 示例代码预条件共轭梯度法原理优点与局限性伪代码C++ 示例代码参考链接本文对最速下降法、高斯牛顿法、LM 法(Levenberg-Marquardt 法)、共轭梯度法以及预条件共轭梯度法进行介绍最速下降法原理目标函数:最速下降法基于多元函数的梯度概念。对于一个目标函数
2024-11-21 15:05:58
1093
原创 PX4软/硬件(SITL/HITL)SLAM在环仿真
文章目录介绍依赖PX4 Firmware:软件在环(SITL)仿真Gazebo 软件无人机STIL连接简要示意SITL SLAM仿真总结示例HITL 仿真pxh常用命令MAVLink 指令使用这些命令时的注意事项参考链接介绍为https://blog.csdn.net/weixin_41469272/article/details/117919845的补充篇依赖Dependencies:PX4 Firmware v1.8.0地面站:QGC视景:gazabo通信:mavrosPX4 Fi
2024-09-09 22:21:09
2925
12
原创 TexWorks配置使用latexmk实现增量编译
TexWorks默认使用pdfLaTeX+MakeIndex+BibTeX,修改后,重新编译等待时间较长。latexmk的参数可以在命令行指定,也可以在配置文件中指定。个人推荐使用配置文件,这样可以避免命令过长,也方便与其他工具集成。Miktex console 可以用来管理安装包,提供打开TexWorks的接口以及终端,终端则与普通windows cmd差别不大。回到TexWorks主页面,下拉处理菜单,选中latexmk,点击左侧绿色右三角,进行编译。打开TexWorks,点击编辑->首选项->排版。
2024-08-13 22:14:09
1682
原创 iSAM: Incremental Smoothing and Mapping
SAM是一个全轨迹方法(即没有变量或观测会被marg),随着时间的推移,A阵会变的越来越大,ISAM提出增量更新R阵的方法,当新的观测来到时,仅需要对R阵中相关变量行列进行增量补充,而后使用Givens Rotations 将新增的下三角非零元素转换为0,从而重新构成上三角矩阵进行求解。经过Givens重新三角化得到的R与原先的R相比,只有与当前观测相关的变量行受到影响,即特征点相关的对角矩阵块,以及最后(6)列对应的新的pose(6DOF)。每当一次新的观测到来后,完整计算一次协方差成本是非常大的。
2024-07-14 18:46:55
618
原创 House holder reflections and Givens rotations
具体来说,Householder反射可以用于将一个向量变成一个特定方向的向量,比如将一个向量变成与标准基向量平行的向量。这种方法的主要特点是,它可以在很少的运算步骤中完成这一操作,因此在数值计算中非常高效。Householder反射和Givens旋转是两种常见的线性代数方法,用于将一个矩阵分解为正交矩阵(Q)和上三角矩阵®,即QR分解。Givens旋转是一种通过旋转将一个向量的某个分量置零的方法。总体来说,QR分解的目标是通过一系列的正交变换(Householder反射或Givens旋转)将原矩阵。
2024-07-11 15:32:59
832
原创 SLAM中的块矩阵与schur补
特征点位置对应的更新量。SLAM问题中的信息矩阵的结构对应如下图所示,其中关于特征点的部分(该矩阵中的C块矩阵)为对角块矩阵。因而型如以下的SLAM求解问题,可以使用schur补+对角块矩阵逆的特性,高效求解。从而可以看出,我们通过回代同样得到了Schur补的情况。,此外也可以通过消元与回代的基本原理得到相同的结论。从而可以将求逆问题简化为对角块矩阵求逆的问题,先得到。矩阵,可以通过求解块对角矩阵的逆来找到。通常对于SLAM问题,信息矩阵中的{可以看到,右边的矩阵确实是。是 B$ 的逆矩阵。
2024-07-07 21:50:56
1128
原创 Square Root SAM论文原理
文章目录Square Root SAM论文原理核心原理SLAM问题的3种表示贝叶斯网络因子图(Factor graph)马尔科夫随机场(Markov Random Field, MRF)SLAM最小二乘问题&线性化因式分解 factorization矩阵与图(Matrices ⇔ Graphs)因式分解&变量消元(Factorization ⇔ Variable Elimination )Cholesky分解(或LDL分解)变量消除在Cholesky分解中的作用步骤QR分解变量消除在QR分解
2024-07-07 17:05:10
1203
原创 VINS滑窗及边缘化
滑窗优化思想是指定一个待优化的窗口宽度,随着新帧的到来,将老的帧信息移出窗口,每次都优化窗口内的帧及特征点。由于在滑窗problem进行求解前,需要将先验约束加入到problem中,然而,先验结束是上一轮边缘化得到的,从而对于窗口内的变量及约束而言,边缘化使用的是次新帧是不是关键帧,而不是通过对新帧的判断。在VINS初始化过程中,使用SFM对特征点及相机位姿进行不带尺度(up-to-scale)的估计后,就使用了一次滑窗优化,此时尺度是任意设置的,且使用的是ceres自动微分功能。
2024-05-16 18:43:30
1545
原创 VINS初始化原理及代码
⋅w⋅w表示世界坐标系下的表示,Z轴与重力方向重合。⋅b⋅b表示体坐标系下的表示,与IMU坐标系绑定。⋅c⋅c表示相机坐标系下的表示。qbwq_b^wqbw和pbwp_b^wpbw分别表示imu 体坐标系下转换到世界坐标系下对应的旋转和平移。qcbq_c^bqcb和pcbp_c^bpcb分别表示相机坐标系下转换到体坐标系下对应的旋转和平移。⋅bk⋅bk表示第k帧图像对应的体坐标系。⋅ck⋅ck。
2024-05-08 15:32:37
962
原创 VINS预积分与误差模型
在VIO系统中,IMU的发布频率通常是高于图像的,VINS系统中,使用k来表示对应的图像帧时刻,通过积分两个图像帧之间的IMU数据,来与视觉估计的位姿进行对比,来得到更加精确的位姿。),即将两帧图像发布时间内,IMU的数据进行积分(将[k,k+1]时刻内的IMU数据进行积分,从而得到IMU两帧图像之间的位姿变化量)。真实的零偏是包含了游走偏差的,而加速度计和陀螺仪需要体现实际的物理量,要去除噪声所带来的影响。因此状态的传递,误差的传递均是指两个图像帧之间的IMU积分值的传递,以下的预积分均以。
2024-05-07 16:12:37
629
原创 Fisher矩阵与自然梯度法
Fisher矩阵和自然梯度法是机器学习中重要的概念和方法,用于优化问题的求解。Fisher矩阵可以帮助我们理解参数空间的曲率,而自然梯度法则利用Fisher矩阵的信息来更好地学习函数。通过结合这两个概念,我们可以更有效地优化模型参数,并提高学习的效率和性能。
2024-03-04 22:56:04
1499
原创 信息矩阵、hessian矩阵与协方差矩阵
由此,我们便可以具体看出hessian矩阵与协方差矩阵之间的联系,当我们需要边缘化marginalize一个变量时,可以将信息矩阵求逆转化为相关的协方差矩阵,然后剔除掉变量后,再次求逆得到新的信息矩阵。如此我们可以将问题转化为一个最小二乘问题,同时我们看出信息矩阵与协方差的数学意义。本节探讨信息矩阵、hessian矩阵与协方差矩阵的关系,阐明边缘化的原理。,提取与b无关的矩阵A,再对A求逆,即得到marg 后的信息矩阵。以Marg b为例:需要先将信息矩阵(此例中为。)求逆,得协方差矩阵。
2024-02-23 11:28:04
1968
原创 非精线搜索步长规则Armijo规则&Goldstein规则&Wolfe规则
如最速下降法,拟牛顿法这些常用的优化算法等,其中的线搜索步骤通常使用Armijo规则、Goldstein规则或Wolfe规则等。线搜索规则的选择直接影响了优化算法的性能和收敛速度,因此在应用中需要进行仔细的实验和调优。Goldstein规则是对Armijo规则的一种改进,它引入了一个额外的上界条件。Wolfe规则旨在确保步长既满足足够的下降条件,又满足足够的曲率条件,以保证收敛性和数值稳定性。Armijo规则是最简单的线搜索规则之一,它基于函数值的下降来决定步长。是Wolfe规则的参数,通常。
2024-02-03 22:18:45
3572
原创 牛顿法与拟牛顿法
文章目录牛顿法&拟牛顿法1 牛顿法2 拟牛顿法2.1 对称秩1校正2.2 DFP2.3 BFGS牛顿法&拟牛顿法设无约束优化问题:minf(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
1915
原创 ubuntu程序性能分析
valgrind工具:valgrind是一个用于调试和性能分析的工具集,其中包括了多个工具,如memcheck、cachegrind等。你可以使用cachegrind工具来测量程序的缓存命中率。perf命令:perf命令是一个强大的性能分析工具,可以用于测量程序的各种指标,如CPU周期、缓存命中率等。以上工具可以帮助你测量程序的计算量,并提供各种性能指标和分析结果。time命令:time命令可以用于测量程序的执行时间。这将输出程序的执行时间,包括用户时间、系统时间和实际时间。
2024-01-12 14:33:20
732
原创 pythonPIL 将tif修改为jpg
请输入您需转换的文件路径及文件名:imagepath/img.tif,同样会在在imagepath会生成img.jpg文件。会提示:"请输入要转换的tif图片路径及名称: "则在imagepath会生成img.jpg文件。
2023-11-28 21:43:48
466
原创 李群&李代数: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
1457
原创 margnalize&Huber&Jacibian测试Demo
当误差 r 大于阈值 δ 后,函数增长由二次形式变成了一次形式,相当 于限制了梯度的最大值。同时,Huber 核函数又是光滑的,可以很方便地求导。以经典特征点法为例:归一化坐标。Huber核函数使用说明。
2023-08-24 10:13:30
483
原创 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
2338
原创 远程访问(内网穿透)
远程:1804 ubuntu软件依赖:ssh,xrdp, cpolar本地:win10软件依赖:mstsc.exe(远程桌面)
2023-05-08 18:01:53
1257
原创 STL的并行遍历:for_each(依赖TBB)和omp parallel
guided:循环迭代划分成块的大小与未分配迭代次数除以线程数成比例,然后随着循环迭代的分配,块大小会减小为chunk值。chunk的默认值为1。dynamic:动态调度迭代的分配是依赖于运行状态进行动态确定的,当需要分配新线程时,已有线程结束,则直接使用完成的线程,而不开辟新的线程。这个分配是静态的,线程分配规则根据for的遍历的顺序。其中,shared括号中说明所有线程公用的变量名,private括号中的变量为各个线程均独立的变量。当遍历的操作较多,这里sleep来模拟较多的工作,并行体现出优势。
2023-04-10 11:46:09
1707
原创 点云对齐/轨迹对齐方法及论文讲解
对齐两个轨迹或者对齐两组点云所要求解的自由度包含两组坐标系的3个平移,3个旋转及一个放缩尺度共7个自由度。或者计算里程计的精度问题,得到里程计估计的时间离散位姿后以及轨迹位姿真值后,如何评判里程计的精度。为x轴方向,y轴位于三个点构成的平面上,垂直于x轴,z轴符合右手定则正交与x轴与z轴。在已知两组坐标系之间的旋转变换后,求解平移及尺度因子是相对比较简单的。分别为三个点构成的坐标系的基础向量在两个原始坐标系的表示。为对应z轴的单位向量,得到新坐标系单位矩阵构成的基向量。利用3个点分别建立新的坐标系,设。
2022-08-22 17:14:11
3409
原创 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
1076
原创 欧拉角转换特殊情况(万向锁等)
文章目录问题说明欧拉角到旋转矩阵旋转矩阵到欧拉角万向锁与π\piπ结合测试代码问题说明旋转的表示方式有:角轴,旋转矩阵、四元数、欧拉角。具体见旋转矩阵、欧拉角、四元数及四元数插值欧拉角表示优点:理解友好;3个变量3个自由度缺点:奇异性(万向锁);同一个旋转可由多组欧拉角来表示,即一个旋转对应多组欧拉角。这篇文章从旋转矩阵转化欧拉角来分析这些情况。主要说明同一个旋转解析出不同欧拉角的特殊情况。首先提以下旋转矩阵概念:旋转矩阵根据内外旋可以写成左右乘的形式,左右乘的旋转矩阵是互相的转置。旋转矩
2022-05-11 14:48:32
1823
原创 单目初始化及尺度不确定
单目里程计:问题:通过单目相机图像序列,计算得到图像序列对应的相机位姿(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
3340
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
4479
矩阵运算 Matrix Computations 4th
2024-07-11
MT_Software_Suite_linux-x64_2019.3.2.zip
2020-07-22
ercixingzuiyou&shixianjiaozuiyou&huamo.zip
2020-06-15
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人