自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

行知SLAM

专注机器人及自动驾驶领域

  • 博客(247)
  • 资源 (1)
  • 收藏
  • 关注

原创 985硕机器人算法方向毕业五年,对读研和求职规划选择的一点感想总结

这7年,从双非到考上985研的开心,读研写论文的焦灼,毕业时候的未来可期,到刚参加工作时的996,以及果断换行寻找所谓热爱的方向,但对未来仍还是有焦虑和迷茫。

2025-01-04 09:15:59 1213

原创 第1章 机器人SLAM定位入门最全知识体系及资料推荐入门

机器人SLAM知识体系:多而杂。

2020-05-14 18:21:22 5659 1

原创 第12.8章 NDT与ICP的精度对比及适用场景分析

NDT和ICP是点云配准的两种主流算法,各有优势。ICP适合小位移场景,精度高(毫米级);NDT对初始位姿鲁棒性强,适用于大位移配准。性能上,ICP计算更快但抗噪性差,NDT内存需求高但对噪声更鲁棒。实际应用中建议结合使用:先用NDT进行粗配准,再用ICP精修。参数调优时需注意ICP的对应点距离阈值和NDT的网格分辨率。选择算法需根据具体场景的精度需求、点云密度和计算资源综合考虑。

2025-06-27 10:14:37 79

原创 第12.7章 PC点云pcl::PointCloud<pcl::PointXYZI>传参用哪种方式好?

本文对比了三种函数参数传递方式的区别:智能指针引用传递、智能指针值传递和对象引用传递。智能指针引用高效但需确保指针非空;智能指针值使用方便但有复制开销;对象引用高效但无法处理空对象。在自动驾驶应用中,推荐使用智能指针引用(Ptr &)处理点云数据,因其高效安全且避免深拷贝,特别适合大规模点云处理。文中提供了NDT匹配的代码实例,展示了智能指针引用的实际应用场景。

2025-06-26 11:04:56 3

原创 第4.5章 C++ 函数工作实战笔记: 锁与条件变量在自动驾驶开发中的应用

本文介绍了C++多线程编程中的关键同步机制。首先阐述了C++类和函数两个核心概念,重点讲解了锁机制的使用。通过两种RAII风格的锁封装(std::lock_guard和std::unique_lock)实现资源自动管理,并建议在不同场景下的选择:简单情况用lock_guard,条件变量环境中必须使用unique_lock。接着说明条件变量的概念及其与unique_lock的配合使用方式,展示了线程间通过条件变量进行协作的经典模式。文中还提供了自动驾驶定位数据处理的代码示例,演示了如何在实际场景中应用这些同步

2025-06-23 11:16:24 15

原创 第4.4章 C++ 函数工作实战笔记:多线程编程在自动驾驶算法中应用

本文介绍了C++多线程编程的核心概念与应用。首先概述了C++类和函数的基础知识,重点讲解了C++11引入的std::thread标准线程库及其在自动驾驶等领域的实际应用。文章详细解析了std::thread的三种可调用对象形式(函数指针、函数对象和lambda表达式),并通过示例代码演示了多线程处理不同传感器数据(GPS、IMU、激光雷达)的方法。最后以自动驾驶定位算法为例,展示了如何使用多线程处理UWB数据,并说明lambda表达式如何通过this指针访问类成员。全文提供了从基础到实践的完整多线程编程指导

2025-06-23 11:05:18 14

原创 第4.3章 C++函数工作实战笔记:自动驾驶常用函数最全总结

本文介绍了C++编程中常用函数及其应用场景,重点聚焦自动驾驶定位算法开发中的实际用例。主要内容包括: 标准库函数:涵盖了输入输出、字符串处理、动态内存管理(含智能指针)、文件操作和异常处理等基础功能,适用于传感器数据处理和系统错误管理。 数学函数:通过<cmath>库演示了平方根、幂运算、绝对值等常用数学计算,这些在定位算法中的距离计算和误差处理中尤为重要。 容器操作:展示了STL容器(如vector)和算法(排序、查找、转换)的使用,这些功能对处理车辆位置数据等结构化信息非常实用。 文章通过具

2025-06-23 11:01:44 12

原创 第4.2章 C++ 函数工作实战笔记:函数传参最全总结

