自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(138)
  • 资源 (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 6821 1

原创 ROS1 go2 vlp16 局部避障--3 篇

本文介绍ROS1下 unitree + vlp16 + cartographer的 自主定位+避障+探索本文的基础搭建:gazebo模型及各类配置文件见需要完成以上的配置的基础上,才能进行本文的配置。</</</</</</后输入2,让狗站起来。再进行下述操作。

2025-09-28 16:15:00 586

原创 ROS 1的Navigation 和 ROS 2的Navigation2(Nav2)

ROS1 Navigation Stack 的核心是 move_base。它采用了全局规划器(Global Planner)和局部规划器(Local Planner)的二级规划结构,并通过 costmap_2d系统来维护环境信息。其核心架构如下图所示:fill:#333;color:#333;color:#333;fill:none;move_baseCostmap 2D全局/局部代价地图全局规划器局部规划器恢复行为静态层障碍物层膨胀层NavfnDWA清除代价地图旋转恢复。

2025-09-24 23:03:11 1066

原创 ROS1 go2 vlp16 局部避障--2 篇

go1 的深度相机进行避障,以及gp2 的move_base 使用(不能实时避障)。使用环境:ubuntu 2004 ros neotic (docker 环境)本文讲述给go2添加vlp雷达,实现实时避障。</robot>之前。

2025-09-24 20:19:33 396

原创 宇树go2 gazebo仿真

宇树Go1/Go2的官方仿真环境推荐使用ROS Noetic(对应Ubuntu 20.04)。参考安装链接https://blog.csdn.net/zardforever123/article/details/1305101451.2 安装依赖安装仿真和导航所需的ROS控制器和插件:其他依赖:1.3 创建工作空间与下载源码创建工作空间:克隆必要的代码库(通常包含以下核心包):编译:先编译unitree_legged_sdk,再编译ros包,打开move_base编译项编译 un

2025-09-22 23:29:55 1053

原创 TurtleBot3 在 ROS 2 的仿真

是指在全局路径规划的基础上,局部规划器根据实时传感器信息(如激光雷达)动态调整机器人的运动,以避开未在地图中标注的障碍物(如临时出现的人或物体)。此命令会启动 Nav2 的所有相关节点,包括全局和局部规划器、行为服务器等,并在 RViz2 中打开可视化界面。导航阶段的目标是让机器人利用上一阶段创建的地图,进行自主定位并规划路径到指定目标点,同时能避开动态障碍物。同时,Rviz2 会打开以可视化正在创建的地图。遵循一个明确定义的状态机,以确保节点在开始处理数据之前已被正确配置,并在关闭时能优雅地清理资源。

2025-09-21 19:08:32 823

原创 互补滤波、KF ,EKF,IEKF、ESKF、IESKF以及MSCKF----2

名义状态xtxt​(通过系统模型传播)误差状态δxtxt−xtδxt​xt​−xt​(待估计的量)真实状态xtxtδxtxt​xt​δxt​算法全称核心思想优点缺点适用系统核心改进计算复杂度典型应用场景KF卡尔曼滤波在线性和高斯系统中实现最优估计理论完美,计算高效仅适用于线性系统线性高斯最优递推估计On3O(n^3)On3雷达跟踪、基础导航EKF扩展卡尔曼滤波对非线性系统进行一阶泰勒展开。

2025-09-15 22:58:14 585

原创 地图的构建方式

地图类型维度存储结构核心信息优点缺点典型应用2D均匀网格占据概率简单、成熟、高效仅限2D平面室内机器人导航2.5D均匀网格高度值比2D多地形信息无法表示悬空物无人车、野外机器人3D点列表3D点坐标构建简单、信息完整无结构、数据量大离线重建、可视化OctoMap3D八叉树占据概率稀疏、高效、带概率分辨率固定、不够精细无人机避障、机械臂3D哈希表+体素块SDF/颜色内存效率极高、实时实现复杂实时AR/VR重建TSDF3D。

2025-09-15 17:43:19 777

原创 互补滤波、KF ,EKF,IEKF、ESKF、IESKF以及MSCKF----1

我们以最经典的IMU(惯性测量单元)姿态估计为例,融合陀螺仪和加速度计的数据。目标:设计一个滤波器,融合两者优点,得到在全部频率段都准确的角度估计 θestθ_{est}θest​。互补滤波器的推导可以从两个层面看:两种形式的本质都是在信任陀螺仪的短期动态特性和信任加速度计的长期静态特性之间找到一个平衡点。这个推导基于一个简单的想法:用高通滤波器(HPF)提取陀螺仪信号好的部分(高频),用低通滤波器(LPF)提取加速度计信号好的部分(低频),再把它们加起来。步骤 1:定义滤波器假设我们有一个一阶低通滤波器

2025-09-15 15:15:21 403

原创 NVIDIA显卡驱动安装

不同的系统版本、默认支持的内核版本、显卡驱动、cuda及cudnn的版本有着对应关系,版本之间的不兼容,会导致系统卡顿以及崩溃。如果成功,这个命令会输出一个表格,显示你的 GPU 信息、驱动版本、CUDA 版本(如果适用)以及正在使用的 GPU 的进程。:较新的CUDA版本需要较高版本的NVIDIA驱动才能正常运行(例如,CUDA 12.0通常要求驱动版本不低于525)。:cuDNN版本应与CUDA版本匹配,通常选择与CUDA版本同时期发布的cuDNN版本可获得最佳兼容性。

2025-09-07 13:50:00 1177

原创 Git 常用命令

分支上有一个Bug,但你知道在两个月前的版本v1.0上是没有这个Bug的。Git 是一个分布式版本控制系统,广泛用于软件开发中的版本管理。以下是 Git 的常用命令及说明。是一个高效的“Git侦探”,帮助你快速在大量提交中 pinpoint 引入问题的精确位置。–interactive 交互式。你改变了主意,不想合并这个功能了,但分支上的 A 和 B 提交只存在于。rebase 命令将提交到某一分支上的所有修改都移至另一分支上,如下。当一个系统所集成的git库非常多时,此时就需要repo来进行管理。

2025-09-05 00:49:00 1122

原创 iptables 和 ip route

一个数据包不会经过所有表,不同的表被允许工作的流水线(链)是不同的。下图展示了一个数据包可能流经的完整路径,以及“表”和“链”如何协同工作:fill:#333;color:#333;color:#333;fill:none;是否POSTROUTING 链nat 表mangle 表OUTPUT 链filter 表raw 表mangle 表nat 表FORWARD 链filter 表mangle 表INPUT 链filter 表mangle 表PREROUTING 链。

2025-09-03 23:39:54 1122

原创 mid360 livox_ros_driver2配置、使用及消息格式说明

配置mid360;livox驱动包下载编译安装修改配置文件:运行示例:结果如下,则说明成功:修改配置文件:运行如下,打开rviz显示当前点云:此时,发布点云及imu消息:数据包录制命令 配置 输出:配置 输出:Livox ROS驱动程序(livox_ros_driver2)中的 参数决定了点云数据的发布格式,直接影响你后续处理数据的方式。当 和 时,驱动程序发布的数据在数据结构、包含的信息以及适用场景上都有明显的区别。为了让你能快速把握核心区别,我用一个表格来汇总这两种格式的主要差

2025-09-02 15:41:40 1156

原创 vim-plugin & AI插件

管理器:首选vim-plug,安装简单,配置直观。使用流程:在配置文件中用声明插件 ->安装。AI 插件是官方且最好的选择,安装后运行完成认证即可使用,常用Tab键接受建议。按照这个指南,你就能轻松管理你的 Vim 插件王国,并享受到 AI 辅助编程的强大威力了。

2025-08-31 13:07:38 1176

原创 ubuntu网络共享

客户端请求 → enp0s25 → (NAT转换) → wlp3s0 → 互联网。互联网响应 → wlp3s0 → (状态检测) → enp0s25 → 客户端。的IP,但是不能访问互联网,则需要手动写NAT规则。如果windwos 已获取了。

2025-08-16 20:16:37 991

原创 开源slam整理

罗列一些开源slam算法,有的特别耳熟能详的没写出来。如LOAM,cartographer等。

2025-07-28 00:15:40 1386

原创 faster_lio 原理及代码

Faster-LIO(Fast LiDAR-Inertial Odometry)是一种基于**增量稀疏体素(iVox)**的高效激光-惯性里程计算法,由智行者高博团队与清华大学于2022年提出。Faster-LIO 中紧耦合优化的核心部分,通过构建点到平面的观测模型,将 LiDAR 点云信息融入到 EKF 状态估计框架中。,将三维邻近性转化为一维连续性,从根本上解决了传统编码的内存访问低效问题,成为高性能 LIO/SLAM 算法的基石。在三维点云处理中,传统的体素线性编码(如按。

2025-07-05 23:18:39 1041

原创 windows11 + ubuntu2204双系统+ros2 humble安装

为了测试,你可以启动一个简单的 “talker” 和 “listener” 节点,它们是 ROS 2 教程中的示例节点。为了使 ROS 2 的命令和包在你的终端中可用,你需要将 ROS 2 的安装目录添加到你的 PATH 和 LD_LIBRARY_PATH 环境变量中。但是新的系统对新的硬件的支持更好,以及有更长的支持,在后期对新包的支持也会更好一点。(可选) 如果磁盘足够,新版本ubuntu会在安装时,自行规划,也可自行配置,但一定要保证有足够的空间。如果rosdep不成功,则需要对应修改:参考。

2025-06-19 18:15:09 1627 1

原创 KD-Tree 和 增量 KD-Tree (IKD-Tree)

KD-Tree是一种用于组织k维空间中点数据的二叉树结构。每个节点代表一个超矩形区域,并按照某一维度的切分平面将空间划分为两个子空间。构建过程如下:选择切分维度:通常选择数据方差最大的维度,或者轮流选择(例如,在3D空间中,按x、y、z轮流)。选择切分点:通常选择当前维度数据的中位数,以保证树的平衡。递归构建:对切分平面两侧的数据递归构建左子树和右子树。下采样:传统方法使用体素网格滤波(Voxel Grid):缺点:需要遍历整个点云进行滤波,然后重建KD-Tree,效率较低。特点适用场景新的ikdtre

2025-06-10 17:31:55 880

原创 FAST-LIO、FAST-LIO2与FASTER-LIO

FAST-LIO(Fast LiDAR-Inertial Odometry)是一种基于紧耦合迭代扩展卡尔曼滤波器(IEKF)的激光雷达-惯性里程计框架。

2025-05-17 11:46:57 1681

原创 操作系统原理简要介绍

进程内的最小执行单元,共享进程的资源(如内存、文件句柄)。

2025-04-22 21:03:57 1445

原创 网络结构及安全科普

名词分类定义与原理IP(互联网协议)网络层协议用于在网络中唯一标识设备并路由数据报。通过IP地址(如IPv4/IPv6)实现设备间通信,将数据分割为数据包传输,不保证可靠性(需配合TCP/UDP)。TCP(传输控制协议)传输层协议面向连接的可靠协议,通过“三次握手”建立连接,传输中校验数据完整性,丢失数据会重传。常用于需要高可靠性的场景(如网页浏览、文件传输)。UDP(用户数据报协议)传输层协议无连接的不可靠协议,不建立连接直接发送数据,延迟低但不保证交付。

2025-04-21 16:10:48 1396

原创 RGBD惯性SLAM

本篇介绍一种基于视觉光流法的RGBD惯性SLAM算法,该算法的前身是DEMO算法。相对于原始版本:更新了相对较老的IplImage 相关接口加入了GTSAM后端;滑动窗口后端;3D-3Dbatch优化;点到面batch后端。分别对应不同的branch。后端表现都很一般。待进一步优化,只推荐使用visualOdometry.cpp 对应的前端。其他推荐的借鉴代码见后介绍,主要供自己后续使用。代码地址slidW 分支:bundleAdjust_new.cpp使用slidingwindow的方法。

2025-04-14 22:24:33 1154

原创 RGBD/激光/惯性SLAM算法DEMOD

图像坐标系,X指向图像右侧,Y指向图像下方。相机坐标系{C}和世界坐标系{W}。相机坐标系{C}固定于相机上,XY轴与图像方向定义一致。世界坐标系{W}固定在算法启动时的起始点,且与初始时刻相机坐标系的指向一致。该算法采用的欧拉角旋转顺序为 Z - X - Y。

2025-04-10 13:42:13 738

原创 ROS2介绍、基本使用及与ROS1的区别

DDS的核心是一个以数据为中心的发布-订阅(Data-Centric Publish-Subscribe,DCPS)模型,该模型旨在为分布式异构平台上的进程间提供高效的数据传输。由于ROS1的实现,这种通信需要一个主进程(在分布式系统中是唯一的)。通过与主节点的XML/远程过程调用(RPC)事务后,订阅节点请求与发布节点的连接,使用约定的连接协议。对于许多现有的机器人应用,尤其是在传统工业应用中,ROS1 仍然是非常成熟的解决方案,但随着 ROS2 生态系统的逐渐成熟,ROS2 会成为未来的主要发展方向。

2025-03-14 13:21:15 4911

原创 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 1060

原创 滑动窗口及边缘化直观理解

这点也可以,从约束方程(3)中进行具体理解,即先验约束即使在得到新的约束方程后,会约束变量保持先验得到的变量结果,而所有变量的估计是不可能不存在误差的,因而先验得到的变量值也存在误差,进而进一步影响最后的变量估计,这个误差是随着时间累积的,即使有更多的观测约束,也消弭不了。而新的观测对应信息矩阵,红色部分,会在后续的迭代过程中进一步被优化。marg后得到的先验信息矩阵包含了已经被marg掉的变量节点与窗口现有节点之间的约束关系,当窗口现有节点更新时,原本先验信息矩阵与现有节点相关的约束也应该进行更新。

2025-03-11 20:32:50 890

原创 学习网站介绍

这里的课程由世界名校联手打造,涵盖各个领域,学完之后,你不仅能成为武学大师,还能成为国际交流的使者!武功概要:这些网站各具特色,有的专注于独门绝技的传授(如华文慕课的汉语言文学),有的则擅长热道(如运营派的营销技巧)。从人工智能的“天机算”到经济学的“财富宝典”,应有尽有!这里的编程课程如同锋利的宝剑,移动开发技术则是暗器的精髓,学成之后,定能在江湖中独步天下!武功概要:这里汇聚了各路高手的内功心法,从IT编程的“九阳神功”到设计创作的“独孤九剑”,再到语言学习的“易筋经”,只有你想不到,没有你学不到!

2024-12-15 13:11:00 475

原创 最速下降法&高斯牛顿法&LM&共轭梯度法&预条件共轭梯度法

文章目录最速下降法原理伪代码优点与局限性C++ 示例代码高斯牛顿法原理伪代码优点与局限性C++ 示例代码LM 法(Levenberg-Marquardt 法)原理优点与局限性伪代码C++ 示例代码共轭梯度法提出原理伪代码C++ 示例代码预条件共轭梯度法原理优点与局限性伪代码C++ 示例代码参考链接本文对最速下降法、高斯牛顿法、LM 法(Levenberg-Marquardt 法)、共轭梯度法以及预条件共轭梯度法进行介绍最速下降法原理目标函数:最速下降法基于多元函数的梯度概念。对于一个目标函数

2024-11-21 15:05:58 1417

原创 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 3845 13

原创 TexWorks配置使用latexmk实现增量编译

TexWorks默认使用pdfLaTeX+MakeIndex+BibTeX,修改后,重新编译等待时间较长。latexmk的参数可以在命令行指定,也可以在配置文件中指定。个人推荐使用配置文件,这样可以避免命令过长,也方便与其他工具集成。Miktex console 可以用来管理安装包,提供打开TexWorks的接口以及终端,终端则与普通windows cmd差别不大。回到TexWorks主页面,下拉处理菜单,选中latexmk,点击左侧绿色右三角,进行编译。打开TexWorks,点击编辑->首选项->排版。

2024-08-13 22:14:09 1941

原创 ICE-BA原理

这篇论文提出了几个关于增量迭代求解的技术思路,精度换效率。多是在技术角度上提出,而非算法理论创新。

2024-07-18 21:09:55 988

原创 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 762

原创 House holder reflections and Givens rotations

具体来说,Householder反射可以用于将一个向量变成一个特定方向的向量,比如将一个向量变成与标准基向量平行的向量。这种方法的主要特点是,它可以在很少的运算步骤中完成这一操作,因此在数值计算中非常高效。Householder反射和Givens旋转是两种常见的线性代数方法,用于将一个矩阵分解为正交矩阵(Q)和上三角矩阵®,即QR分解。Givens旋转是一种通过旋转将一个向量的某个分量置零的方法。总体来说,QR分解的目标是通过一系列的正交变换(Householder反射或Givens旋转)将原矩阵。

2024-07-11 15:32:59 909

原创 SLAM中的块矩阵与schur补

特征点位置对应的更新量。SLAM问题中的信息矩阵的结构对应如下图所示,其中关于特征点的部分(该矩阵中的C块矩阵)为对角块矩阵。因而型如以下的SLAM求解问题,可以使用schur补+对角块矩阵逆的特性,高效求解。从而可以看出,我们通过回代同样得到了Schur补的情况。,此外也可以通过消元与回代的基本原理得到相同的结论。从而可以将求逆问题简化为对角块矩阵求逆的问题,先得到。矩阵,可以通过求解块对角矩阵的逆来找到。通常对于SLAM问题,信息矩阵中的{可以看到,右边的矩阵确实是。是 B$ 的逆矩阵。

2024-07-07 21:50:56 1308

原创 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 1282

原创 VINS滑窗及边缘化

滑窗优化思想是指定一个待优化的窗口宽度,随着新帧的到来,将老的帧信息移出窗口,每次都优化窗口内的帧及特征点。由于在滑窗problem进行求解前,需要将先验约束加入到problem中,然而,先验结束是上一轮边缘化得到的,从而对于窗口内的变量及约束而言,边缘化使用的是次新帧是不是关键帧,而不是通过对新帧的判断。在VINS初始化过程中,使用SFM对特征点及相机位姿进行不带尺度(up-to-scale)的估计后,就使用了一次滑窗优化,此时尺度是任意设置的,且使用的是ceres自动微分功能。

2024-05-16 18:43:30 1668

原创 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 1059

原创 VINS预积分与误差模型

在VIO系统中,IMU的发布频率通常是高于图像的,VINS系统中,使用k来表示对应的图像帧时刻,通过积分两个图像帧之间的IMU数据,来与视觉估计的位姿进行对比,来得到更加精确的位姿。),即将两帧图像发布时间内,IMU的数据进行积分(将[k,k+1]时刻内的IMU数据进行积分,从而得到IMU两帧图像之间的位姿变化量)。真实的零偏是包含了游走偏差的,而加速度计和陀螺仪需要体现实际的物理量,要去除噪声所带来的影响。因此状态的传递,误差的传递均是指两个图像帧之间的IMU积分值的传递,以下的预积分均以。

2024-05-07 16:12:37 715

原创 Fisher矩阵与自然梯度法

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

2024-03-04 22:56:04 1659

矩阵运算 Matrix Computations 4th

Johns Hopkins Studies in the Mathematical Sciences 矩阵运算相关的内容,包括各类的分解(QR)以及tensor的处理,以及稀疏矩阵的处理等等。 对于有关矩阵的研究的领域十分有用,如深度学习、SLAM等等。

2024-07-11

MT_Software_Suite_linux-x64_2019.3.2.zip

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

2020-07-22

IMU pose complementary filter.zip

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

2021-02-03

ercixingzuiyou&shixianjiaozuiyou&huamo.zip

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

2020-06-15

空空如也

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

TA关注的人

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