自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(162)
  • 收藏
  • 关注

原创 Git 中的 合并(merge) 和 变基(rebase)的区别

场景 合并(Merge) 变基(Rebase)历史记录 保留分支分叉,生成合并提交 线性历史,隐藏分支痕迹适用分支 公共分支(如 main) 本地分支或未推送分支冲突处理 一次性解决 逐个提交解决提交哈希值 原提交不变 生成新的哈希值风险 历史可能冗长 禁止对已推送提交使用。

2025-04-05 11:01:14 417

原创 没有设置交换空间时,colcon编译内存不足

【代码】没有设置交换空间时,colcon编译内存不足。

2025-04-05 11:00:20 102

原创 CLion ROS2 cmake_commands脚本

创建cmake_commands.sh文件到功能包的src目录。

2025-03-26 20:29:04 115

原创 clion 开发 ros2 功能包

在clion加载cmakelists.txt即可。在终端打开clion。

2025-03-26 20:28:26 100

原创 ubuntu 修复引导

使用 Boot Repair 工具。

2025-03-25 21:59:25 208

原创 ROS2 部署大语言模型节点

编写ROS 2节点代码:在这个节点中,我们将订阅一个话题并发送消息到本地的大语言模型,然后将结果发布到另一个话题。4GB GPU的DeepSeek-Coder 1.3B模型,并且它已经被量化或优化过。

2025-03-25 21:58:29 431

原创 配置 Ignition Gazebo 使用 GPU 渲染

【代码】配置 Ignition Gazebo 使用 GPU 渲染。

2025-03-22 20:40:09 239

原创 git 子模块的使用

子模块非常适合管理独立但依赖的代码库,但需要谨慎操作以避免版本混乱。熟练掌握后,可以极大提升多仓库协作的效率!

2025-03-21 00:00:09 408

原创 ROS 设置gazebo使用GPU

在使用 ROS 2 启动 Gazebo 并配置 GPU 支持时,通常需要设置一些环境变量和参数,以便 Gazebo 能够正确地使用 GPU 来加速模拟。

2025-01-23 10:14:11 667

原创 激光线扫相机无2D图像的标定方案

通过最小二乘法或非线性优化(如Levenberg-Marquardt算法)求解相机的内外参数(如激光平面方程、相机坐标系到平台坐标系的变换矩阵)。适用场景:若激光线扫相机安装在可控运动平台(如机械臂、平移台、旋转台)上,且平台的运动精度已知(例如通过编码器或高精度步进电机控制)。适用场景:使用已知尺寸和形状的三维标定物(如立方体、多平面结构),通过激光线在标定物上的投影几何关系进行标定。将标定物固定在相机视野内,移动激光线扫相机或标定物,使激光线扫过标定物的不同平面。

2025-01-23 10:13:33 900

原创 QT 线程锁

在 Qt 中,线程锁是用来同步多线程访问共享资源的机制,防止数据竞争和线程安全问题。

2024-12-05 09:40:37 1365

原创 均方差的理解

均方差(Mean Squared Error,MSE)是一种衡量数据或预测值与实际值之间差异的常用统计量。在机器学习和统计学中,它通常用于评估模型的预测效果。

2024-12-05 09:40:19 308

原创 C++ 在函数内部定义函数

在标准 C++ 中,不能在函数内部直接定义另一个函数。Lambda 表达式:在函数内定义一个匿名函数(推荐使用)。函数指针:通过指针引用其他函数。std::function:使用C++11 提供的 std::function 存储可调用对象。GCC 扩展:如果你使用的是 GCC编译器,可以使用其支持的嵌套函数功能,但不建议在跨平台应用中使用。在大多数情况下,推荐使用 lambda 表达式,因为它是标准 C++ 的一部分,且非常灵活,能够方便地捕获外部变量。

2024-12-03 11:12:18 1324

原创 C++ 封闭函数局部变量不能在 lambda 体中引用,除非其位于捕获列表中

lambda 表达式 不允许直接使用外部作用域中的变量,除非它们被显式地捕获。捕获列表 [x] 可以捕获一个或多个外部变量,[=] 可以捕获所有外部变量(按值),而 [&] 捕获所有外部变量(按引用)。如果没有捕获列表,lambda 内部不能直接访问外部变量,这也是 C++ 对作用域和变量生命周期的保证。通过捕获列表,C++ 保证了 lambda 的作用域不会无意中影响外部变量的生命周期,从而避免了潜在的错误和副作用。

2024-12-03 11:11:29 908

原创 CMake Warning (dev) at CMakeLists.txt:22 (find_package): Policy CMP0146 is not set: The FindCUDA m