本文总结了C++函数传参的7种主要方式及其在自动驾驶定位算法中的应用。包括传普通值、普通指针、常量引用、指针常量、右值引用、智能指针和引用指针,着重分析了各种方式的适用场景和优势。特别详细讲解了右值引用的使用场景、示例代码和注意事项,强调其在减少拷贝操作、提高性能方面的价值。文章指出,在自动驾驶算法开发中,常量引用与指针常量的组合最为常用,而合理选择传参方式对程序性能和代码可维护性至关重要。

2025-06-23 10:57:42 11

原创 第4.1章 C++ 函数工作实战笔记:普通函数、回调函数、lambda等函数用法最全总结

本文摘要:文章系统介绍了C++中的可调用对象及其在自动驾驶定位算法中的应用。主要内容包括:1) 普通函数的基本结构、声明调用及参数传递方式选择原则;2) 函数模板实现泛型编程的方法;3) 回调函数的四种实现方式(函数指针、std::function、仿函数、bind联合使用);4) Lambda表达式语法与捕获机制;5) constexpr函数的编译期计算特性。文章结合自动驾驶场景,强调了合理选用可调用对象对提升代码模块化和性能的重要性,并提供了各类可调用对象的典型用法示例和最佳实践建议。(149字)

2025-06-23 10:50:23 17

原创 第3.7章 C++类工作实战笔记:类模板

本文介绍了C++类模板及其在自动驾驶算法开发中的应用。类模板允许编写泛型代码处理不同数据类型,提高了代码复用性。文章详细讲解了类模板的定义语法和使用方法,并重点分析了标准库中模板类的典型应用,包括容器类(vector、list等)和智能指针(unique_ptr、shared_ptr、weak_ptr)。通过具体代码示例,展示了类模板在管理传感器数据和内存资源时的实际应用价值,为算法工程师开发高效、通用的定位系统提供了技术参考。

2025-06-23 10:03:18 9

原创 第3.6.2章 C++类工作实战笔记:抽象类与接口的全面解析

C++抽象类与接口在自动驾驶系统开发中的关键应用。文章首先介绍了抽象类与接口的基本概念,重点说明纯虚函数(=0)的使用及其对抽象类的判定作用。在规则部分强调了抽象类不能实例化,派生类必须实现所有纯虚函数的特点。通过形状类的实例展示了不同派生类实现相同接口的多态特性,并以Apollo工程的BaseMapMatrix为例,解读了抽象类在地图矩阵操作中的实际应用,包括初始化、数据序列化等纯虚函数接口设计。这些抽象设计方法为自动驾驶系统的模块化开发和功能扩展提供了重要支持。

2025-06-23 09:59:27 82

原创 第3.6.1章 C++类工作实战笔记:什么情况下需要用到虚析构函数?

摘要: 析构函数是否定义为虚函数取决于使用场景。若无需通过基类指针删除派生类对象(直接创建派生类对象),则无需虚析构函数,编译器会按正确顺序调用析构。若需通过基类指针删除派生类对象,则必须将基类析构函数声明为虚函数,否则仅调用基类析构函数,导致派生类资源泄漏。虚析构函数确保派生类析构函数被调用,避免内存泄漏。综上,多态场景下需虚析构,否则非必要。(150字)

2025-06-23 09:55:59 199

原创 第3.6章 C++类工作实战笔记:多态、虚函数、纯虚函数及虚析构函数最全代码总结

摘要 本文介绍了C++面向对象编程中多态、虚函数、纯虚函数以及虚析构函数的核心概念与应用。通过几何图形类的示例展示了静态多态与动态多态的区别,重点说明了虚函数实现运行时多态的机制。文章详细解析了纯虚函数创建抽象类的方法,并强调了虚析构函数在防止内存泄漏中的重要性。最后通过代码示例演示了虚析构函数和纯虚析构函数的工作原理,这些技术对于构建灵活的类层次结构(如自动驾驶中的传感器数据处理系统)具有重要价值,能显著提升代码的可维护性和健壮性。

2025-06-23 09:52:49 523

原创 第3.5章 C++类工作实战笔记:类继承最全代码总结

本文介绍了C++类继承在自动驾驶定位算法中的应用。主要内容包括:1)基类与派生类的关系及定义方式;2)访问控制规则及其重要性;3)公有、保护和私有三种继承类型的特点;4)多继承的语法和使用场景;5)虚继承解决多重继承问题的机制。文章通过传感器数据处理的具体案例,说明了合理运用类继承可以提高代码复用性、可维护性和可扩展性,同时强调了在复杂系统中避免二义性的重要性。

