logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

ROS2 核心通信:话题发布与订阅详解

话题(Topic)是 ROS2 中异步、单向、发布/订阅模式的通信机制。发布者(Publisher):生产数据,主动向指定话题源源不断发送数据订阅者(Subscriber):监听话题,话题有数据就自动触发回调函数处理数据话题:数据传输的“虚拟管道”,通过话题名称唯一标识话题通信是 ROS2 数据流的核心载体,几乎 90% 的机器人实时数据交互都基于话题实现。通过本文你掌握了:话题通信的异步单向、多

文章图片
#c++#开发语言
ROS2从零入门:节点原理、手写C++节点、功能包结构与工作空间最佳实践

ROS2 节点是执行具体功能的最小可执行单元,本质是一个编译后的可执行程序。机器人的所有功能都会被拆分为独立节点,各司其职:雷达驱动节点:负责读取雷达数据相机图像节点:负责采集、发布图像导航规划节点:负责路径计算、轨迹输出运动控制节点:负责控制底盘电机运动一个节点只做一件事,多个节点通信协作,完成机器人整体功能。工作空间是统一管理所有功能包的根目录,是 ROS2 项目的最高层级目录。所有自定义功能

文章图片
#c++#开发语言
ROS2从零入门:彻底搞懂节点+编写第一个自定义节点

在 ROS2 中,节点(Node)是执行单一特定功能的最小可执行单元,是编译后可以独立运行的程序。我们可以把机器人系统类比成一个团队,每个节点就是一个独立的工作人员:雷达节点:专门负责采集环境雷达数据相机节点:专门负责采集图像画面导航节点:专门负责路径规划、点位导航电机控制节点:专门负责控制机器人运动每个节点各司其职、独立运行,通过话题、服务等方式互相通信,最终实现机器人的完整功能。默认你已经配置

文章图片
#机器人#小程序
C++ 常用设计模式详解(单例、工厂、策略、状态、观察者)

作用:隔离对象创建逻辑,使用者只关心产品,不关心 new 细节简单工厂:快速开发,产品少;工厂方法:易扩展,产品多表格模式类型核心作用核心关键词单例创建型全局唯一实例私有构造、静态实例工厂创建型统一创建对象,隔离 new产品基类、工厂生产策略行为型动态替换平行算法Context 持有策略,外部切换状态行为型根据内部状态自动切换逻辑状态内部流转、状态机观察者行为型一对多消息通知发布 - 订阅、广播更

文章图片
#c++#设计模式#开发语言
Socket 编程预备

端口号(port)是传输层协议的内容• 端口号是一个2字节16位的整数;• 端口号用来标识一个进程,告诉操作系统,当前的这个数据要交给哪一个进程来 处理;• IP地址+端口号能够标识网络上的某一台主机的某一个进程;• 一个端口号只能被一个进程占用.0-1023:知名端口号,HTTP,FTP,SSH等这些广为使用的应用层协议,他们的 端口号都是固定的.1024-65535:操作系统动态分配的端口号.

文章图片
#服务器#linux#运维 +2
Linux 动态库和静态库详解

完成头文件展开、去注释、宏替换、条件编译等,最终形成xxx.i文件。编译: 完成词法分析、语法分析、语义分析、符号汇总等,检查无误后将代码翻译成汇编指令,最终形成xxx.s文件。汇编: 将汇编指令转换成二进制指令,最终形成xxx.o文件。: 将生成的各个xxx.o文件进行链接,最终形成可执行程序。关于以上各类文件后缀的含义:.o文件是目标文件,它是源代码编译后生成的二进制文件。.o是object的

文章图片
#linux#运维#服务器
c++ map和set功能详解

1. set是按照一定次序存储元素的容器。2. 在 set 中,元素的 value 也标识它 (value 就是 key ,类型为 T) ,并且每个 value 必须是唯一的。set中的元素不能在容器中修改( 元素总是 const) ,但是可以从容器中插入或删除它们。3.在内部, set 中的元素总是按照其内部比较对象 ( 类型比较 ) 所指示的特定严格弱排序准则进行 排序。

文章图片
#c++#算法#开发语言
linux信号详解

pending 位图:用于记录当前进程收到的所有信号,每一位对应一个信号,若该位为 1,表示进程收到了相应的信号。block 位图:用于记录当前被阻塞的信号,被阻塞的信号不会立即被处理,而是处于挂起状态,直到该信号的阻塞被解除。handler 位图:记录了每个信号对应的处理方式(默认、忽略、自定义处理函数)。信号处理是进程对收到的信号做出响应的过程。当进程收到一个信号时,系统会根据信号的处理方式进

文章图片
#linux#运维#服务器
C++多态详解

多态的概念:通俗来说,就是多种形态,具体点就是去完成某个行为,当不同的对象去完成时会 产生出不同的状态。基类的虚函数进行重写在继承中要构成多态还有两个条件(二者缺一不可):1. 必须通过基类的指针或者引用调用虚函数2. 被调用的函数必须是虚函数,且派生类必须对基类的虚函数进行重写public:virtual void BuyTicket() { cout << "买票-全价" << endl;

文章图片
#c++#开发语言
到底了