看到的警告是因为 FindCUDA 模块在新版本的 CMake 中已经被移除。为了抑制这个警告,可以在 CMakeLists.txt 文件中设置 CMP0146。如果仍然需要查找 CUDA 并进行链接,可以用 CMake 提供的官方 CUDA 包替代。确保相应地更新你的代码,以适应新的 CMake 结构。完成这些修改后,重新运行 CMake,警告就会消失了。这条指令告诉 CMake 使用新的行为,即 FindCUDA 模块不再可用。1.打开 CMakeLists.txt 文件。

2024-11-02 00:09:42 587

原创 已知一个法向量和一个点,求该平面的ModelCoefficients,并使用ProjectInliers将点云投影到该平面

【代码】已知一个法向量和一个点,求该平面的ModelCoefficients,并使用ProjectInliers将点云投影到该平面。

2024-10-31 10:57:58 122

原创 terminate called after throwing an instance of ‘Ogre::UnimplementedException‘ what(): OGRE EXCEPT

【代码】terminate called after throwing an instance of ‘Ogre::UnimplementedException‘ what(): OGRE EXCEPT。

2024-10-31 10:56:38 189

原创 C++ 代码工程化

在C++中进行代码工程化通常涉及多个步骤,以确保代码的可维护性、可扩展性和可重用性。

2024-10-29 11:22:53 938 1

原创 C++ 使用标准库实现日志功能

【代码】C++ 使用标准库实现日志功能。

2024-10-29 11:22:42 262 1

原创 Windows.h 和pcl有冲突

如果只出现特定函数或类型的冲突,可以考虑在包含 Windows.h 之前或之后定义特定的宏来屏蔽那些冲突。例如,有时可能需要避免使用 #define 的定义。在同时使用 Windows.h 和 PCL 时,调整包含顺序和使用 NOMINMAX 通常可以解决大部分冲突问题。如果问题仍然存在,逐步调试和分析具体的错误信息会有助于找到更好的解决方案。

2024-10-24 16:13:46 344

原创 c++ 标准库读写 ini 文件

下面是一个完整的 INI 文件类的实现,包括读取和写入 INI 文件的功能。

2024-10-24 16:12:52 698

原创 QT 软件打包为一个单独可执行.exe文件

通过以上步骤,你可以将 Qt 应用程序打包成一个独立的可执行文件,以便于分发和安装。确保在测试阶段检查所有依赖项是否都被正确包含,以避免在其他计算机上运行时出现问题。

2024-10-18 09:36:19 1466

原创 _tmain() main()的区别

这是 C/C++ 程序的标准入口点。所有 C/C++ 程序都至少有一个 main() 函数,程序从这个函数开始执行。_tmain() 是一种可移植的入口点,通常在使用 TCHAR 类型时定义,允许程序在宽字符(Unicode)和多字节字符(ANSI)之间切换。_tmain() 是一个宏,它会根据编译时的字符集设置(例如,使用 UNICODE 或 _UNICODE 宏)来选择合适的 main 函数版本。使用 main() 是 C/C++ 标准的做法。

2024-10-18 09:35:46 605

原创 静态库与动态库的区别与优缺点

选择静态库还是动态库通常取决于具体的应用场景和需求。如果需要较高的独立性和性能,且不介意较大的可执行文件,可以选择静态库;如果希望减少内存占用和便于更新,则动态库是更优的选择。

2024-10-04 14:27:14 533

原创 快速点特征直方图 (FPFH) 描述符 和 点特征直方图 (PFH) 描述符 的差异

FPFH 在保持特征表达能力的基础上显著提高了计算效率,使其在实际应用中更加灵活和实用。

2024-10-04 14:26:44 214

原创 点特征直方图 (PFH) 描述符

点特征直方图(PFH)是一种有效的三维点云描述符,通过捕捉局部几何特征来帮助解决各种计算机视觉任务。虽然在计算复杂度上存在挑战,但它的鲁棒性和信息丰富性使其在许多应用中非常有价值。

2024-10-01 02:09:44 663

原创 拓扑结构的理解

拓扑结构是数学中的一个重要概念,主要研究空间的性质及其在连续变换下的保持不变的特征。它是拓扑学的基础内容之一,广泛应用于多个领域,包括数学、物理、计算机科学等。

2024-10-01 02:09:05 688

原创 齐次坐标的理解

对于二维空间中的点(x,y),其齐次坐标可以表示为:其中w 是一个非零的标量。通常,我们选择 w=1 来恢复到欧几里得坐标。在三维空间中,齐次坐标的表示为:同样,w 也可以是任何非零值。齐次坐标是一个强大的工具,在计算机视觉和几何处理中起着关键作用。它提供了一种简洁的方式来处理各种几何变换,并且方便了点与无穷远点的表示。

2024-09-29 20:36:21 590

