自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

小秋 AI SLAM 入门实战教程

小秋 AI SLAM 入门实战教程

  • 博客(563)
  • 收藏
  • 关注

原创 小秋SLAM入门实战C++所有文章汇总

【代码】小秋SLAM入门实战C++所有文章汇总。

2023-12-31 11:01:21 598

原创 小秋SLAM入门实战pcl所有文章汇总

【PCL 保存点云数据为 PCD 文件的方法汇总】【pcl::IterativeClosestPoint参数用法用途汇总】【PCL (Point Cloud Library)可视化点云的工具汇总】

2023-12-31 00:13:55 544

原创 小秋SLAM入门实战vscode所有文章汇总

使用Shift+Ctrl+p快捷键调用查询输入栏,输入“cursor”,列表中会出现“切换多行修改键”这个选项。选择这个选项就可以在两种模式下切换。版权声明:本文为CSDN博主「小秋SLAM入门实战」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。这种模式下只可以选择竖列,不可以随意插入光标。这种模式下不仅可以选择竖列,同时还可以在多个地方插入光标。VScode对多行编辑有两种模式。Alt+Shift 竖列选择。Shift+Ctrl 竖列选择。

2023-12-30 22:49:38 762

原创 小秋SLAM入门实战ROS所有文章汇总

【关于ROS_PACKAGE_PATH的含义、理解和用法】ros::spin()、ros::spinOnce()用途用法ROS代码中的消息日志级别小秋SLAM入门实战教程汇总【launch文件中如何启动gdb调试单个节点多个节点】一个ros可执行程序可以定义几个节点?ros启动节点的launch文件你真的会写吗?【Point Cloud ROS】用一张彩色图像和深度图像生成点云图像【Point Cloud ROS】两张点云图像之间的位姿变换【ROS】创建工作空间Workspace和功能包Pac

2023-12-30 10:42:58 516

原创 小秋SLAM入门实战SLAM所有文章汇总

SLAM算法中的缓冲区和队列用途和用法【ORB_SLAM2源码解读】Intel RealSense D435i 实时跑ORB_SLAM2单目 双目 RGBD【从零开始学习SLAM】两帧之间的特征点视觉里程计并用g2o优化【从零开始学习SLAM】VIZ Pangolin 可视化【从零开始学习SLAM】BA问题用g2o求解重新投影误差优化相机位姿和路标点「零基础从零开始写VO视觉里程计」匹配的3D空间点求位姿并用g2o优化【ORB_SLAM2源码解读】Intel RealSense Depth Ca

2023-12-29 21:57:37 927

原创 小秋SLAM入门实战opencv所有文章汇总

【代码】小秋SLAM入门实战opencv所有文章汇总。

2023-12-29 19:29:20 712

原创 小秋SLAM入门实战深度学习所有文章汇总

如何直观的理解机器学习过拟合和欠拟合?如何直观的理解机器学习PR曲线和ROC曲线?深度学习开源网络RPN算法解析源码解读numpy下hstack()和vstack()的用法python下class self的用法python计算时间差divmod() datetime str()的用法如何理解深度学习中Batch Normalization中Batch所代表具体含义?Python下numpy多维数组axis = 0、1、2 计算的详细过程扩展tensor维度和这个原理类似如何理解深度学习tens

2023-12-29 19:24:35 532

原创 小秋SLAM入门实战ubuntu所有文章汇总

ubuntu 终端如何停止快速打印的输出以及恢复命令ubuntu 终端如何快速打开当前路径下的图形化窗口界面?killall -9用途用法ps -xu | grep这个命令的用途linux 下 top命令显示的是内存是堆内存吗?zip分割和合并关闭除当前 GNOME 终端窗口以外的所有其他 GNOME 终端窗口如何在安装系统后设置短密码【如何使用getrusage获取消耗的CPU时间和进程使用的最大物理内存】【webots安装使用教程】Linux系统下查看当前运行的进程和线程的几种方法

2023-12-29 19:22:58 738

