- 博客(228)
- 资源 (3)
- 问答 (1)
- 收藏
- 关注
原创 [持续更新]基于ubuntu平台学习激光SLAM及目标识别需要的知识体系(内含大量资源索引及案例),建议收藏,关注!!!
摘要: 在Ubuntu平台学习激光SLAM与目标识别需构建多维度知识体系: 系统基础:掌握Ubuntu操作、开发工具链(gcc/CMake/git)及环境配置; 编程与数学:精通C++(智能指针/多线程)和Python,强化线性代数、概率论及优化理论; SLAM核心:学习前端(ICP/NDT)、后端优化(g2o/Ceres)及主流方案(LOAM/LIO-SAM); 目标识别:涵盖点云聚类(欧式/RANSAC)与深度学习(PointNet/PV-RCNN); 传感器:熟悉激光雷达/IMU标定与数据同步; 实践
2025-12-05 17:02:16
1157
原创 find_package(CUDAToolkit REQUIRED) VS find_package(CUDA REQUIRED)
CMake中CUDA配置方式对比:传统find_package(CUDA)与现代find_package(CUDAToolkit) 传统方式(CUDA)兼容旧版CMake(3.0+),仅提供基础路径变量,需手动管理组件和版本。现代方式(CUDAToolkit,需CMake≥3.8)支持组件化查找(如cudart、cublas)、精确版本控制,并自动处理跨平台路径。推荐新项目优先使用CUDAToolkit,其优势包括: 组件化依赖管理 无缝集成包管理器 更好的跨平台支持 精确版本控制 旧项目若受限于CMake
2025-12-10 17:28:56
1014
原创 MarkDown表格语法
Markdown表格语法指南摘要: 使用|分隔列、-定义表头行,冒号:控制对齐方式(左/中/右)。支持多行内容(<br>)和转义竖线(\|),但合并单元格需HTML实现。常见问题包括列数不匹配导致的错位,建议保持语法简洁并预览验证。不同平台对表格功能支持差异较大,基础功能通用,高级样式需依赖特定解析器。适用于文档、数据展示等场景。
2025-12-05 16:42:05
360
原创 MarkDown(mermaid)样式定义
Mermaid中的classDef和class是样式定制的核心语法,用于为节点添加视觉效果。classDef定义样式类(如填充色、边框等),class将样式应用到指定节点。支持多类叠加、条件样式和全局默认样式设置。通过合理使用这两个语法,可以提升图表的可视化效果,区分主流程与分支节点,增强可读性和专业性。使用时需注意类名匹配和样式定义顺序,避免冲突。
2025-12-05 15:56:33
771
原创 MarkDown(mermaid)绘制流程图详细教程
本文详细介绍了使用Mermaid绘制流程图的方法,包含基础语法、节点样式、连接线类型和子图使用。教程涵盖节点定义(矩形、菱形等11种形状)、连接线样式(实线/虚线/带文本箭头)、子图分组技巧,并提供节点样式自定义、长文本换行等进阶功能。文章还包含用户登录流程完整案例,并解答渲染失败、节点重叠等常见问题,推荐了Mermaid Live Editor等实用工具。通过本教程可快速掌握Mermaid流程图绘制,适用于技术文档、项目管理等场景。
2025-12-05 09:40:39
1072
原创 gazebo harmonic 如何下载所有 Owner: openrobotics(1090) ?
在Gazebo Harmonic中,若需下载所有。的资源(如模型或世界),
2025-12-04 08:42:14
744
原创 gazebo harmonic 如何一次性下载所有模型/世界?
该库包含大量预构建的模型和世界文件,支持直接下载或通过脚本批量获取。启动Gazebo Harmonic时,通过命令加载项目中的世界文件(如。),可一键下载所有模型压缩包并解压到本地目录。),在左侧模型库面板中检查是否显示新下载的模型。启动Gazebo Harmonic(命令。官方提供了自动下载脚本(如。
2025-12-03 16:22:53
239
原创 sdf规范15-geometry
本文档概述了SDFormat(Simulation Description Format)的几何元素规范。SDFormat版本号与解析库libsdformat版本可能不同。文档详细说明了<geometry>元素及其子元素(如box、cylinder、heightmap等)的结构、属性和默认值,用于定义机器人仿真中的碰撞和视觉形状。每个几何类型包含必需/非必需参数、数据类型和功能描述,如长方体尺寸、圆柱半径/长度、高度图纹理混合控制等。该规范为仿真模型开发提供了标准化的几何定义方法。
2025-12-03 06:35:03
627
原创 sdf规范14-material
SDFormat规范定义了仿真场景描述文件的格式标准。其中<material>元素用于定义视觉元素的材质属性,包含多种子元素和属性:<script>指定外部材质脚本,<shader>配置着色器类型和法线贴图,<render_order>控制渲染优先级,<lighting>设置动态光照开关。此外支持传统材质参数(环境光、漫反射等)和基于物理的渲染(PBR),提供金属/粗糙度工作流的相关贴图配置(反照率、金属度、法线贴图等)。该元素非必需,但能实现精细
2025-12-03 06:34:40
758
原创 sdf规范13-visual
本文档介绍了SDFormat(Simulation Description Format)规范中的<visual>元素及其属性。<visual>元素用于定义3D模型的视觉表现,包含在<link>元素内。主要属性包括:name(必需)、cast_shadows(控制阴影投射)、transparency(透明度设置)和visibility_flags(可见性控制)。元素支持姿态定义(<pose>)、材质设置(<material>)和几何形状(<g
2025-12-03 06:34:20
897
原创 sdf规范12-collision
摘要:SDFormat规范定义了机器人仿真中的碰撞元素属性,包括名称、激光反射强度、最大接触点数等。碰撞体通过<geometry>定义形状,并可通过<surface>设置弹性系数和摩擦参数(如扭转摩擦系数、接触半径等)。位姿信息支持欧拉角和四元数表示,并可通过relative_to指定坐标系。该规范与libsdformat库版本可能存在差异,详见官网版本对照表。(150字)
2025-12-03 06:34:01
803
原创 sdf规范11-joint
本文档概述了SDFormat规范中关节元素的定义与属性。SDFormat是用于描述机器人模型的XML格式,其版本号独立于解析库libsdformat。文档详细说明了关节(Joint)元素的结构,包括必需属性如名称(name)和类型(type),后者支持continuous、revolute等9种关节类型。同时描述了关节连接关系(parent/child)、齿轮箱参数(gearbox_ratio)、螺丝关节参数(screw_thread_pitch)等关键元素,以及轴定义(axis)及其动力学属性(dynam
2025-12-03 06:33:44
997
原创 sdf规范10-sensor
SDFormat 传感器规范定义了机器人仿真中使用的传感器 XML 格式。规范版本与解析库 libsdformat 版本独立。传感器元素(<sensor>)可包含于链接(link)或关节(joint)中,支持多种传感器类型如相机、IMU、激光雷达等。每个传感器需指定名称和类型,并可配置更新频率、可视化、发布主题等属性。规范详细定义了各传感器特有参数,如相机触发模式、高度计噪声模型等。传感器数据可通过插件扩展功能,插件需指定共享库文件名和配置参数。该规范为机器人仿真提供了标准化的传感器建模方法。
2025-12-03 06:33:21
1057
原创 sdf规范9-link
摘要: SDFormat规范定义了机器人模型的XML格式,其中<link>元素是模型的基本物理组件,包含惯性、碰撞和视觉属性。链接可设置重力、风力、自碰撞等属性,并支持位姿、质量、惯性矩等物理参数配置。位姿可通过欧拉角或四元数表示,并支持相对坐标系引用。该规范通过版本控制和结构化元素树确保兼容性,详细文档见http://sdformat.org。
2025-12-02 15:12:25
841
原创 sdf规范8-model
SDFormat 版本(显示在上方下拉菜单中)定义了规范版本号。此版本号可能与 libsdformat 的发行版本号不同,libsdformat 是用于解析 SDFormat 文件的 C++ 库。有关规范版本与 libsdformat 版本的对应关系,请访问 http://sdformat.org/tutorials/developers/roadmap。
2025-12-02 15:05:44
842
原创 sdf规范7-actor
SDFormat 是一种用于描述仿真场景的XML格式规范,支持定义具有脚本化运动的特殊模型(actor)。actor可以包含皮肤文件(定义视觉效果和骨骼)和动画文件(驱动骨骼运动)。关键元素包括:<skin>定义模型外观,<animation>控制骨骼动画,<script>实现轨迹运动(通过关键点和张力参数)。actor还支持链接、关节和插件扩展功能。该规范通过版本控制与解析库libsdformat保持兼容,并提供详细的姿势坐标系说明(支持欧拉角和四元数)。示例展示了如何
2025-12-02 15:01:27
730
原创 sdf规范6-light
本文详细介绍了SDFormat中的<light>元素,用于定义仿真环境中的光源。主要内容包括:1)版本说明和元素概述;2)核心属性如名称和类型;3)子元素配置,包括基础光源属性、衰减控制、方向与光锥设置;4)位置姿态参数;5)示例解析和关键点总结。文章提供了完整的配置指南,帮助用户根据需求选择点光源、平行光或聚光灯,并合理设置衰减、阴影等参数,实现真实的光照效果。
2025-12-02 14:58:45
530
原创 sdf规范4-state
本文详细介绍了SDFormat中的<state>元素,用于记录仿真世界的当前状态。<state>位于<world>下,非必需但每个世界最多包含1个,可保存模型位置、速度、光照等信息。核心内容包括时间戳(sim_time/wall_time)、迭代次数、实体增删(insertions/deletions),以及模型和光源的状态细节(位姿、速度、开关状态等)。通过示例展示了如何定义状态数据,并强调其用于仿真保存/恢复和回放的实用价值,同时提醒注意版本兼容性和性能优化。
2025-12-02 12:56:20
928
原创 sdf规范3-scene
本文详细介绍了SDFormat中<scene>元素的功能和配置方法。<scene>是定义仿真环境视觉属性的核心元素,必须包含在<world>中。文章解析了其子元素的功能及参数设置,包括环境光(<ambient>)、背景色(<background>)、天空效果(<sky>)、阴影(<shadows>)、雾效(<fog>)等,并提供了完整的XML配置示例。通过调整这些参数,可以模拟不同光照条件、天气效果和时间变化,同
2025-12-02 12:53:42
777
原创 sdf规范2-world
本文深入解析了SDFormat中世界元素的结构与多场景配置方法。详细介绍了核心属性如<world>的必选参数、版本差异,以及多世界并行仿真和资源共享的实现方式。重点讲解了物理引擎、场景渲染、大气模型等关键子元素的配置规范,并阐述了插件系统的动态扩展能力。此外,还提供了高级功能如分布式仿真、坐标系管理的优化策略,以及版本迁移的兼容性解决方案。通过具体示例和常见问题解答,为多世界场景配置提供了全面的技术指导,确保仿真系统的稳定性和跨版本兼容性。(150字)
2025-12-02 12:49:37
895
原创 sdf规范1-sdf
SDFormat文件必须使用<sdf>作为根元素并指定版本号,支持多种根元素类型(如<world>、<model>等)并存。版本选择需注意兼容性,建议新项目使用最新稳定版并通过工具检查旧文件。文件可包含多个独立世界定义,但需避免命名冲突并注意插件兼容性。复杂场景建议拆分文件以提高性能。
2025-12-02 12:47:15
872
原创 Gazebo Classic 11 与 Gazebo Harmonic(Gazebo Sim) 的功能对比总结
Gazebo Classic 11与Harmonic功能对比摘要 传感器:Harmonic新增气压计、热成像相机等12种传感器,但RFID、声纳需修复兼容性。 SDF:支持参数化、Mujoco转换,闭合运动链功能待修复。 插件:新增Ackermann转向等多款模型插件,部分需改用API。 GUI:支持主题定制与动态加载插件,但撤销/缩放功能待完善。 物理引擎:新增TPE及自定义引擎,ODE/Simbody兼容性问题待解决。 核心差异:Harmonic强化了传感器扩展与模型复用能力,但部分Classic功能需
2025-12-02 09:17:34
777
原创 ros2 jazzy 支持 gazebo jetty 吗?兼容性如何?
ROS2 Jazzy 与 Gazebo 版本兼容性说明 ROS2 Jazzy 官方推荐搭配 Gazebo Harmonic,通过 ros-jazzy-ros-gz 包实现深度集成。旧版 Gazebo(如 Gazebo 11)与 Jazzy 不兼容,因其依赖已废弃的 gazebo_ros_pkgs 插件。新版集成采用 ros_gz 框架,支持高效数据传输。迁移时需安装 ros-jazzy-ros-gz 并替换代码依赖,测试显示性能提升显著。
2025-12-01 16:34:49
400
原创 Gazebo Jetty vs Gazebo Harmonic 差异性分析
摘要:Gazebo Jetty与Harmonic的主要差异体现在版本定位、功能及兼容性上。Jetty是长期支持版本(LTS),强调稳定性和长期维护,适合需长期项目支持的用户;Harmonic则侧重功能迭代,提供更前沿的技术特性。Jetty具备丰富的传感器模型、多物理引擎支持和高质量渲染,而Harmonic进一步优化渲染效率并可能引入新传感器与ROS集成。兼容性方面,Jetty表现更稳定,Harmonic因新特性可能存在短期适配问题。用户可根据对稳定性或新功能的需求选择版本。
2025-12-01 16:33:35
601
原创 旧版 gazebo11 和 新版Gazebo Jetty差异性比较
摘要:Gazebo Jetty(Harmonic)与Gazebo 11(Classic)在架构、性能、功能及资源管理上差异显著。Jetty采用模块化设计,支持按需加载组件,渲染效率提升40%,物理引擎优化35%,启动时间快4倍且内存占用减少42%。其支持多线程、ROS2深度集成及现代渲染技术,而Classic受限于单体架构,性能较低且仅兼容ROS1。Jetty在复杂仿真场景(如多机器人系统)中表现更优,资源管理更高效。
2025-12-01 16:10:12
615
原创 点云SIFT3D特征点云原理、算法描述及参数详细说明
摘要: SIFT3D是一种基于多尺度空间的三维点云关键点检测算法,扩展自2D-SIFT,具有尺度、旋转和光照不变性。其核心步骤包括:1)通过高斯模糊和下采样构建多尺度空间;2)在差分尺度空间(DoG)中检测局部极值点;3)利用二次函数拟合精确定位关键点,并通过对比度阈值和边缘抑制优化稳定性;4)基于梯度方向直方图分配主方向。关键参数包括尺度因子(min_scale)、金字塔层数(n_octaves)、对比度阈值(min_contrast)等。该算法鲁棒性强,适用于3D物体识别、点云配准等场景,兼顾精度与效率
2025-11-30 15:53:35
845
原创 点云NARF关键点原理、算法描述及参数详细描述
摘要:NARF(Normal Aligned Radial Feature)是一种基于深度图像的3D关键点检测算法,通过边缘感知和表面变化分析提取稳定特征点。其核心步骤包括:1)边缘点提取(邻域距离计算、边缘评分及分类);2)关键点检测(PCA分析、兴趣值计算及筛选)。关键参数包括窗口大小(默认5)、邻域采样数(3)和兴趣阈值(0.5)。算法优势在于多视角鲁棒性、计算高效性(基于2D深度图)及对噪声的适应性,适用于遮挡场景和结构显著区域的特征提取。
2025-11-30 15:41:57
927
原创 点云生成深度图的原理及算法步骤和参数详细说明
摘要:点云生成深度图通过将三维点云投影到二维平面实现,其过程包括:1)点云预处理;2)设置相机内外参数;3)坐标转换与投影计算;4)深度值映射。关键参数涉及相机焦距、主点坐标、旋转平移矩阵,以及投影分辨率和深度范围。算法最终输出二维深度矩阵,其中像素值反映场景距离信息,可通过灰度/彩色映射实现可视化。该技术为三维场景的二维表征提供了有效方法。
2025-11-30 15:24:36
547
原创 3DHarris特征提取算法描述及参数详细说明
摘要:3D Harris特征提取算法通过分析点云局部邻域的几何变化检测关键点,主要步骤包括邻域定义、协方差矩阵计算、特征值分解及响应函数评估。关键参数包括邻域大小(半径或近邻数)、响应函数权重k(0.04~0.06)和响应阈值,需根据点云密度调整。该算法具有旋转/平移不变性,适用于物体识别、重建等场景,但对尺度变化敏感。PCL库实现需结合法向量估计(如PCA)和非极大值抑制。局限性包括参数调优依赖经验及噪声敏感问题。
2025-11-30 15:15:19
746
原创 详细解释计算协方差矩阵 C(3D Harris),并给出计算样例及步骤
3D Harris特征提取通过计算点云邻域的协方差矩阵$C$来检测关键点。$C$基于邻域点坐标或法向量计算,反映局部几何变化。特征值分析可区分角点(三特征值均大)、边缘(两特征值大)和平面(一特征值大)。计算步骤包括:质心计算、偏移向量、外积矩阵、求平均和特征值分解。该方法通过调整邻域大小和响应阈值优化检测效果。
2025-11-30 15:06:43
917
原创 统计滤波(Statistical Outlier Removal)
摘要 Statistical Outlier Removal (SOR) 是一种基于统计学的点云滤波算法,通过分析邻域距离分布移除噪声点。算法计算每个点与其k近邻的平均距离,若超过均值加α倍标准差(μ+ασ)则判定为离群点。核心参数为邻域点数k(建议20-100)和阈值α(建议1.0-3.0),需根据点云密度调整。SOR适用于三维重建、机器人感知等场景,但对非均匀点云可能误判。PCL库提供便捷实现,改进方向包括自适应邻域和多尺度分析以提升鲁棒性。(150字)
2025-11-29 22:51:13
700
原创 空间点投影到直线、平面、球面、圆柱体方程,详细描述参数、原理
本文详细介绍了三维空间中点投影到直线、平面、球面和圆柱体的数学原理与方法。直线投影通过向量共线性计算垂足,平面投影沿法向量调整距离,球面投影沿球心连线确定交点,圆柱体投影则分两步处理轴线与侧面。每种方法均给出参数定义、计算公式及特殊情况处理,适用于计算机图形学、机器人学等领域的三维几何计算需求。
2025-11-28 20:02:39
339
原创 向量叉积的拉格朗日公式 u x (v x w) = v x (u.w) - w x (u.v) 证明
设向量uuxuyuzuuxuyuzvvxvtvzvvxvtvzwwxwywzwwxwywz。叉积(Cross Product)定义为三维向量,点积(Dot Product)为标量。
2025-11-28 19:53:28
681
原创 平面直线的正侧负侧怎么划分?
摘要:平面直线的正侧与负侧划分基于方向向量和法向量,通过点积或直线方程判断点的位置。正侧对应点积结果大于零,负侧小于零,直线上等于零。该概念在计算机图形学、机器人路径规划等领域有广泛应用,需注意法向量方向选择及数值稳定性问题。核心是通过向量运算实现平面有序分割,是几何分析的重要工具。(150字)
2025-11-28 19:35:55
281
原创 ros1官方已停止维护
摘要:ROS1官方支持已于2025年5月终止,仅社区维护关键漏洞。Noetic(最后一个LTS版本)停止更新后,新硬件和操作系统兼容性受限,存在安全风险。建议新项目直接采用ROS2(如Humble LTS),遗留系统可短期维持但需评估迁移。ROS2在实时性、跨平台支持等方面优势显著,推荐优先学习。工业场景或长期项目应规划逐步过渡至ROS2生态。
2025-11-28 11:45:39
414
原创 ubuntu24.04同时安装ros1和ros2
摘要: 在 Ubuntu 24.04 上同时安装 ROS1(Noetic)和 ROS2(Humble/Iron)需解决 Python 版本冲突(ROS1依赖Python 3.8,系统默认Python 3.12)及环境隔离问题。关键步骤包括: ROS1安装:通过官方源或手动编译(需切换Python 3.8),推荐使用虚拟环境或Docker隔离依赖。 ROS2安装:直接安装Iron(LTS)或配置Humble源。 环境管理:通过conda、虚拟环境或alias命令切换ROS1/ROS2环境,使用ros1_bri
2025-11-28 11:36:59
660
原创 laserMapping.cpp(sig_buffer.notify_all()存在冗余设计)
代码审查发现sig_buffer.notify_all()存在设计缺陷:该条件变量通知未被任何消费方使用,因timer_callback和sync_packages均未实现等待逻辑。这导致通知成为冗余操作,既浪费资源又可能误导维护者。建议移除该通知或补充对应的等待机制以实现真正的生产者-消费者模型。当前实现中条件变量完全未被消费,与设计意图严重脱节。
2025-11-28 09:10:54
276
原创 laserMapping.cpp(分析sig_buffer.notify_all()与timer_packages()的同步机制)
摘要:laserMapping.cpp实现了基于LOAM算法的实时激光雷达建图系统,采用多线程同步机制(sig_buffer.notify_all()与timer_callback)构建生产者-消费者模型。关键特性包括:1) 基于OpenMP的并行计算;2) 增量KD树管理点云数据;3) IMU-激光雷达时间同步;4) 动态阈值滤波(MOV_THRESHOLD=1.5m)和残差优化;5) ROS2接口集成。系统通过条件变量实现线程间高效通信,支持300米检测范围(DET_RANGE)和20Hz点云发布频率(
2025-11-28 09:09:12
349
原创 preprocess.cpp(代码注释)
本文介绍了激光雷达点云预处理模块的实现细节,主要包括以下内容: 预处理模块初始化:设置默认参数包括特征提取开关、雷达类型、盲区阈值等,并初始化各类角度阈值和特征提取参数。 核心处理流程: 支持多种雷达类型(AVIA/Oust64/Velodyne等)的差异化处理 提供特征提取和非特征提取两种处理模式 特征提取模式包含扫描线分组、点间距离计算和特征分类 非特征模式主要进行盲区过滤和点云降采样 关键技术点: 时间单位自动转换 无效点过滤机制 扫描线特征提取算法 不同雷达的坐标转换处理 该模块实现了激光雷达点云数
2025-11-27 15:17:24
266
排版系统基于LaTeX2e的科技文档排版技术:数学公式与浮动体处理综合指南
2025-12-05
矩阵导数汇总
2017-10-11
图像特征提取三大法宝:HOG特征,LBP特征,Haar特征
2017-01-20
optim.compute_gradients计算梯度 ,为什么返回的第一列为None?
2019-07-22
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