原创 根据给定的相机和镜头参数,估算相机的内参。

需要计算每个像素对应的实际尺寸(mm/pixel):水平方向像素大小:垂直方向像素大小:焦距f 为 35 mm,我们需要将其转换为像素单位:主点通常位于图像中心:综上所述,相机的内参可以大致表示为:最后,内参矩阵 K 可以写成:

2024-09-29 20:35:44 1044 1

原创 相机的内参 外参

内参 控制了图像的几何特性,如焦距和主点位置。外参 描述了相机在三维空间中的位置和方向。如果需要具体的外参数值,通常需要通过标定过程获得。标定过程中,使用已知三维场景点与其对应的二维图像点进行计算。

2024-09-27 23:39:20 662

原创 ros 话题 服务 行动的区别

在 ROS(Robot Operating System)中,话题(Topics)、服务(Services)和动作(Actions)是三种不同的通信机制,它们各自适用于不同的场景。

2024-09-27 23:38:35 812

原创 OpenCV 形态学处理

5.形态学梯度(Morphological Gradient):计算膨胀和腐蚀之间的差异,强调边缘。7.黑帽运算(Black Hat):闭运算的结果与原图之间的差。2.膨胀(Dilation):增大图像中的物体,填补小的孔洞。1.腐蚀(Erosion):减小图像中的物体,去除小的噪声。6.顶帽运算(Top Hat):原图与开运算的结果之间的差。3.开运算(Opening):先腐蚀后膨胀,去除小的噪声。4.闭运算(Closing):先膨胀后腐蚀,填补小的孔洞。

2024-09-25 16:26:51 614

原创 python 可变参数

在Python中,可变参数允许你在函数定义时接收任意数量的位置参数和关键字参数。可变参数主要有两种形式:*args 和 **kwargs。*args 用于接收任意数量的位置参数。这些参数会被存储为一个元组。2. 使用 **kwargs**kwargs 用于接收任意数量的关键字参数。这些参数会被存储为一个字典。3. 组合使用你可以同时使用 args 和 **kwargs,但args 必须在 **kwargs 之前。4. 使用示例你可以使用可变参数来处理不确定数量的输入,例如计算任意数量数字的和:

2024-09-25 16:26:26 258

原创 监督学习、非监督学习和自监督学习

监督学习:有标签,目标明确。非监督学习:无标签,发现模式。自监督学习:无标签,通过数据自身生成标签进行训练。

2024-09-20 17:10:10 456

原创 python 推导式

Python中的推导式(comprehensions)是一种简洁的方法,用于创建列表、字典和集合。它们使代码更简洁易读。

2024-09-20 17:09:31 367

原创 C++ PCL 中使用欧拉角旋转一个点

这段代码将一个点通过给定的欧拉角旋转,输出旋转后的坐标。你可以根据需要调整roll、pitch和yaw的值。定义旋转矩阵:使用欧拉角构造旋转矩阵。可以使用Eigen::Matrix3f来定义和计算旋转矩阵。应用旋转:将旋转矩阵应用到点的坐标上。

2024-09-11 15:45:29 414

原创 C++ PCL 确定法向量方向

假设坐标系是右手坐标系,并且 Z 轴指向上方。

2024-09-11 15:44:02 219

原创 分类与回归的区别

回归: 使用均方误差(MSE)、均方根误差(RMSE)、平均绝对误差(MAE)等指标。分类: 目标变量是离散的,分为若干类别。分类: 常见模型包括逻辑回归、决策树、随机森林、支持向量机(SVM)、神经网络。回归: 常见模型包括线性回归、岭回归、LASSO回归、回归树、神经网络。分类问题关注的是将样本归入正确的类别,而回归问题关注的是预测一个数值。回归: 目标变量是连续的,通常是一个数值。分类: 输出是类别标签,通常是有限的,如“是”或“否”。回归: 输出是一个数值,可以是任何实数,表示某种量度。

2024-09-08 01:43:01 370

原创 Python 设置跨文件的全局变量

在这个示例中,config.py 中的 GLOBAL_VAR 变量被定义为全局变量。main.py 导入了这个变量并在函数中打印它。当运行 main.py 时,它会输出 Hello, World!假设有两个文件:config.py 和 main.py。

2024-09-08 01:42:46 443

原创 将 python 文件打包为exe文件

可以使用 PyInstaller 来将 Python 文件打包为可执行的 .exe 文件。根据需要,可以添加更多选项来定制打包过程,例如添加图标或隐藏控制台窗口等。–onefile 选项将所有文件打包到一个 .exe 文件中。打包完成后,.exe 文件通常会在 dist 目录中找到。

2024-09-07 20:13:06 515

空空如也

空空如也

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

TA关注的人

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