<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[行知SLAM]]></title><description><![CDATA[专注机器人及自动驾驶领域]]></description><link>https://blog.csdn.net/qq_15258067</link><language>zh-cn</language><generator>https://blog.csdn.net/</generator><copyright><![CDATA[Copyright &copy; qq_15258067]]></copyright><item><title><![CDATA[第10.6章 FAST-LIO源码解读（三）：laserMapping.cpp深度解析及公式推导]]></title><link>https://blog.csdn.net/qq_15258067/article/details/161448407</link><guid>https://blog.csdn.net/qq_15258067/article/details/161448407</guid><author>qq_15258067</author><pubDate>Wed, 27 May 2026 11:33:15 +0800</pubDate><description><![CDATA[本文深入解析了Fast-LIO激光SLAM模块的核心实现。该模块基于LOAM思想，采用迭代扩展卡尔曼滤波(IEKF)实现激光-IMU紧耦合定位建图，主要功能包括：传感器数据同步、IMU预积分、运动畸变补偿、ikd-Tree动态地图管理、平面特征匹配等。文章从整体架构、数据流程、函数分类等维度展开，详细介绍了初始化阶段、主循环处理流程（包含12个关键步骤）以及程序收尾工作，并提供了核心代码片段和功能分类表。该实现支持Livox和通用激光雷达，具有实时位姿估计、增量建图和ROS消息发布等能力，为SLAM学习者提]]></description><category></category></item><item><title><![CDATA[第10.4.1 章 FAST-LIO源码解读（一）：preprocess.h激光点云处理文件全解析]]></title><link>https://blog.csdn.net/qq_15258067/article/details/161426369</link><guid>https://blog.csdn.net/qq_15258067/article/details/161426369</guid><author>qq_15258067</author><pubDate>Tue, 26 May 2026 16:29:35 +0800</pubDate><description><![CDATA[本文深入解析了FAST-LIO点云预处理模块的头文件设计，重点剖析了宏定义、枚举类型、数据结构与核心预处理类的实现细节。文章首先介绍了头文件依赖与命名空间配置，随后详细解读了数据校验宏、类型别名和核心枚举类型（包括雷达类型、时间单位、点云特征等）。特别分析了辅助数据结构体orgtype的作用，以及Velodyne/Ouster雷达的自定义点结构体实现。最后聚焦预处理类Preprocess的架构，包括公有成员变量、接口函数和私有算法参数，揭示了FAST-LIO实现高效点云处理的关键技术路径。全文通过代码片段与]]></description><category></category></item><item><title><![CDATA[Docker 容器化技术完全指南]]></title><link>https://blog.csdn.net/qq_15258067/article/details/161007442</link><guid>https://blog.csdn.net/qq_15258067/article/details/161007442</guid><author>qq_15258067</author><pubDate>Tue, 12 May 2026 09:57:32 +0800</pubDate><description><![CDATA[摘要：本文为算法工程师提供Docker实用指南，涵盖核心概念、常用命令、Dockerfile编写和问题排查。Docker通过镜像、容器和仓库实现环境一致性，解决算法开发中的环境配置难题。文章对比Docker与虚拟机、Conda的差异，提供镜像/容器操作命令速查表，详解Dockerfile核心指令，并给出实战示例。最后总结常见问题排查方法，帮助工程师快速上手容器化开发。（149字）]]></description><category></category></item><item><title><![CDATA[C++多线程、同步线程、异步线程：彻底分清这3个概念]]></title><link>https://blog.csdn.net/qq_15258067/article/details/160559594</link><guid>https://blog.csdn.net/qq_15258067/article/details/160559594</guid><author>qq_15258067</author><pubDate>Mon, 27 Apr 2026 15:09:41 +0800</pubDate><description><![CDATA[本文通过生活化类比和代码示例，清晰区分了C++中的多线程、同步线程和异步线程三个易混淆概念。文章首先用表格和关系图展示核心定义，指出多线程是技术手段（工人数量），而同步/异步是调用方式（是否等待）。随后通过洗衣服、拖地等日常场景类比不同模式，并给出C++代码实现（单线程同步、多线程同步和异步任务）。最后澄清了&quot;多线程就是异步&quot;等常见误区，并提供了SLAM领域的实际应用案例。全文用通俗语言和直观示例，帮助读者彻底理解这三个关键概念的本质区别。]]></description><category></category></item><item><title><![CDATA[C++ `std::async` 异步任务写法详解]]></title><link>https://blog.csdn.net/qq_15258067/article/details/159755623</link><guid>https://blog.csdn.net/qq_15258067/article/details/159755623</guid><author>qq_15258067</author><pubDate>Thu, 02 Apr 2026 10:08:34 +0800</pubDate><description><![CDATA[本文解析了C++中异步任务的标准写法及其在SLAM系统中的应用。核心代码通过std::async启动新线程执行耗时的点云匹配计算，主线程通过std::future异步获取结果。文章详细拆解了lambda表达式捕获列表、异步策略等关键要素，并对比了直接调用、std::thread等不同实现方式的适用场景。重点阐述了异步编程的三大优势：避免主线程阻塞、充分利用多核CPU以及支持并发任务。最后指出了引用捕获的生命周期风险等注意事项，为实时系统开发提供了实践指导。]]></description><category></category></item><item><title><![CDATA[第3.1.3章 机器人第三方库实战总结：ROS 2 入门实战及和ROS1的对比，打通机器人开发的任督二脉]]></title><link>https://blog.csdn.net/qq_15258067/article/details/159729970</link><guid>https://blog.csdn.net/qq_15258067/article/details/159729970</guid><author>qq_15258067</author><pubDate>Wed, 01 Apr 2026 15:30:11 +0800</pubDate><description><![CDATA[本文针对机器人SLAM开发中第三方库的学习痛点，重点介绍ROS 2在SLAM中的应用。文章首先对比ROS 1与ROS 2的核心差异，梳理ROS 2知识图谱，包括节点、话题、服务等核心概念。通过实战项目演示如何构建激光SLAM节点，结合代码详解运行流程。最后给出学习建议，强调动手实践的重要性，帮助开发者快速掌握ROS 2在SLAM开发中的关键应用。]]></description><category></category></item><item><title><![CDATA[第10.9章 机器人自动驾驶 C++ 实战总结（九）：C++函数传参时到底用常量引用还是常量指针？]]></title><link>https://blog.csdn.net/qq_15258067/article/details/159688894</link><guid>https://blog.csdn.net/qq_15258067/article/details/159688894</guid><author>qq_15258067</author><pubDate>Tue, 31 Mar 2026 15:07:22 +0800</pubDate><description><![CDATA[C++函数传参：常量引用 vs 常量指针选择指南 本文对比了C++中两种常用传参方式：常量引用(const T&amp;)和常量指针(const T*)。核心结论是：优先使用常量引用，仅在参数可选或处理数组时使用常量指针。 主要区别： 常量引用必须绑定有效对象，调用更简洁(obj.member语法) 常量指针允许传空值(nullptr)，适合可选参数 适用场景： 90%场景用常量引用：传递大对象、容器、自定义结构体等 10%场景用常量指针：可选参数、数组处理、与C库交互等 文中通过SLAM/自动驾驶领域的实]]></description><category></category></item><item><title><![CDATA[一句话 + 一个公式总结SLAM本质]]></title><link>https://blog.csdn.net/qq_15258067/article/details/159681859</link><guid>https://blog.csdn.net/qq_15258067/article/details/159681859</guid><author>qq_15258067</author><pubDate>Tue, 31 Mar 2026 11:11:53 +0800</pubDate><description><![CDATA[SLAM（同步定位与地图构建）的核心本质可概括为：在未知环境中，利用传感器数据同时估计机器人自身位置和周围地图。其数学本质可用贝叶斯公式表示：$P(X, M | Z) \propto \prod_{t} P(z_t | x_t, M) \cdot P(x_t | x_{t-1}, u_t)$，即通过观测数据更新对位姿和地图的联合概率估计。工程实现上则转化为优化问题：$\min_{X,M} \sum | e |^2_{\Omega}$，寻找使所有观测误差最小的最优解。这体现了SLAM&quot;一边定位自己，]]></description><category></category></item><item><title><![CDATA[第6.22章 机器人自动驾驶SLAM中的数学总结（二十二）：旋转矩阵、变换矩阵、协方差矩阵、雅可比矩阵、海森矩阵全总结]]></title><link>https://blog.csdn.net/qq_15258067/article/details/159246825</link><guid>https://blog.csdn.net/qq_15258067/article/details/159246825</guid><author>qq_15258067</author><pubDate>Fri, 20 Mar 2026 13:46:09 +0800</pubDate><description><![CDATA[《机器人及自动驾驶矩阵理论大全：从概念到SLAM应用》是一本系统介绍矩阵理论在机器人及自动驾驶领域应用的专著。全书分为八大部分，涵盖基础向量与矩阵概念、变换相关矩阵、概率统计矩阵、优化矩阵、矩阵分解技术、特殊矩阵类型以及SLAM中的矩阵运算。重点解析了旋转矩阵、变换矩阵、协方差矩阵、雅可比矩阵等核心概念及其在SLAM系统中的具体应用，特别探讨了李群李代数、矩阵分解等高级主题在机器人定位与建图中的实现原理。本书通过数学表示与实际案例相结合的方式，为读者构建从线性代数基础到SLAM系统实现的完整知识体系，是机器]]></description><category></category></item><item><title><![CDATA[第6.21章 机器人自动驾驶SLAM中的数学总结（二十一）：矩阵理论基础及在SLAM中的核心应用]]></title><link>https://blog.csdn.net/qq_15258067/article/details/159246580</link><guid>https://blog.csdn.net/qq_15258067/article/details/159246580</guid><author>qq_15258067</author><pubDate>Thu, 19 Mar 2026 15:34:15 +0800</pubDate><description><![CDATA[本文系统阐述了机器人SLAM中矩阵理论与超定方程的核心应用。首先解析了超定方程在SLAM中的关键作用，包括其数学形式、产生原因（传感器冗余观测、多源数据融合）及工程意义（噪声抑制、鲁棒性提升）。其次构建了SLAM所需的矩阵理论体系，涵盖基本运算、行列式与逆矩阵、特征值分解、奇异值分解等核心概念，并详细说明其在位姿变换、点云配准等场景的应用。最后重点分析了矩阵理论与超定方程的结合应用，包括最小二乘解法及典型SLAM问题求解。全文紧密结合工程实践，为SLAM算法实现提供了完整的数学框架和实用指导。]]></description><category></category></item><item><title><![CDATA[第6.20章 机器人自动驾驶SLAM中的数学总结（二十）：线性代数在机器人SLAM定位中的核心应用与知识体系详解]]></title><link>https://blog.csdn.net/qq_15258067/article/details/159246109</link><guid>https://blog.csdn.net/qq_15258067/article/details/159246109</guid><author>qq_15258067</author><pubDate>Thu, 19 Mar 2026 15:11:56 +0800</pubDate><description><![CDATA[本文系统梳理了线性代数在SLAM（同步定位与地图构建）中的核心应用。从向量本质与运算出发，详细阐述了线性组合、矩阵变换、行列式等关键概念及其几何意义。重点分析了矩阵与线性变换的对应关系，推导了矩阵乘法的本质，并探讨了特征值、基变换等高级主题在SLAM中的实际应用。文章特别强调SLAM实践中的注意事项，如坐标系统一性、维度匹配等问题，最后提供C++代码实例展示线性代数在SLAM工程中的实现方式。通过几何直观与代数推导相结合的方式，为机器人技术与自动驾驶领域的从业者构建了完整的线性代数知识体系与应用框架。]]></description><category></category></item><item><title><![CDATA[机器人SLAM中仿射变换 vs 线性变换：为什么平移不属于线性变换？]]></title><link>https://blog.csdn.net/qq_15258067/article/details/159245610</link><guid>https://blog.csdn.net/qq_15258067/article/details/159245610</guid><author>qq_15258067</author><pubDate>Thu, 19 Mar 2026 14:43:16 +0800</pubDate><description><![CDATA[摘要： 平移不属于线性变换，因为它破坏了线性变换的两个核心条件：原点固定性和向量加法一致性。线性变换（如旋转、缩放）保持原点不动，而平移会使原点移动。仿射变换作为线性变换的扩展，通过引入平移（$T(x)=Ax+t$）解决了这一问题。工程中采用齐次坐标（4x4矩阵）统一表示旋转和平移，广泛应用于机器人、自动驾驶（如位姿变换、传感器标定、点云处理）。核心区别在于线性变换保持原点，仿射变换允许平移，而齐次坐标通过升维实现了两者的统一表达。]]></description><category></category></item><item><title><![CDATA[第6.19章 机器人自动驾驶SLAM中的数学总结（十九）：如何从几何角度学好线性代数？——机器人及自动驾驶领域的数学基石]]></title><link>https://blog.csdn.net/qq_15258067/article/details/159244404</link><guid>https://blog.csdn.net/qq_15258067/article/details/159244404</guid><author>qq_15258067</author><pubDate>Thu, 19 Mar 2026 13:56:12 +0800</pubDate><description><![CDATA[这篇文章系统梳理了线性代数在机器人及自动驾驶领域的核心应用。文章首先强调建立几何直觉的重要性，将向量和矩阵理解为空间状态和变换动作，并推荐3Blue1Brown的视频帮助理解抽象概念。随后详细列举了关键数学概念及其工程应用，包括向量运算、旋转矩阵、齐次坐标、特征值分解和SVD等。文章提供了三个阶段的学习路线：基础计算、理论体系重建（推荐Gilbert Strang教材）和编程实践（NumPy/PyTorch实现图像处理、点云分析等）。最后指出线性代数是处理高维复杂系统的核心工具，掌握它能培养系统思维能力。全]]></description><category></category></item><item><title><![CDATA[第10.8章 机器人自动驾驶 C++ 实战总结（八）： 纯虚函数重写时必须写override吗？哪些场景需要用到override？]]></title><link>https://blog.csdn.net/qq_15258067/article/details/159242243</link><guid>https://blog.csdn.net/qq_15258067/article/details/159242243</guid><author>qq_15258067</author><pubDate>Thu, 19 Mar 2026 11:17:50 +0800</pubDate><description><![CDATA[摘要： override关键字在C++11中引入，用于显式标记派生类中对基类虚函数的重写。虽然语法上非必须，但强烈建议使用： 编译检查：确保函数签名正确匹配，避免静默错误 代码可读性：明确标识重写关系 维护性：基类变更时可快速定位问题 纯虚函数重写时同样适用，能有效防止因拼写错误或参数不匹配导致的抽象类实例化问题。主流代码规范（如Google/LLVM）均推荐所有虚函数重写均添加override标识。]]></description><category></category></item><item><title><![CDATA[第10.7章 机器人自动驾驶 C++ 实战总结（七）：彻底搞懂纯虚函数是什么？为什么要用？在机器人自动驾驶中怎么用？]]></title><link>https://blog.csdn.net/qq_15258067/article/details/159242203</link><guid>https://blog.csdn.net/qq_15258067/article/details/159242203</guid><author>qq_15258067</author><pubDate>Thu, 19 Mar 2026 11:16:31 +0800</pubDate><description><![CDATA[纯虚函数是C++中通过=0语法定义的抽象方法，强制子类必须实现，用于定义接口规范。普通虚函数提供默认实现，子类可选择重写。纯虚函数常用于机器人自动驾驶中的传感器接口、路径规划算法等场景，实现多态和代码解耦。关键区别在于纯虚函数必须被实现，而普通虚函数可有默认实现。]]></description><category></category></item><item><title><![CDATA[第10.6章 机器人自动驾驶 C++ 实战总结（六）：设计模式背后的C++语法，懂了概念，还要会写代码]]></title><link>https://blog.csdn.net/qq_15258067/article/details/159242051</link><guid>https://blog.csdn.net/qq_15258067/article/details/159242051</guid><author>qq_15258067</author><pubDate>Thu, 19 Mar 2026 11:10:53 +0800</pubDate><description><![CDATA[摘要：本文系统讲解了C++语法在设计模式实现中的关键作用。首先分析了&quot;懂概念但写不出代码&quot;的原因在于缺乏语法工具，然后梳理了设计模式常用的C++语法全景图，包括面向对象基础、内存管理、并发编程等核心特性。重点通过生产者-消费者、观察者等8种典型模式，详细展示每种模式对应的C++语法实现要点，并提供了代码示例。最后给出从基础到进阶的实战路径，帮助开发者将设计模式从概念理解转化为实际编码能力。]]></description><category></category></item><item><title><![CDATA[第10.5章 机器人自动驾驶 C++ 实战总结（五）：机器人自动驾驶常用设计模式总结：从记不住到忘不掉]]></title><link>https://blog.csdn.net/qq_15258067/article/details/159240864</link><guid>https://blog.csdn.net/qq_15258067/article/details/159240864</guid><author>qq_15258067</author><pubDate>Thu, 19 Mar 2026 10:28:44 +0800</pubDate><description><![CDATA[本文介绍了机器人自动驾驶领域最常用的8种设计模式及其应用场景。设计模式是解决特定问题的标准代码结构，能提高代码重用性、降低沟通成本。主要内容包括：生产者-消费者模式用于传感器数据处理流水线；观察者模式实现多传感器融合；策略模式支持路径规划算法切换；状态模式管理机器人行为状态。文章还提供了C++代码示例，并提出了4种记忆方法（故事联想、口诀记忆等）帮助开发者掌握这些模式。核心观点是设计模式不是用来背诵的，而是通过实际应用才能真正掌握的工程实践方法。]]></description><category></category></item><item><title><![CDATA[第10.4章 机器人自动驾驶 C++ 实战总结（四）：C++并发编程future、thread、同步、异步到底什么关系？]]></title><link>https://blog.csdn.net/qq_15258067/article/details/159240515</link><guid>https://blog.csdn.net/qq_15258067/article/details/159240515</guid><author>qq_15258067</author><pubDate>Thu, 19 Mar 2026 10:15:54 +0800</pubDate><description><![CDATA[本文系统介绍了C++并发编程的核心概念与实践方法。主要内容包括： 基础概念：区分进程/线程、并发/并行、同步/异步等关键术语 线程创建方式：对比std::thread、std::async和std::jthread的特点与适用场景 线程同步机制：详细讲解mutex、condition_variable、future等同步工具 六大并发场景实战：针对不同需求提供具体实现方案 概念辨析：澄清初学者常见的混淆点 SLAM应用实例：展示ORB-SLAM等系统中的线程模型实践 文章通过比喻和代码示例，帮助读者理解并发]]></description><category></category></item><item><title><![CDATA[第10.3章 机器人自动驾驶 C++ 实战总结（三）：C++ `＜future＞` 在机器人SLAM中是怎么用的？]]></title><link>https://blog.csdn.net/qq_15258067/article/details/159240301</link><guid>https://blog.csdn.net/qq_15258067/article/details/159240301</guid><author>qq_15258067</author><pubDate>Thu, 19 Mar 2026 10:07:32 +0800</pubDate><description><![CDATA[C++ &lt;future&gt; 是用于异步编程的标准库组件，提供std::future（未来结果容器）、std::promise（结果承诺者）、std::async（一键启动异步任务）和std::packaged_task（任务打包器）等核心功能。在机器人SLAM领域，它可优化实时性处理，如异步点云预处理、多传感器数据同步采集、回环检测与全局优化解耦等。通过将耗时操作异步化，主线程可保持实时响应，同时示例代码展示了如何实现点云降采样、多传感器数据等待等典型应用场景。]]></description><category></category></item><item><title><![CDATA[ROS2 + DDS 是什么意思？一文彻底搞懂]]></title><link>https://blog.csdn.net/qq_15258067/article/details/159207278</link><guid>https://blog.csdn.net/qq_15258067/article/details/159207278</guid><author>qq_15258067</author><pubDate>Wed, 18 Mar 2026 14:55:56 +0800</pubDate><description><![CDATA[本文深入浅出地解释了ROS2采用DDS作为通信中间件的核心原理。通过&quot;快递系统&quot;的生动比喻，文章对比了ROS1自主通信机制的局限性（如中心化、可靠性差）与ROS2+DDS方案的优势（去中心化、QoS保障、跨平台支持）。重点剖析了DDS的核心特性，包括分布式发现机制、可配置的服务质量(QoS)策略，以及多种DDS实现的可切换性。文章还提供了QoS设置的代码示例，展示如何为不同场景（如传感器数据、系统状态）配置合适的通信策略。通过这种专业分工的架构设计，ROS2实现了更可靠、实时、安全的机器]]></description><category></category></item></channel></rss>