原创 tf2::Transform 是 ROS tf2 库中用于表示二维或三维空间中的坐标变换的类

是 ROS tf2 库中用于表示二维或三维空间中的坐标变换的类。

2024-03-18 01:17:36 454

原创 tf2::Transform 、geometry_msgs::Transform、geometry_msgs::TransformStamped用法辨析

则用于 ROS 中传递静态或动态的坐标变换信息。用于编程中进行坐标变换的计算和操作,而。

2024-03-18 01:09:19 248

原创 tf2_ros::Buffer 用法用例汇总

TF2 监听器用于订阅 ROS 中的 TF 变换信息,并通过 TF2 缓冲区来获取坐标系变换。通过监听器,你可以查询在某个时间点下两个坐标系之间的变换关系,或者实时监听某两个坐标系之间的变换。下面这段代码用于从 TF2 缓冲区中查询 “laser_link” 到 “base_link” 坐标系之间的变换关系,并将结果存储在。在循环中,这段代码会持续不断地查询 “laser_link” 到 “base_link” 坐标系之间的变换关系,并将结果输出。类型的消息,表示从源坐标系到目标坐标系的变换。

2024-03-16 11:29:21 790

原创 功能包是 ROS 中最基本的软件组织单元,它可以包含节点、消息、服务、动作、参数配置文件、启动文件以及其他 ROS 资源

ROS(Robot Operating System)功能包是用于组织、构建和管理 ROS 软件项目的基本单元。功能包是 ROS 中最基本的软件组织单元,它可以包含节点、消息、服务、动作、参数配置文件、启动文件以及其他 ROS 资源。中,有一些内容是需要相互对应和保持一致的,以确保功能包的正确构建和依赖关系管理。是功能包(package)的两个关键文件,它们分别用于构建和描述功能包。中保持一致,可以确保功能包的正确构建和依赖关系管理。中通常不直接指定,而在。中通常不直接指定,而在。

2024-03-16 08:47:24 878

原创 计算两帧雷达数据之间的变换矩阵

【代码】计算两帧雷达数据之间的变换矩阵。

2024-03-09 17:54:50 675

原创 sensor_msgs::LaserScan雷达数据转换成pcl::PointXYZ数据类型

【代码】sensor_msgs::LaserScan雷达数据转换成pcl::PointXYZ数据类型。

2024-03-07 15:29:14 248

原创 git stash 是一个在Git中用于保存当前工作目录和暂存区的临时状态的命令

但是,您的工作目录中有一些未提交的修改,而您不想将这些修改直接提交到当前分支。,您可以在不提交未完成的工作的情况下切换分支,然后在需要的时候再回到原分支并继续工作。这样可以避免创建不完整或不稳定的提交,并确保您的分支历史保持整洁。这个命令将当前的工作目录和暂存区的状态保存为一个临时的储藏项,并将工作目录和暂存区恢复到干净的状态,以便您可以切换到其他分支。主要用于保存未提交的工作,而不是提交的工作。在需要的时候,您可以重新应用之前储藏的变更到当前分支。您已经成功修复了紧急的bug,并切回到了原来的分支。

2024-03-05 10:49:07 359

原创 TOML(Tom‘s Obvious, Minimal Language)配置文件格式基本用法和特性汇总

它用于配置文件的编写,其设计哲学是简洁明了,易于人类理解和编辑,同时也易于机器精确解析。TOML的语法类似于INI文件,但提供了更丰富的数据类型和结构。TOML广泛用于配置文件,特别是在需要清晰、易于手动编辑的文件中。它的简洁性和直观性使得它在许多现代应用程序和工具中被采用,例如Rust的包管理器Cargo和Python的包管理工具Poetry等。TOML的设计理念使其成为一个优秀的配置文件格式选择,尤其是对于那些希望最小化学习曲线同时需要表达复杂配置的开发者和应用程序。:用于表示嵌套的表。

2024-02-23 10:41:28 481