2025-06-23 09:37:24 9

原创 第3.4章 C++类工作实战笔记:和类相关关键字最全总结

摘要: 本文介绍了C++中9个关键特性在自动驾驶定位算法开发中的应用。主要内容包括:static静态数据成员用于全局共享数据,default/defaulted函数简化构造/析构实现,delete禁用默认函数,explicit避免隐式转换,virtual实现多态(含虚析构、纯虚函数),override明确重写关系,friend授予访问权限,volatile确保实时变量访问,final禁止继承/覆盖。这些特性可提高代码安全性、可维护性和可靠性,在自动驾驶系统开发中具有重要实践价值,如管理全局配置、实现模块化设

2025-06-23 09:33:39 76

原创 第3.3章 C++ 类工作实战笔记:C++ 类相关函数最全总结

本文介绍了C++中各类成员函数在自动驾驶定位算法中的应用。主要内容包括:特殊成员函数(默认/拷贝/移动构造函数、析构函数、拷贝/移动赋值运算符),非静态/静态成员函数,友元函数,内联函数和仿函数。通过传感器数据、位姿信息等实际场景的代码示例,展示了如何正确使用这些函数特性编写高效、安全的自动驾驶算法代码,特别是涉及指针管理和资源分配时的注意事项。这些概念对于自动驾驶定位算法工程师的C++开发工作至关重要。

2025-06-20 15:07:03 454

原创 第3.2章 C++类工作实战笔记:访问修饰符总结

本文概述了访问修饰符及其应用:public允许类内外访问,private仅限类内(默认),protected允许派生类访问。三类成员特点不同:公有成员可外部直接访问,私有成员需通过成员函数,受保护成员类似私有但派生类可访问。继承方式影响成员可见性:public继承保持原权限,protected继承将public降级,private继承全降级。访问成员变量时,普通成员通过.或->,静态成员用类名::变量名,继承场景下派生类可通过基类函数或直接访问保护/公共成员。私有成员始终仅限类内访问。

2025-06-20 14:58:24 294

原创 第3.1章 C++类工作实战笔记:类定义与实例化对象最全总结

本文探讨了C++类与对象在自动驾驶定位算法开发中的应用。主要内容包括:1)类定义的基本语法及其在定位算法中的具体应用;2)三种对象实例化方式(直接声明、普通指针和智能指针)及其适用场景,强调智能指针在内存管理中的优势;3)数据成员的访问方法。文章结合定位算法开发的实际需求,帮助工程师掌握如何合理运用C++面向对象编程技术,构建高效可靠的定位系统模块。重点分析了不同实例化方式的优缺点,并推荐在动态内存管理中使用智能指针以避免内存泄漏。

2025-06-20 14:46:18 615

原创 第2.8章 自动驾驶工作实战笔记:C++ I/O 与终端参数输入最全代码总结

本文介绍了C++ I/O操作在自动驾驶定位算法开发中的关键应用。主要内容包括:1) <iostream>的基本输入输出用法;2) <iomanip>的格式化输出功能;3) <fstream>的文件读写操作;4) 终端参数输入的实现方式。文章通过具体代码示例展示了如何输出传感器数据、格式化显示结果、读写数据文件以及通过命令行设置算法参数。这些I/O操作是自动驾驶系统中数据处理和调试的基础,开发者可根据实际需求进行扩展,如支持更复杂的数据格式和参数解析。

2025-06-20 14:33:59 259

原创 第2.7章 自动驾驶工作实战笔记:C++中static关键字最全代码总结

本文介绍了C++中static关键字在面向对象编程中的关键应用,重点讲解了静态成员变量和静态成员函数的使用方法。静态成员变量通过类共享数据,需要在类外单独初始化;静态成员函数可通过类名直接调用,但只能访问静态成员。文章还通过自动驾驶算法开发的实际案例,展示了静态成员在数据共享和功能调用中的优势。最后强调了静态成员初始化的要点:必须在类外进行,且所有对象共享同一内存空间。这些特性使static成为优化代码结构和提高效率的重要工具。

2025-06-19 16:23:59 844

原创 第2.6章 自动驾驶工作实战笔记:C++ 指针与引用最全代码总结

