- 博客(99)
- 收藏
- 关注
原创 【ros2】ROS2中激光雷达/IMU/深度相机配置与RViz可视化全指南
本文面向ROS2入门开发者,详细讲解在URDF/Xacro文件中为机器人模型添加激光雷达、惯性测量单元(IMU)、深度相机三类核心传感器的完整步骤,以及在RViz2中可视化传感器数据的实操方法。全文以ROS2 Humble版本为例,示例代码可直接复用,覆盖从配置到可视化的全流程。确保已安装ROS2 Humble及以下依赖包:2.2 功能包与目录结构创建标准化功能包目录,方便管理文件:目录说明:传感器配置核心逻辑:先定义传感器挂载的连杆/关节,再通过Gazebo插件配置传感器物理属性和ROS2通信参数。
2025-12-17 21:31:06
1135
原创 【ros2】roll pitch yaw是什么,如何判断正负方向
是描述机器人(或刚体)在三维空间中姿态的三个基本旋转角度,对应笛卡尔坐标系的三个旋转轴,通常以。为基准判断正负方向。
2025-12-17 20:35:36
930
原创 【ros2】Gazebo与RViz协同使用指南:仿真与可视化的完美结合
修改模型颜色:在URDF的<material>标签中调整颜色参数,或在RViz的RobotModel属性中修改Color。调整点云大小:在LaserScan属性中修改Size (m)参数,让点云更清晰。添加背景图:在RViz的Displays面板中,修改或添加Grid组件显示坐标系网格。Gazebo与RViz的协同使用是ROS 2机器人开发的核心技能,本文从基础原理、配置步骤到进阶场景,结合两轮差速小车、激光雷达、摄像头等多样示例,详细讲解了两者的配合方法。
2025-12-17 18:51:49
888
原创 【ros2】URDF与Gazebo的协同:仿真属性配置与实操指南
本文详细讲解了URDF中Gazebo相关属性的配置方法,包括全局参数、连杆物理属性、关节驱动属性、传感器挂载,以及Gazebo仿真环境的启动和实操技巧。对于入门小白而言,掌握这些内容是实现机器人物理仿真的基础。下一篇文章,我们将讲解Gazebo与RViz的协同使用方法,让你既能看到机器人的仿真运动,又能可视化传感器数据。
2025-12-16 08:54:55
1082
原创 【ros2】在RViz中可视化URDF机器人模型
RViz可视化URDF的核心流程可总结为**“三步法”**:验证URDF合法性 → 启动核心节点 → 配置RViz显示参数。对于小白来说,无需纠结不同RViz版本的界面差异,重点掌握设置、RobotModel添加、视图缩放的基础操作,以及用TF组件显示坐标系的通用方法。通过RViz,我们不仅能“看见”机器人的外形,还能调试关节运动、坐标系关系、碰撞盒等关键参数,为后续的仿真和实机控制打下基础。下一篇文章,我们将进入更有趣的环节——把URDF模型导入Gazebo仿真环境,让机器人真正“动起来”。
2025-12-16 08:46:09
811
原创 【ros2】告别重复代码:Xacro让URDF编写效率翻倍
在上一篇文章中,我们掌握了URDF的核心语法,但如果要编写复杂机器人(比如6轴机械臂、多轮机器人),纯URDF会充斥大量重复代码——相同的连杆结构写十遍、相似的关节参数改来改去,既费时间又容易出错。这时候就需要URDF的“增强版工具”——Xacro登场了。Xacro(XML Macros)是ROS(包括ROS2)专为URDF设计的宏扩展工具,核心是通过变量、宏、循环、条件判断等特性,让URDF编写从“复制粘贴”变成“参数化配置”。本文作为小白专属指南,会从基础语法到多场景实战,带你吃透Xacro的所有核心用
2025-12-15 22:04:38
804
原创 【ros2】从零认识URDF:机器人模型描述的“说明书”
visual>子节点只负责机器人在RViz2中的可视化效果,不参与任何物理计算,就像给零件“穿衣服”。<origin>:定义零件的局部坐标系相对于连杆原点的位姿,参数xyz表示平移(单位:米),rpy表示旋转(单位:弧度,绕x→y→z轴旋转);<geometry>:定义零件的几何形状,支持四种基础形状+外部3D模型;<material>:定义零件的颜色,需要提前定义材质。常见几何形状示例-- 连杆名称:base_link(底座),全局唯一 --> < visual > <!
2025-12-15 21:48:59
1121
原创 【ros2】ROS2 常用可视化与数据工具(rqt RViz bag)使用文档
ros2 bag 是 ROS2 数据记录与回放工具,支持录制话题数据并存储为数据库文件,后续可回放数据复现场景,用于算法调试、问题复现、数据离线分析(如导航路径优化、传感器数据处理)。RViz2 是 ROS2 核心三维可视化工具,支持坐标系、机器人模型、传感器数据(激光雷达、相机、IMU)、路径、点云等数据的可视化,是机器人建模、导航、感知功能调试的关键工具。本文详细介绍 ROS2 中 rqt、RViz、ros2 bag 三大核心工具的功能及实操步骤,帮助开发者高效完成调试、可视化与数据记录工作。
2025-12-06 18:22:19
691
原创 【ros2】ROS2 TF2在C++环境中的应用指南
核心功能:支持实时坐标系关系维护、任意时刻/任意两坐标系位姿查询、多旋转表示方式转换(四元数、欧拉角),且兼容ROS2时间系统,可查询历史变换数据。核心组件TF广播器():发布坐标系间的变换关系,分为静态广播(固定关系)和动态广播(实时变化关系)。TF缓冲区():缓存TF变换数据(默认缓存10秒),提供查询接口。TF监听器():订阅TF广播并自动更新缓冲区,无需手动编写回调函数。关键数据结构:存储变换数据,包含时间戳、父/子坐标系ID、平移分量(x,y,z)和旋转分量(四元数x,y,z,w)
2025-12-06 18:07:36
586
原创 【ros2】ROS2 TF(坐标变换)Python使用指南
发布TF静态TF:用发布一次固定位姿;动态TF:用+定时器周期性更新位姿。监听TF:用Buffer查询坐标系间的相对位姿,支持实时/历史数据。辅助工具:通过RViz2可视化TF树,通过实现欧拉角与四元数的转换。TF是机器人空间位姿管理的基础,掌握其使用是实现导航、抓取等功能的前提。
2025-12-05 21:14:55
675
原创 【ros2】欧拉角与四元数:从原理到转换详解
欧拉角的优势是“直观易懂”,但存在万向锁问题,不适合连续姿态插值;四元数的优势是“无万向锁、插值平滑”,但不够直观,需转换为欧拉角才能理解姿态;欧拉角转四元数的核心是“半角公式”,不同旋转顺序对应不同的转换公式,实际开发中常用成熟库(如ROS的)避免手动计算。在机器人开发中,通常用欧拉角配置初始姿态,用四元数进行实时姿态更新与传输,二者的转换是三维姿态处理的基础技能。
2025-12-04 21:59:12
957
原创 【ros2】ROS2 Launch 完全使用指南(从入门到精通)
Launch 是 ROS2 中用于批量启动节点、统一配置系统参数、管理节点依赖关系的核心工具。它通过单个配置文件(支持 XML/Python/YAML 格式),替代手动执行多个ros2 run命令,实现复杂机器人系统的一键启动与灵活配置。简化操作:无需逐个启动节点,减少终端切换与重复命令输入。集中配置:统一管理节点参数、命名空间、话题重映射,降低配置冲突风险。灵活控制:支持节点启动顺序、条件启动、动态参数传递,适配复杂场景。跨语言兼容:无缝启动 C++、Python 等不同语言编写的节点。
2025-11-28 21:33:15
506
原创 【ros2】ROS2 C++参数设置指南(含跨节点修改方法)
参数(Parameter)是ROS2中用于动态配置节点行为的键值对(Key-Value),支持运行时修改,无需重新编译代码。动态性:可在节点运行时查询、修改,实时生效。类型安全:支持整数、浮点数、布尔值、字符串、数组等类型。节点私有性:默认归属于某个节点,通过命名空间隔离。持久性:可配置为持久化存储,节点重启后保留参数值。参数广泛应用于机器人系统的动态配置,如调整PID控制器参数、设置传感器采样频率、配置路径规划阈值等。目标节点(提供参数服务,被修改方)。控制节点(创建客户端,发起修改请求)。
2025-11-16 22:09:42
945
原创 【ros2】ROS2 Python参数设置指南(含跨节点修改方法)
参数(Parameter)是ROS2中用于动态配置节点行为的键值对(Key-Value),可在节点运行时修改,无需重新编译代码。动态性:支持运行时查询、修改,实时生效。类型安全:支持整数、浮点数、布尔值、字符串、列表等类型。持久性:可配置为持久化存储(重启节点后保留值)。节点私有性:默认属于某个节点,也可通过参数服务器实现全局共享。适用场景包括:调整控制算法参数(如PID系数)、设置传感器阈值、配置路径规划参数等。目标节点):拥有可修改的参数(如max_speed控制节点。
2025-11-16 15:52:35
795
原创 【ros2】ROS2话题(Topic)通信完全指南:订阅与发布详解
标准消息:ROS2内置多种消息类型(如std_msgs:字符串:图像数据:运动速度指令自定义消息:需在接口功能包中定义.msg文件(如int32 age使用前需编译接口包,并在发布者/订阅者中导入依赖。话题是ROS2中实现异步数据传输的核心机制,其发布-订阅模式适合传感器数据、状态监控等场景。本文通过Python和C++示例,详细介绍了话题通信的实现步骤,包括节点创建、消息发布/订阅、编译配置等。高级知识中,QoS策略、话题工具、命名空间等内容可帮助优化通信性能和灵活性。
2025-11-15 23:22:05
1518
原创 【ros2】ROS2中添加资源文件(图片、声音、视频等)的完整指南
在ROS2中管理资源文件的核心是通过功能包路径定位,避免硬编码绝对路径。按规范组织资源目录(如通过构建脚本(setup.py)配置资源安装规则,确保资源被安装到share/功能包名目录。在代码中通过(Python)或(C++)获取功能包路径,动态拼接资源路径。这种方式确保了代码的可移植性,无论功能包安装在哪个环境,都能正确访问资源文件。
2025-11-15 23:13:31
988
原创 【ros2】ROS2功能包(Package)完全指南
接口包需用ament_cmake,依赖rosidl_default_generators(接口生成工具) ros2 pkg create my_interfaces --build-type ament_cmake --dependencies rosidl_default_generators std_msgs功能包是ROS2开发的基础单元,命令通过指定构建类型和依赖,可快速生成标准化的功能包结构。根据语言选择构建类型(for C++,正确配置(元信息与依赖)和编译脚本(setup.py。
2025-11-15 23:05:18
1067
原创 【ros2】ROS2 C++节点创建指南
创建类型功能包,依赖rclcpp。编写节点类(继承Node或),实现构造函数、回调函数等业务逻辑。配置,指定编译规则、依赖库和安装路径。编译并source环境,通过ros2 run运行节点。拓展知识中的动态参数、生命周期管理、内存管理等特性,是构建工业级机器人系统的关键。C++节点的高性能优势使其成为ROS2开发的首选语言,尤其适合实时控制、复杂算法等场景。掌握这些内容后,可进一步学习服务、动作等高级通信机制,实现更复杂的机器人功能。
2025-11-15 22:58:33
1518
原创 【ros2】ROS2 Python节点创建指南
节点(Node)是ROS2系统的基本执行单元,代表一个独立的功能模块(如传感器驱动、控制算法、数据可视化等)。每个节点通过ROS2的通信机制(话题、服务、动作等)与其他节点交互,共同构成机器人系统。节点的核心特征独立性:每个节点专注于单一功能(如“激光雷达处理节点”“底盘控制节点”)。通信性:通过话题(Topic)、服务(Service)等机制与其他节点交换数据。可配置性:支持通过参数(Parameter)动态调整行为。轻量级:一个机器人系统可运行多个节点,通过节点名称区分。
2025-11-15 22:34:52
1363
原创 【ros2】ROS2 C++服务端与客户端开发指南
定义服务接口(.srv)并编译接口包。服务端:继承,创建服务对象,实现请求处理回调函数,通过发布者/订阅者完成业务逻辑。客户端:创建客户端对象,异步发送请求,通过回调处理响应。相比Python,C++需更多关注内存管理(如智能指针SharedPtr)和线程安全(如互斥锁),但能提供更高的性能。结合参数动态配置和超时控制,可实现更健壮的服务通信逻辑,满足机器人系统的实时性需求。
2025-11-15 22:20:14
998
原创 【ros2】ROS2 Python服务端与客户端开发指南
继承Nodesuper().__init__('face_detection_server') # 节点名称# 创建服务:参数为(接口类型,服务名称,回调函数)FaceDetector, # 服务接口'/face_detect', # 服务名称(客户端需匹配)self.detect_face_callback # 请求处理回调函数# 工具初始化self.bridge = CvBridge() # 图像转换工具。
2025-11-15 22:11:50
1015
原创 【ros2】ROS2接口定义指南
(基于《ROS2机器人开发:从入门到实践》第4章+拓展知识)接口需单独放在类型的功能包中,便于其他功能包依赖。命令示例关键依赖说明::ROS2接口生成工具,自动将文件转换为C++/Python可调用的代码。:依赖已有的接口(如)时需添加,无依赖可省略。类型说明示例bool布尔值byte8位字节byte flagchar字符char typeint8uint8有符号/无符号8位整数int8 countint16uint1616位整数uint16 idint32uint3232位整数。
2025-11-15 22:01:27
1373
原创 【算法】0_算法工程师常见算法题
算法工程师面试的算法题型可归纳为“基础数据结构→经典算法思想→工程实践先掌握“基础数据结构”(数组、链表、栈、哈希表、树)的高频题(如LeetCode 1、206、20、146、102),确保面试中“保底不丢分”;再攻克“经典算法思想”(动态规划、回溯、双指针、贪心)的核心题(如LeetCode 416、46、15、55),这些是区分“基础扎实”和“能力突出”的关键;最后针对性准备“工程实践题”(海量数据、图论应用、排序优化),适配中高级岗位需求,体现“算法落地能力”。
2025-09-19 21:28:12
840
原创 【人工智能99问】QWen中的动态RoPE与LLaMA中的RoPE有什么区别?(40/99)
RoPE(Rotary Position Embedding,旋转位置编码)是一种为Transformer模型注入绝对和相对位置信息的技术。几何直觉:将词嵌入向量视为在高维空间中的一组二维子空间(例如,维度1和2构成一个平面,3和4构成另一个,以此类推)。旋转操作:对于序列中的第m个位置的token,它的查询(Query)和键(Key)向量会在每一个二维子平面上,根据其位置m旋转一个角度mθ。内积特性:两个经过旋转的向量和的点积,其结果只依赖于原始向量x_mx_n和它们的相对位置m - n。
2025-09-19 21:18:26
1197
原创 【人工智能99问】GPT4与QWen3的对比(39/99)
维度GPT-4QWen3架构16专家MoE,1.8万亿参数,密集型设计128专家MoE,2350亿总参数,激活220亿,独立专家设计训练数据13万亿tokens,多语言文本、代码、科学文献,无图像36万亿tokens,119种语言,中文占比高,含数学、代码专业数据推理成本高(密集模型),需高端GPU集群低(MoE架构),30B模型4张H20显卡即可部署核心优势多模态能力、泛化性强中文处理、推理效率、多语言稳定性适用场景多模态任务、专业领域深度分析代码生成、逻辑推理、多语言交互、低成本部署。
2025-09-09 22:19:22
897
原创 【人工智能99问】如何基于QWen3进行LoRA微调?(38/99)
基于QWen3开源模型进行LoRA(Low-Rank Adaptation)微调是一种高效的参数高效微调方式,既能适配特定任务,又能大幅降低显存需求。通过以上步骤,即可高效地基于QWen3进行LoRA微调,适配特定下游任务(如对话、摘要、翻译等)。QWen3模型可从Hugging Face Hub获取(如。显存优化**:除了4bit量化,还可启用。进一步节省显存(会牺牲部分速度)。1.** 目标模块适配。
2025-09-09 22:17:45
1114
原创 【人工智能99问】开源项目RAG flow_by_infiniflow介绍(37/99)
RAGFlow by infiniflow 是一个基于深度文档理解的开源 RAG(检索增强生成)引擎,其核心目标是通过精细化处理复杂文档和优化检索生成流程,实现从“可用”到“优质”的。RAGFlow by infiniflow 的开源地址是。RAGFlow 通过深度文档理解混合检索增强和模块化架构,解决了传统 RAG 系统在复杂文档处理和精准检索上的痛点。质量优先:智能分块和多模态解析确保 LLM 获得高质量上下文,减少幻觉。灵活扩展:模块化设计支持快速适配不同领域,企业可通过 API 或源码定制功能。
2025-09-08 19:18:05
1177
原创 【人工智能99问】检索增强生成(RAG)是什么?(36/99)
检索增强生成(Retrieval-Augmented Generation, RAG)是一种将信息检索技术与大语言模型(LLM)深度融合的AI架构,其核心本质是“检索器(Retriever)+ 生成器(Generator)”的协同工作模式——通过动态引入外部知识库,为LLM的生成过程注入新鲜、精准的事实信息,从而打破传统LLM依赖静态预训练知识的局限,显著提升生成内容的准确性、时效性和可解释性,同时大幅降低模型幻觉(Hallucination)风险。知识动态性。
2025-09-08 19:17:32
1177
原创 【人工智能99问】LLaMA中的RoPE是什么?(35/99)
RoPE(旋转位置编码)是一种用于Transformer模型的位置编码方法,由论文《RoPE: Rotary Position Embedding》提出。其核心思想是通过旋转矩阵对词向量的不同维度进行旋转,从而将位置信息编码到向量中。与传统位置编码(如正余弦编码)不同,RoPE的设计天然满足“相对位置不变性”——即编码后的向量之间的内积仅依赖于相对位置,而非绝对位置,这更符合Transformer注意力机制对位置关系的需求。
2025-08-31 19:53:31
1351
原创 【人工智能99问】Qwen3中的QK归一化是什么?(34/99)
Qwen3中的**QK归一化(QK-Norm)**是一种针对注意力机制中查询(Q)和键(K)的改进归一化方法,旨在提升训练稳定性和推理精度。QK归一化是Qwen3在注意力机制上的关键改进,通过点积前归一化+可学习参数调节,实现了训练稳定性、推理精度和硬件兼容性的全面提升。这一设计不仅解决了传统Transformer的数值溢出问题,还为大模型在边缘设备的部署提供了可行性,是Qwen3成为开源SOTA模型的重要技术基石之一。
2025-08-31 19:47:55
1022
原创 【人工智能99问】Qwen3简介(33/99)
Qwen3是阿里巴巴通义千问团队推出的第三代大型语言模型,在架构设计、训练策略和应用场景上实现了多项突破。
2025-08-31 19:45:51
1917
原创 【人工智能99问】GPT4的原理是什么?(32/99)
1. 架构设计GPT-4基于Transformer解码器架构混合专家模型(MoE):包含16个专家子网络,每个专家1110亿参数(共享550亿),每次推理激活2个专家,参数量等效2800亿。这种稀疏激活机制在保持万亿级参数规模的同时,推理能耗降低40%。多模态融合:视觉输入通过ViT-E编码器提取特征,与文本嵌入统一编码至7680维共享空间,通过跨模态注意力实现图文对齐。超大规模参数。
2025-08-29 19:15:16
1542
原创 【人工智能99问】参数调整技术(31/99)
后训练参数调整技术的核心是 “按需优化”—— 根据数据规模、资源条件、任务类型选择适配方案。全参数微调是性能天花板,但受限于资源;PEFT 技术通过创新参数更新方式实现 “轻量高效”,成为当前主流;提示调整在小样本场景独树一帜;领域自适应则聚焦专业场景的深度适配。实际应用中,需结合定量评估(性能指标)与定性需求(效率、部署难度),选择最适合的技术路径,实现预训练模型价值的最大化释放。
2025-08-29 19:06:36
1211
原创 【人工智能99问】Transformer实例代码全流程解析(30/99)
10层编码器和10层解码器每个层包含残差连接()和层归一化(多头注意力、位置编码、前馈网络等关键组件通过逐行解析可以看到,Transformer的设计核心是并行化处理(替代RNN的序列依赖)和注意力机制(捕捉长距离依赖),而残差连接和层归一化则是实现深层网络稳定训练的关键。
2025-08-17 13:07:38
1498
原创 【人工智能99问】层归一化是什么?(29/99)
层归一化是一种用于深度学习模型的归一化技术,通过对神经网络某一层的所有神经元输出进行标准化处理(沿特征维度),使数据分布保持稳定,从而加速训练并提升模型性能。与批量归一化(BatchNorm)不同,LayerNorm不依赖于批量大小,适用于RNN、Transformer等动态或小批量场景。层归一化通过特征维度的标准化和可学习的仿射变换,在保持模型表达能力的同时,显著提升了训练的稳定性和效率。其不依赖批量大小。
2025-08-17 13:05:06
834
原创 【人工智能99问】残差链接是什么,是如何起作用的?(28/99)
在传统的深层神经网络中(如VGG),当网络层数增加到一定程度后,模型的性能会出现明显下降——不仅测试误差上升,连训练误差也会上升(并非过拟合,过拟合是训练误差低但测试误差高)。它的核心思想是在网络的某一层与后面的层之间建立直接的“短路”连接,允许输入数据(或特征)绕过中间的部分网络层,直接传递到后续层中。传统网络中,梯度从后层向前层传播时,需要经过多层参数的链式求导,容易导致梯度值变得极小(梯度消失)或极大(梯度爆炸)。残差连接通过“跳跃”结构,让梯度可以不经过中间层的复杂变换,直接从后层传递到前层。
2025-08-17 13:00:31
838
原创 【人工智能99问】多头注意力机制中,如何让不同的头关注不同的信息?(27/99)
多头注意力机制通过“独立参数投影-差异化注意力计算-损失驱动分化-多信息整合”的协同设计,使不同头能够自发关注输入中的多样化信息。其核心精妙之处在于:无需人为设计头的功能,仅通过“共享全局损失+参数独立更新”的机制,就让模型在训练中自然演化出互补的注意力模式。这种设计极大提升了模型对复杂依赖关系的捕捉能力,成为Transformer等模型在NLP、CV等领域取得突破的关键支撑。
2025-08-17 12:55:23
808
原创 【人工智能99问】视觉注意力机制有哪些?(26/99)
视觉注意力机制已从早期的空间/通道注意力发展到 Transformer 主导的自注意力时代,其核心价值是动态聚焦关键信息。空间/通道注意力:轻量级,适合嵌入卷积网络;自注意力/多头注意力:全局建模能力强,适合复杂场景;交叉注意力:跨模态/任务适配,支持引导式学习。未来趋势包括:更高效的注意力计算(如线性注意力)、注意力与卷积的融合(如 ConvNeXt)、动态注意力结构(自适应选择注意力类型)等。理解各类注意力的特性,是设计高效视觉模型的关键。
2025-08-17 12:52:26
787
1
原创 【人工智能99问】注意力机制有哪些?(25/99)
类型核心特点输入来源典型场景复杂度Bahdanau注意力加性得分,参数多编码器+解码器早期机器翻译OnmO(nm)Onm缩放点积注意力乘性得分,无额外参数编码器+解码器机器翻译OnmO(nm)Onm自注意力序列内部依赖单一序列(Q=K=V)On2O(n^2)On2多头注意力多子空间特征单一序列(分多头)Transformer核心Ohn2O(hn^2)Ohn2交叉注意力跨序列依赖两个序列(Q≠K/V)图像描述、VQAO。
2025-08-17 12:50:24
768
原创 【人工智能99问】BERT的训练过程和推理过程是怎么样的?(24/99)
任务目标:输入文本(如“这部电影剧情紧凑,演员演技出色!”),输出情感标签(正面/负面)。微调数据:带标签的情感语料,示例:文本标签“这部电影剧情紧凑,演员演技出色!正面“画面模糊,音效刺耳,不推荐观看。负面BERT的训练过程通过“预训练筑基+微调适配”实现知识迁移:预训练用无监督任务从海量文本中学习语言本质,微调则用少量标注数据将通用知识转化为任务能力;而推理则是微调后模型对新数据的高效预测。这种模式大幅降低了NLP任务的落地门槛,成为现代自然语言处理的核心范式。
2025-08-10 16:40:39
782
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