- 博客(13)
- 收藏
- 关注
原创 ROS常用工具B-TF工具
本文详细介绍了ROS2中的坐标变换(TF)系统及其应用。主要内容包括:1)坐标变换的基本概念,包括平移、旋转以及静态/动态坐标系关系;2)TF系统的核心架构与实现原理,如广播方、监听方工作机制;3)通过海龟跟随案例展示TF的实际应用,包括静态/动态坐标变换的实现方法;4)详细解析了TF广播与监听的具体编程实现,包括功能包创建、代码编写、编译运行等完整流程。文章通过理论结合实践的方式,系统地阐述了ROS2中坐标变换的关键技术,为机器人系统中多传感器数据融合和运动控制提供了重要解决方案。
2026-03-27 21:49:11
376
原创 ROS的常用工具A-Launch文件
ROS Launch文件简化了机器人系统中多节点的启动流程。本文介绍了ROS2官方推荐的Python格式Launch文件,相比XML和YAML更灵活,支持编程逻辑。主要内容包括:Launch文件的核心功能(启动节点、参数配置、编程能力);Python格式Launch文件的编写步骤(导入库、定义函数、实例化节点);配置文件编辑和编译注意事项;以及执行Launch文件的方法。文中还通过一个话题通信示例展示了具体实现过程,并区分了argument和parameter两种参数类型的不同用途。Launch文件作为RO
2026-03-26 17:45:54
368
原创 ROS2的核心概念E-参数
ROS参数系统是机器人系统中的全局字典,支持多种数据类型(bool/int/float/string等),以键值对形式实现节点间数据共享。参数具有动态特性,任一节点修改后其他节点可立即获取最新值。文章通过小海龟例程展示了参数的基本操作(list/get/set/dump/load),并提供了Python/C++的API实现示例,包括参数声明、读取和动态修改功能。还介绍了参数在机器视觉等场景中的应用,以及进程管理和参数命令的常用操作。参数系统为ROS节点提供了灵活的配置和通信机制。
2026-03-17 21:03:45
357
原创 ROS2的核心概念D-通信接口
本文介绍了ROS通信接口的概念与应用。通信接口作为节点间数据传输的标准结构,包含话题(.msg)、服务(.srv)和动作(.action)三种类型,通过定义统一的数据格式实现语言无关的通信。文章详细阐述了接口的创建流程:需建立独立功能包,配置CMakeLists.txt和package.xml文件,并提供了服务接口和话题接口两个实际案例。案例中实现了相机驱动节点发布图像、视觉节点识别目标位置、客户端获取位置信息的完整流程,展示了接口在降低程序耦合性方面的优势。最后总结了接口相关命令和常见问题解决方法,如摄像
2026-03-17 19:39:17
405
原创 ROS2的核心概念C-服务
本文介绍了ROS2中的服务通信机制。服务采用客户端/服务器模型实现同步通信,客户端发送请求后等待服务器响应,适用于需要即时反馈的场景。文章详细阐述了服务模型的特点:服务器端唯一而客户端可多个,通过.srv文件定义服务接口。通过创建demo_interface功能包实现AddTwoInts服务接口,并演示了服务端和客户端的实现代码。最后介绍了服务相关命令操作,包括查看服务列表、数据类型及发送服务请求的方法。该案例完整展示了ROS2服务从定义到使用的全过程。
2026-03-12 19:59:33
363
原创 ROS2的核心概念B-话题
ROS话题通信机制实现节点间异步数据传输。话题采用发布/订阅模型,支持多对多通信:多个发布者可向同一话题发送数据,多个订阅者可接收同一话题数据。消息作为标准接口定义数据传输格式,通过.msg文件自定义。典型应用场景包括传感器数据、运动指令等周期性数据。文中提供了C++实现案例,包含发布者和订阅者节点代码、CMake编译配置及常用ROS2话题操作命令,如查看话题列表、信息、频率及手动发布消息等。该机制通过解耦和动态连接实现灵活通信,适合构建复杂的机器人系统。
2026-03-12 16:13:27
353
原创 中断优先级和RTOS任务优先级
中断优先级与RTOS任务优先级是单片机系统中两个独立的管理层级。中断优先级由硬件管理,数值越小优先级越高,能抢占任何任务和低级中断,响应速度极快;任务优先级由RTOS内核管理,数值越大优先级越高,只能在任务间抢占,响应较慢。二者通过特定机制协作:硬件中断快速处理关键事件后,通过API通知高优先级任务进行后续处理。在FreeRTOS中,优先级高于configMAX_SYSCALL_INTERRUPT_PRIORITY的中断禁止调用任何RTOS API,以避免内核数据损坏。
2026-03-09 20:07:23
302
原创 ROS机器人操作系统
ROS(机器人操作系统)是一个分布式通信框架,用于协调机器人部件或集群之间的通信。它提供元操作系统功能,包括分布式通信机制、松耦合软件框架和丰富的开源库。ROS采用节点(Node)作为基本单元,通过话题(Topic)、服务(Service)和动作(Action)三种机制实现进程间通信。文件系统采用工作空间(Workspace)组织功能包(Package),支持C++/Python开发。其开源社区采用仓库(Repository)、元包(MetaPackage)和功能包的分层结构,便于大型项目管理。ROS广泛应
2026-03-03 16:35:21
569
原创 C语言内存问题
本文系统介绍了C语言程序的内存分布结构,包括内核空间、栈区、堆区、全局数据区、常量区和程序代码区等功能区域。通过7个典型代码示例分析了指针操作、内存分配与释放中的常见问题,如空指针访问、栈内存返回、已释放内存使用等。文章提出了内存管理的理论验证方法,建议通过地址打印和调试工具观察实际内存分配情况,并指出需要注意编译器差异、地址随机化等因素。最后强调将理论知识结合实践验证的重要性,为深入理解C语言内存管理提供了系统指导。
2026-02-02 12:18:07
958
原创 LVGL的移植
本文详细介绍了将LVGL图形库移植到2.8英寸LCD电阻屏的完整步骤。主要内容包括:获取LVGL v8.3源码、创建工程目录结构、配置Keil工程文件分组、设置基础编译选项等。重点讲解了显示设备和输入设备的移植配置方法,包括修改分辨率参数、初始化函数实现、缓冲区配置策略以及触摸屏驱动适配。文中还提供了关键配置文件的修改要点,如lv_conf.h和lv_port_disp.c等,确保LVGL能正确运行在目标硬件上。通过详细的代码示例和注释,完整展示了从源码获取到最终可运行工程的整个移植过程。
2026-02-01 18:55:36
579
原创 FreeRTOS的移植
本文详细介绍了FreeRTOSv10.2.1在STM32F407ZET6平台上的移植过程。主要内容包括:1)两种获取FreeRTOS源码的方法(官网下载和代码托管网站);2)工程文件移植步骤,涉及文件目录创建、关键文件复制和配置;3)Keil5环境配置,包括文件添加、头文件包含路径设置及常见错误解决方法(如SystemCoreClock定义、函数多重定义等)。最后指出移植完成后即可进行RTOS开发。文章还分享了Keil5快捷键修改技巧。整个移植过程清晰完整,为开发者提供了实用参考。
2026-01-24 14:19:51
689
原创 实用系统与开发工具问题解决方案集
本文提供三项实用技术方案:1)通过修改注册表和清理图标缓存移除Windows快捷方式小箭头,给出具体批处理命令;2)在Linux终端缺失clear命令时,使用ANSI转义码实现清屏功能并配置持久化;3)推荐常用开发资源国内镜像源(清华、阿里云等),加速软件下载。三种方案均给出详细操作步骤和代码示例,涵盖Windows系统优化、Linux终端配置及开发环境加速等常见需求。
2026-01-24 10:04:58
345
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