原创 常见的序列化数据结构方法及其优缺点汇总

将常见的序列化数据结构方法及其优缺点进行汇总,可以帮助在不同的应用场景中选择合适的序列化格式。每种序列化格式都有其特定的应用场景,选择时应考虑数据的复杂性、应用的性能要求、开发和维护的便利性以及生态系统的支持度。

2024-02-23 10:30:19 783 1

原创 几种常见的配置文件格式,以及它们的优缺点和用法汇总

选择配置文件格式时,应考虑到项目的需求、目标用户群体的偏好、以及开发团队的熟悉度。例如,如果目标是Web开发,JSON可能是首选;如果需要高度的可读性和注释支持,YAML可能更合适;对于简单的配置需求,INI或TOML可能足够了。配置文件是用于存储软件程序、操作系统或服务器等的设置的文件。不同的配置文件格式具有不同的结构和语法,选择哪种格式通常取决于具体的应用需求、易用性、可读性以及环境支持。每种格式都有其适用场景,了解它们的优缺点可以帮助做出更合适的选择。

2024-02-23 10:20:34 721

原创 C++标准模板库(Standard Template Library, STL)中容器类的成员函数resize()用法汇总

等)和一些其他类型的容器,其用法和目的是为了确保容器具有适当的大小来存储元素。下面是一些常见容器和。是处理动态数组和其他序列容器时非常有用的工具,它提供了灵活的方式来管理容器的大小和内容。这个函数主要关联于序列容器(如。

2024-02-23 09:52:24 281

原创 使用向量叉乘的方法判断点C相对于由点A和点B形成的直线的位置

文章目录

2024-02-21 15:12:40 204

原创 C++中的迭代器是一种访问容器(如数组、向量、列表等)中元素的对象,类似于指针。

迭代器提供了一种通用的、容器无关的访问容器元素的方法,使得无需知道容器的内部结构就可以遍历容器。在使用迭代器遍历容器的同时删除元素时,需要特别注意保持迭代器的有效性。由于删除元素会使指向被删除元素的迭代器及其之后元素的迭代器失效,正确的做法是使用。这是安全删除容器中元素的关键,避免了迭代器失效导致的未定义行为。迭代器是C++ STL的核心概念之一,熟练掌握迭代器的使用对于高效地使用C++ STL容器至关重要。和其他容器,这种删除元素的模式是类似的,但是要记住,不同类型的容器在删除元素时性能表现不同。

2024-02-21 10:52:16 537

原创 全网最详细解法|同济大学|高等数学|第八版|习题1-7

全网最详细解法|同济大学|高等数学|第八版|习题1-7

2024-02-20 22:36:22 128

原创 C++中的lambda表达式用法

通过上面的例子,你可以看到lambda表达式是如何提供一个简洁、灵活的方式来定义匿名函数的。它们可以让你现场定义函数功能,无需事先声明一个完整的函数,特别适合用作回调函数或在算法中直接定义操作逻辑。

2024-02-20 17:15:10 369

原创 Ubuntu系统下设置环境变量有几种方式区别分别是什么?

可以在。

2024-02-20 16:03:19 429

原创 C++代码获取环境变量的值

编辑文件gedit ~/.bashrc。运行代码输出预期结果。

2024-02-20 14:46:39 154

原创 全网最详细解法|同济大学|高等数学|第八版|习题1-6

全网最详细解法|同济大学|高等数学|第八版|习题1-6|6.1全网最详细解法|同济大学|高等数学|第八版|习题1-6|6.2

2024-02-16 12:50:30 151

原创 全网最详细解法|同济大学|高等数学|第八版|习题1-5

文章目录全网最详细解法|同济大学|高等数学|第八版|习题1-5|5.1全网最详细解法|同济大学|高等数学|第八版|习题1-5|5.2全网最详细解法|同济大学|高等数学|第八版|习题1-5|5.1全网最详细解法|同济大学|高等数学|第八版|习题1-5|5.2

2024-02-15 19:56:18 285

原创 全网最详细解法|同济大学|高等数学|第八版|习题1-4

文章目录同济大学|高等数学|第八版|习题1-4|4.1同济大学|高等数学|第八版|习题1-4|4.2同济大学|高等数学|第八版|习题1-4|4.1同济大学|高等数学|第八版|习题1-4|4.2

2024-02-07 17:48:13 182

原创 全网最详细解法|同济大学|高等数学|第八版|习题1-3

【代码】全网最详细解法|同济大学|高等数学|第八版|习题1-3。

2024-02-06 16:53:28 168

原创 全网最详细解法|同济大学|高等数学|第八版|习题1-2

同济大学|高等数学|第八版|习题1-2|2.1同济大学|高等数学|第八版|习题1-2|2.2同济大学|高等数学|第八版|习题1-2|2.3同济大学|高等数学|第八版|习题1-2|2.4

2024-02-04 22:41:52 245

原创 全网最详细解法|同济大学|高等数学|第八版|习题1-1

文章目录同济大学|高等数学|第八版|习题1-1|1.1同济大学|高等数学|第八版|习题1-1|1.2同济大学|高等数学|第八版|习题1-1|1.3同济大学|高等数学|第八版|习题1-1|1.4同济大学|高等数学|第八版|习题1-1|1.5同济大学|高等数学|第八版|习题1-1|1.6同济大学|高等数学|第八版|习题1-1|1.7同济大学|高等数学|第八版|习题1-1|1.8同济大学|高等数学|第八版|习题1-1|1.9同济大学|高等数学|第八版|习题1-1|1.10同济大学|高等数学|第八版|习题1-1|

2024-02-03 17:31:31 428

原创 IterativeClosestPoint<PointXYZL, PointXYZL, double>类是 PCL (Point Cloud Library) 中用于执行迭代最近点(ICP)算法的

类是 PCL (Point Cloud Library) 中用于执行迭代最近点(ICP)算法的类。这个算法用于计算两个点云之间的最佳对齐(即找到一个刚体变换,使得一个点云尽可能接近另一个点云)。这段 C++ 代码使用 PCL (Point Cloud Library) 生成了两个随机点云,应用了迭代最近点(ICP)算法来对齐这两个点云,并在一个窗口的两个视口中显示原始的未对齐点云和对齐后的点云。使用这些函数,你可以配置 ICP 算法的各种参数,执行点云对齐,并获取结果。

2024-01-30 18:09:10 1053

原创 pcl::VoxelGrid<PointXYZL>体素网格滤波常用函数功能和用法

它特别适用于理解点云处理的基本概念,如体素网格滤波,以及如何在 PCL 中进行点云的可视化。通过增加体素大小,可以更明显地看到滤波对点云造成的影响,从而更容易地比较滤波前后点云的差异。该程序是一个完整的 C++ 示例,用于演示如何使用 PCL (Point Cloud Library) 创建一个随机点云,应用体素网格滤波进行降采样,并使用 PCL 的可视化工具来显示滤波前后的点云。这些函数的组合使用可以实现对点云的有效降采样,即减少点云中的点的数量,同时尽可能地保持其结构和形状。

2024-01-30 14:38:08 757

原创 交互式变基是一个非常强大的Git功能,它允许您编辑、重排、合并或删除已经存在的提交记录

在Git中,如果你想要合并两个连续的提交,你可以使用交互式变基(interactive rebase)。这个过程允许你重写提交历史,合并提交,修改提交信息等。保存并关闭编辑器后,Git会暂停并要求你为合并后的新提交提供一个新的提交信息。你可以选择保留一个或两个原始提交的信息,或者写一个全新的提交信息。这是一个非常有用的技术,可以帮助你保持提交历史的整洁。这个命令会让Git列出最近三个提交(包括你想合并的两个提交和它们之前的一个)。首先,你需要找到你想合并的提交之前的一个提交的哈希。

2024-01-29 16:18:26 509

原创 如何将 Git 的默认编辑器从 nano 更改为 vim

通过这样的配置更改,您可以使用 Vim 的强大功能来编辑 Git 提交信息和进行其他文本编辑操作,这对于习惯使用 Vim 的用户来说更为方便。这个命令用于在基于 Debian 的系统(如 Ubuntu)上安装 Vim 编辑器。如果 Vim 尚未安装,此命令会从软件仓库下载并安装它。这个设置会告诉 Git 对于所有需要文本编辑的操作(如提交信息编写、交互式变基等)使用 Vim 编辑器。您提供的这个命令是用 Visual Studio Code 编辑器打开当前 Git 仓库的配置文件。

2024-01-29 14:56:23 651

原创 C++ 程序使用 OpenCV 可视化和分析两个图像之间特征点的对应关系

总的来说,这个程序用于可视化和分析两个图像之间特征点的对应关系。它在合并的图像上显示了左右图的特征点,以及相关的坐标信息,这在图像处理、立体视觉或特征点匹配分析中非常有用。

2024-01-26 13:55:31 747

原创 C++ 程序使用 OpenCV 生成两个黑色的灰度图像,并添加随机特征点,然后将这两个图像合并为一张图像并显示

总体来说,这个程序演示了如何在 OpenCV 中生成图像,添加特征点,进行基本的图像处理(例如颜色空间转换和特征点绘制),以及如何合并和显示图像。这种类型的处理在计算机视觉和图像分析中很常见。:程序创建了两个大小为 240x320 像素的黑色灰度图像,分别命名为。

2024-01-26 11:42:01 942

原创 C++ 程序使用 OpenCV 库来创建一个图像金字塔,然后将这些图像合并成一张大图

总结来说,这个程序的主要用途是生成一个图像金字塔并将其层合并成一张大图。代码中对图像尺寸和颜色的具体选择是为了演示目的,并可以根据实际需求进行调整。接着,通过一个循环生成了一系列彩色图像(共8张),每张图像的尺寸和颜色随循环变量。:程序计算出图像金字塔中的图像的最大宽度和最大高度,以确定合并后图像的总尺寸。:使用计算出的最大宽度和最大高度,程序创建了一个足够大的空白彩色图像。,用于容纳图像金字塔中的所有图像。:程序遍历图像金字塔中的每一张图像,并将它们复制到。图像尺寸逐渐减小,模拟金字塔的效果。

2024-01-26 11:09:05 648

原创 C++ 程序在当前执行目录下创建一个以数字命名的子目录

这个程序可以用于在特定父目录下创建一系列数字命名的子目录,例如用于保存不同的输出文件或数据。在这个例子中,由于父目录被设置为当前执行程序的目录,因此程序将在其被运行的同一位置创建新目录。函数创建新目录,设置权限为 0777(即对所有用户开放的读、写和执行权限)。如果创建成功,程序打印出目录已创建的消息;的函数,该函数接受一个路径字符串作为参数,并使用。:如果新目录已经存在,程序将打印一条消息说明这一点。函数中,程序设定父目录路径为当前执行程序的目录(:接着,程序构建了新目录的路径,这是通过将。

2024-01-26 10:38:43 302

原创 多线程C++代码出现段错误的集中情况和解决思路

多线程编程需要谨慎处理共享数据和资源的访问,以避免数据竞争、死锁和其他并发问题。之前,线程必须先获取互斥锁,这防止了同时修改同一内存位置的可能性。这样可以防止数据竞争,从而避免段错误的发生。段错误在这种情况下可能不总是发生,因为它依赖于线程的调度和执行顺序,这些因素在不同的运行和系统上可能有所不同。的访问和修改没有进行适当的同步,这可能导致数据竞争和未定义行为,有时甚至会导致程序崩溃(段错误)。: 使用互斥锁或其他同步机制来保护共享数据的访问。: 传递一个空指针给线程函数,并试图解引用它。

2024-01-24 15:23:45 1151

空空如也

空空如也

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

TA关注的人

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