C++指针与引用在自动驾驶定位算法开发中的应用 本文系统介绍了C++中指针和引用的核心概念与应用。指针部分涵盖普通指针的特性、指针与数组的关系、动态数组内存管理以及智能指针(unique_ptr、shared_ptr、weak_ptr)的安全内存管理机制。引用部分对比了指针与引用的区别,分析了引用作为别名变量的特性及其在函数参数传递中的优势。作为自动驾驶定位算法工程师,深入理解这些特性可有效提升数据处理效率和内存管理安全性,对优化激光雷达、相机等传感器数据处理算法具有重要价值。

2025-06-19 16:14:37 866

原创 第2.5章 自动驾驶算法工作实战笔记:const修饰变量、指针、引用和函数及与define区别最全总结

本文系统梳理了C++中const关键字的使用方法及其在自动驾驶定位算法中的应用。文章首先介绍了常量基础概念,然后详细分析了const修饰普通变量、指针变量(常量指针、指针常量、常量指针常量)、引用(常量引用、临时对象、常量对象、函数传参)的具体用法。在函数方面,重点讲解了const修饰函数形参、返回值以及成员函数(常函数)的注意事项。最后比较了const与#define、constexpr的区别,强调const在保证代码安全性和稳定性方面的重要作用。在自动驾驶定位算法中,合理使用const可以有效保护传感器

2025-06-19 16:10:07 988

原创 第2.4章 机器人自动驾驶工作实战笔记:C++关键字最全代码总结

本文系统梳理了C++编程语言的62个关键字及其在自动驾驶定位算法中的应用。内容分为11个章节,涵盖基本数据类型、控制流、函数与类、存储类、模板、命名空间等关键领域。重点介绍了bool、char等基本数据类型在传感器数据处理中的使用,if、for等控制流语句在算法逻辑实现中的作用,以及class、struct等面向对象特性在代码模块化中的价值。文章通过具体代码示例(如传感器类定义、坐标结构体声明等)展示了各关键字在实际工程中的运用场景,为自动驾驶工程师提供了全面的C++关键字参考指南。

2025-06-19 15:58:03 744

原创 第2.3章 C++变量作用域在自动驾驶算法开发中的应用

本文系统解析了变量作用域在自动驾驶定位算法开发中的关键应用。文章从变量定义位置(局部变量、形式参数、全局变量)入手,详细阐述了四种作用域类型的特点:局部作用域用于函数内临时存储,全局作用域共享系统参数,块作用域限定代码块访问,类作用域封装相关数据。特别强调变量初始化的必要性,指出未初始化变量可能导致定位精度偏差。通过典型代码示例,展示了如何处理名称冲突及类作用域变量的使用。最后指出合理运用不同作用域变量对提升自动驾驶系统代码质量的重要价值。全文为算法工程师提供了实用的变量作用域应用指南。

2025-06-19 15:52:38 7

原创 第2.2章 C++变量修饰符在自动驾驶中的实战应用

本文系统介绍了C++中的变量修饰符及其在自动驾驶定位算法中的应用。内容涵盖存储类说明符(auto、register、static等)、类型修饰符(const、volatile)、作用域修饰符(thread_local、constexpr)及其他特殊修饰符(friend、virtual等)。通过合理运用这些修饰符,工程师能优化算法性能,确保代码安全性和可维护性。文章结合自动驾驶场景实例,展示了如何利用修饰符处理多线程数据共享、性能优化等实际问题,为开发高性能自动驾驶系统提供了实用指导。

2025-06-19 15:44:09 13

原创 第2.1章 C++基础类型及变量在自动驾驶定位算法中的应用与实践

摘要 本文系统阐述了C++数据类型在自动驾驶定位算法中的关键应用。第一部分分析了基础数据类型的工程选择,包括整形类型(如uint16_t存储激光雷达序号)、浮点数类型(float/double精度权衡)、字符类型(协议解析)和布尔类型(状态机控制)。第二部分探讨了自定义数据类型的设计实践:结构体封装多传感器数据、强类型枚举定义状态机、联合体优化内存使用、类模板实现矩阵运算。第三部分重点讨论了变量操作规范,强调列表初始化安全实践、左值/右值语义优化,以及类型修饰符(const/volatile)和转换在传感器

2025-06-19 15:30:10 854

原创 第1.3章 Git本地配置、代码仓管理及代码上传最全入门教程

本文详细介绍了Git在自动驾驶定位算法开发中的核心配置和使用技巧。主要内容包括:SSH密钥生成与用户配置、仓库创建与管理(多仓库推送、撤销操作、文件忽略等)、reset选项区别(--hard与--soft)、远程仓库名称修改、checkout操作(分支切换、标签管理)以及错误代码回退方法。通过系统化的Git操作指南,帮助开发者高效管理代码版本,提升自动驾驶算法开发的协作效率与代码质量。

2025-06-19 15:13:30 530

原创 第1.2章 CMake技术指南:从基础到自动驾驶项目实践

本文系统介绍了CMake在自动驾驶开发中的全流程应用。从CMake基础配置到复杂项目管理,涵盖多目录结构、外部库集成和条件编译等进阶功能。重点讲解了自动驾驶开发中的编译优化、测试框架集成、交叉编译部署等场景化实践,包括针对车载嵌入式平台的ARM架构优化、定位算法单元测试配置以及车载系统安装规则。通过CMake高效管理激光雷达、视觉SLAM等多模块编译,实现算法开发到嵌入式部署的全链路构建支持,为自动驾驶工程实践提供完整的构建系统解决方案。

2025-06-19 15:01:57 649

原创 第1.1章 自动驾驶定位工作实战笔记:Linux系统、网络技术与远程调试实战指南

本文档系统介绍了自动驾驶定位算法开发的Linux工程实践全流程。主要内容包括:1)Linux目录规划与代码调试技术,如gdb调试定位算法关键断点;2)车载网络配置实战,包含组合导航IP设置、多传感器子网划分及网络故障排查;3)开发环境搭建与版本控制,涉及apt工具链安装、deb包制作和git工作流;4)数据运维技巧,如日志分析、远程传输及存储优化;5)远程调试方法,包括ssh环境配置和vim高效编辑。文档通过具体代码示例(如ROS工程管理、tcpdump抓包分析等)为定位算法工程师提供了从开发到部署的完整解

2025-06-19 14:46:13 1438

原创 第5.4章 SLAM实战:使用std::chrono计算传感器消息时间戳

摘要:本文介绍了C++11中std::chrono时间库在机器人及自动驾驶定位中的应用。重点分析了三种时钟类型:system_clock(系统时间)、steady_clock(稳定计时)和high_resolution_clock(高精度时钟)的特性与适用场景。通过代码示例详细讲解了如何使用steady_clock获取微秒级时间戳,包括时间点转换、纪元时间计算和单位转换等关键操作。文章还提供了简化后的时间获取函数,并强调在定位系统中选择合适时钟类型(如steady_clock保证单调性)和精确时间单位的重要

2025-06-17 11:01:04 204

原创 C++常用的计时方法及其使用场景总结

摘要:C++中常用计时方法包括:1) std::chrono(高精度,跨平台);2) std::clock()(CPU时间统计);3) Unix的gettimeofday(微秒级);4) Windows的QueryPerformanceCounter;5) RAII自动计时器。选择方法需考虑精度、平台及使用场景,建议高精度需求用std::chrono,跨平台使用RAII计时器。注意多次测试取平均值,并关注编译器优化和多线程的影响。

2025-06-17 10:41:59 406

原创 Eigen::Isometry3d中rotate()和 linear()有什么区?

Eigen::Isometry3d的两种初始化方式在数学结果上等价,但存在关键差异: 变换顺序: rotate()+pretranslate()体现先旋转后平移的顺序(T=translation·rotation) 直接设置linear()和translation()无顺序概念 应用场景: 第一种方式更符合坐标系变换的物理意义(如先旋转后平移) 第二种方式适合直接构造已知参数的变换矩阵 两种方式最终生成的变换矩阵相同,但第一种更具可读性,推荐用于表达明确的变换逻辑。注意避免混淆pretranslate()和

2025-06-16 15:11:13 627

原创 第5.3章 SLAM实战:欧拉角旋转方向到底是顺时针为正还是逆时针为正?如何定义正负的?

欧拉角中Z轴分量为-89.965°旋转方向:绕Z轴的负方向(顺时针)旋转约89.97°;与正方向的区别:若分量为+89.965°,则为绕Z轴正方向(逆时针)旋转。该方向判定与欧拉角的定义(右手定则)和符号约定直接相关,与具体旋转顺序(ZYX)中的其他轴无关。

2025-06-16 14:35:05 226

原创 计算机时间为什么从1970年开始算起?

Unix时间戳以1970年1月1日00:00:00 UTC为起点,主要源于早期Unix系统的技术限制和设计需求。32位有符号整数的时间范围决定了选择1970年可确保足够使用到2038年(避免过早溢出),同时便于底层计算和存储。历史背景上,1970年接近Unix开发时期,且UTC基准简化了跨平台时间处理。相比之下,其他系统如Windows使用1601年起点,Mac OS采用1904年变种。虽然2038年问题(32位溢出)仍需应对,但64位方案已基本解决。这一设定因Unix的广泛影响成为行业标准,体现了早期计算

2025-06-13 14:11:32 832

原创 第5.2章 传感器时间戳同步实战:组合导航GPS时间转为Unix时间作为IMU、激光点云等消息的观测时间

本文解析了GPS时间与Unix时间的转换原理及注意事项。GPS时间从1980年1月6日起算,由周数和周内秒数组成;Unix时间从1970年1月1日起算。两者转换需考虑315964782秒的起始时间差和闰秒调整(GPS包含闰秒而Unix忽略)。关键区别在于:GPS时间采用连续计时且存在1024周溢出问题,Unix时间广泛用于计算机系统。实现转换时需注意周计数器修正、精度损失等问题,建议使用专业库处理并定期更新闰秒信息,特别是在高精度应用中需谨慎处理时间同步误差。

2025-06-13 14:10:40 696

原创 C++ 容器 `data()` 方法的完整用法总结

C++标准库容器的data()方法提供对底层数据缓冲区的直接访问,支持零拷贝操作和与C接口交互。该方法适用于vector、array、string等连续存储容器,返回元素类型指针。核心用途包括高性能计算、内存优化和序列化处理,需注意指针在容器扩容时会失效,且无边界检查。与C++20的std::span结合可实现更安全的视图访问。最佳实践包括避免在持有指针时修改容器,并配合size()进行边界控制。

2025-06-13 11:09:25 943

原创 C++多线程中wait()为什么要传入锁lock,而且必须传入的还是std::unique_lock?

C++多线程中wait函数必须传入锁的设计原理可以类比餐厅排队场景:就像顾客需要持排队号(锁)才能等待座位(共享资源),线程通过锁原子性地释放资源并进入等待,避免竞态条件。技术层面,锁确保共享数据安全访问,unique_lock支持灵活解锁/加锁,配合条件变量实现线程同步。这种机制防止虚假唤醒,保证条件满足前线程安全等待,是线程同步的关键设计。

2025-06-11 10:37:01 223

原创 第3.2.2章 什么时候使用Eigen::Isometry3d还是Affine3d:详解与选择指南

选择Isometry3d还是Affine3d取决于你的变换是否需要保持刚体性质。如果仅涉及旋转和平移,优先使用Isometry3d,它更高效且语义明确;如果需要缩放、剪切等更复杂的变换,则使用Affine3d。合理选择类型可以提高代码的安全性、可读性和性能。

2025-06-10 16:06:49 272

原创 Eigen::Vector3d 元素访问方式总结

推荐使用x()y()z()成员函数访问的元素,因为它们语义明确、不易出错,且性能最优。在需要高性能或与 C 库交互时,可使用data()指针。

2025-06-10 14:45:42 324

原创 第3.2.1章 Eigen代码实战:四元数赋值用法总结及与变换矩阵转换

Eigen库中四元数(Quaternion)的赋值方法解析:Quaterniond和Quaternion<double>本质相同,但Quaterniond是更简洁的别名。主要赋值方式包括直接构造(w,x,y,z分量、旋转矩阵或轴角)、赋值运算符和成员函数赋值。使用时需注意参数顺序、归一化处理和头文件包含,常见错误包括模板参数缺失和构造顺序错误。四元数广泛应用于旋转矩阵转换、姿态组合等场景,合理选择赋值方式能提高代码可读性和正确性。

2025-06-10 14:29:26 313

pcl源码point-types.h

pcl源码point-types.h

2025-01-13

机器人及自动驾驶SLAM定位知识体系构建思维导图

详细总结了自动驾驶SLAM定位所需要的知识

2025-01-03

计算机视觉中的多视图几何(中文版)

计算机视觉中的多视图几何(中文版),很适合搞slam学习.

2018-05-09

空空如也

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

TA关注的人

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