ROS2 架构梳理汇总整理
文章目录
- 前言
- 正文
- 机器人平台整体架构(ROS2)
- 图一、个人理解整体架构
- ROS2架构
- 图一、个人理解ROS2整体架构
- 图二、开发者整理ROS2整体架构
- 图三、Intel整理ROS2整体架构
- 图四、DDS具体架构说明
- ROS2 Control架构
- 图一、官方整整理ROS2 Control整体架构
- 总结
前言
本篇文章用来记录和梳理ROS2开发者及个人学习过程中对架构的理解,通过思维导图,分层架构图,逻辑流程图等说明。
正文
机器人平台整体架构(ROS2)
图一、个人理解整体架构
整体分为三个部分,分别是:
- ROS2:机器人操作系统核心框架
- ROS2 Control:硬件控制与执行框架
- MoveIt2:运动规划与高级控制层
三者协作关系总结
层级 | 组件 | 输入/输出 | 典型交互场景 |
---|---|---|---|
基础层 | ROS2 | 提供通信接口、节点生命周期管理 | MoveIt2与ROS2 Control通过Topic通信 |
执行层 | ROS2 Control | 接收轨迹指令,管理硬件接口 | 将MoveIt2的规划结果发送至电机控制器 |
规划层 | MoveIt2 | 生成运动轨迹,处理环境感知与避障 | 调用ROS2 Control接口验证轨迹可行性 |
ROS2架构
图一、个人理解ROS2整体架构
图二、开发者整理ROS2整体架构
图三、Intel整理ROS2整体架构
图四、DDS具体架构说明
ROS2 Control架构
ROS2 Control分为下边几个核心模块:
- Controller Manager:动态加载/卸载控制器(如关节位置控制器),协调硬件资源分配
- Resource Manager:管理硬件组件生命周期(如传感器、执行器)
也可以参考博主之前写的这篇文章——《ROS2 Control分析讲解-CSDN博客》
图一、官方整整理ROS2 Control整体架构
总结
后续该文章会持续更新,将之前文章中所提到Nodes、Interfaces、Topics、Services、Actions、Parameters、Launch等补充到本文,使整体链接起来。
如果觉得这篇文章启发到了你,动动小手给博主点个赞、点个关注就更棒啦!!!
相关文章:
ROS2 架构梳理汇总整理
文章目录 前言正文机器人平台整体架构(ROS2)图一、个人理解整体架构 ROS2架构图一、个人理解ROS2整体架构图二、开发者整理ROS2整体架构图三、Intel整理ROS2整体架构图四、DDS具体架构说明 ROS2 Control架构图一、官方整整理ROS2 Control整体架构 总结 前…...
蓝桥杯算法精讲:二分查找实战与变种解析
适合人群:蓝桥杯备考生 | 算法竞赛入门者 | 二分查找进阶学习者 目录 一、二分查找核心要点 1. 算法思想 2. 适用条件 3. 算法模板 二、蓝桥杯真题实战 例题:分巧克力(蓝桥杯2017省赛) 三、二分查找变种与技巧 1. 查找左边…...
多层感知机实现
激活函数 非线性 ReLU函数 修正线性单元 rectified linear unit relu(x)max(0,x) relu的导数: sigmoid函数 s i g m o i d ( x ) 1 1 e − x sigmoid(x)\frac{1}{1e^{-x}} sigmoid(x)1e−x1 是一个早期的激活函数 缺点是: 幂运算相对耗时&…...
Linux进程控制--进程创建 | 进程终止 | 进程等待 | 进程替换
1.进程创建 现阶段我们知道进程创建有如下两种方式,起始包括在以后的学习中有两种方式也是最常见的: 1、命令行启动命令(程序、指令)。 2、通过程序自身,使用fork函数创建的子进程。 1.1 fork函数 在linux操作系统中,fork函数是…...
Linux 网络编程(二)——套接字编程简介
文章目录 2 Socket 套接字 2.1 什么是 Socket 2.2 Socket编程的基本操作 2.3 地址信息的表示 2.4 网络字节序和主机字节序的转换 2.4.1 字节序转换 2.4.2 网络地址初始化与分配 2.5 INADDR_ANY 2.6 Socket 编程相关函数 2.7 C标准中的 main 函数声明 2.8 套接字应用…...
串行通信 与 并行通信 对比
总目录 一、并行通信 1. 定义与核心特点 1) 定义 并行通信是指通过多条数据线同时传输一组数据的各个位(如8位、16位或更多),以字节或字为单位进行数据交换的通信方式。 2)核心特点 特点描述传输速度快多位同时传…...
基于springboot+vue的北部湾地区助农平台
开发语言:Java框架:springbootJDK版本:JDK1.8服务器:tomcat7数据库:mysql 5.7(一定要5.7版本)数据库工具:Navicat11开发软件:eclipse/myeclipse/ideaMaven包:…...
Docker技术系列文章,第七篇——Docker 在 CI/CD 中的应用
在当今快速发展的软件开发领域,持续集成与持续部署(CI/CD)已经成为提高软件交付效率和质量的关键实践。而 Docker 作为一种流行的容器化技术,为 CI/CD 流程提供了强大的支持。通过将应用及其依赖项打包成容器,Docker 确…...
Hive SQL中 ?+.+ 的用法,字段剔除
一、含义 ?. 的用法代表剔除表中的特定字段,建议按照字段顺序列出以确保正确性。 二、参数设置 -- 首先需要设置一个参数: set hive.support.quoted.identifiersNone; --然后指定要剔除哪个字段 select (dateline)?. from test.dm_user_add三、举例…...
Vue学习笔记集--pnpm包管理器
pnpm包管理器 官网: https://www.pnpm.cn/ pnpm简介 pnpm全称是performant npm,意思为“高性能的npm”,它通过硬链接和符号链接共享依赖,提升安装速度并减少存储占用。 功能特点 节省磁盘空间:依赖包被存放在一个统…...
游戏交易系统设计与实现(代码+数据库+LW)
摘 要 在如今社会上,关于信息上面的处理,没有任何一个企业或者个人会忽视,如何让信息急速传递,并且归档储存查询,采用之前的纸张记录模式已经不符合当前使用要求了。所以,对游戏交易信息管理的提升&#x…...
为什么视频文件需要压缩?怎样压缩视频体积即小又清晰?
在日常生活中,无论是为了节省存储空间、便于分享还是提升上传速度,我们常常会遇到需要压缩视频的情况。本文将介绍为什么视频需要压缩,压缩视频的好处与坏处,并教你如何使用简鹿视频格式转换器轻松完成MP4视频文件的压缩。 为什么…...
腾讯pcg客户端一面
Java 基本引用类型 常见异常以及怎么处理 所有类的父类是什么,有哪些常用方法 常用线程池有哪些 线程池的创建参数 如何实现线程同步 常用锁有哪些 Lock和reentrantlock有什么不一样 Reentrantlock要手动释放锁吗 数据结构 数组和链表的区别 队列和栈的区别 为什么…...
解决vscode终端和本地终端python版本不一致的问题
🌿 问题描述 本地终端: vscode终端: 别被这个给骗了,继续往下看: 难怪我导入一些包的时候老提示找不到,在本地终端就不会这样,于是我严重怀疑vscode中的python版本和终端不一样,…...
常见几种网络攻击防御方式
xss跨站脚本攻击 反射型 XSS(Reflected XSS): 恶意脚本是通过 URL 参数或者表单提交直接传递给服务器的,并且立即在响应页面中反射返回给用户。 假设有一个登录页面,用户可以通过 URL 参数传递一个消息: &…...
操作系统之输入输出
🧑 博主简介:CSDN博客专家,历代文学网(PC端可以访问:https://literature.sinhy.com/#/literature?__c1000,移动端可微信小程序搜索“历代文学”)总架构师,15年工作经验,…...
TCP/IP的网络连接设备
TCP/IP层物理层网卡、集线器、中继器数据链路层网桥、交换机网络层路由器传输层网关应用层 1.网桥:网桥主要功能是将一个网络的数据沿通信线路复制到另一个网络中去,可以有效的连接两个局域网 2.网关:网关又称协议转换器,是将两…...
记一次feign调用400,参数过长导致,修改解决
feign客户端PostMapping("/website/checkChooseColumn") boolean checkChooseColumn(RequestParam("chooseColumn") String chooseColumn);服务端 PostMapping("/checkChooseColumn") public boolean checkChooseColumn(RequestParam("cho…...
【大模型基础_毛玉仁】4.3 参数选择方法
目录 4.3 参数选择方法4.3.1 基于规则的方法4.3.2 基于学习的方法1)公式:2)Child-tuning 的两种变体模型3)Child-tuning总结 4.3 参数选择方法 参数选择方法: 对预训练模型中部分参数微调,不添加额外参数以避免推理时…...
企业级Linux服务器初始化优化全流程
实战指南:企业级Linux服务器初始化优化全流程 本文基于某电商平台百万级并发服务器的真实调优案例整理,所有操作均在Rocky Linux8.5验证通过,不同发行版请注意命令差异 一、服务器安全加固(Situation-Task-Action-Resultÿ…...
亿级分布式系统架构演进实战(十一)- 垂直拆分(服务治理体系、安全架构升级)
亿级分布式系统架构演进实战(一)- 总体概要 亿级分布式系统架构演进实战(二)- 横向扩展(服务无状态化) 亿级分布式系统架构演进实战(三)- 横向扩展(数据库读写分离&#…...
飞速(FS)InfiniBand解决方案助力领先科技公司网络升级
国家:越南 行业:信息技术 网络类型:InfiniBand网络 方案类型:HPC网络 案例亮点 通过真实使用场景的全面测试,确保出色兼容性和高可用性,显著降低部署风险和运营成本。 借助飞速(FS…...
[Qt5] QMetaObject::invokeMethod使用
📢博客主页:https://loewen.blog.csdn.net📢欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正!📢本文由 丶布布原创,首发于 CSDN,转载注明出处🙉📢现…...
深入理解垃圾收集算法:从分代理论到经典回收策略
垃圾收集(Garbage Collection, GC)是现代虚拟机自动内存管理的核心机制。它不仅能自动回收不再使用的对象,还能极大减轻开发者在内存管理上的负担。本文将详细讲解垃圾收集算法的基本思想、分代收集理论以及几种经典的垃圾收集算法。 注&…...
数据降维——PCA与LDA
特征选择和特征提取 特征选择和特征提取是数据降维的重要步骤。 1. 定义与目标 特征提取: 目标:通过变换(如投影、编码)将原始高维特征映射到新的低维空间,新特征是原始特征的组合(线性或非线性ÿ…...
机器学习中的 K-均值聚类算法及其优缺点
K-均值聚类是一种常用的无监督学习算法,用于将数据集中的样本分为 K 个簇。其工作原理是通过迭代优化来确定簇的中心点,实现样本的聚类。 算法步骤如下: 随机选择 K 个样本作为初始簇中心。根据每个样本和簇中心的距离将样本归类到最近的簇…...
RAID原理
一、RAID 0 原理 核心特点 条带化(Striping):数据被分割成块(Block),交替写入多个磁盘(至少2块)。无冗余:不提供数据备份或校验,依赖所有磁盘同…...
2025系统分析师---软件工程:深度剖析常见软件开发方法
在软件工程这一复杂而精妙的领域中,软件开发方法的选择与实施无疑是项目成功的关键所在。作为一名资深软件技术专家,我深知不同的开发方法适用于不同的业务场景,各自具备独特的优缺点。本文将深入探讨几种常见的软件开发方法,包括…...
中文字符计数器,助力所有python对齐业务(DeepSeek代笔)
编码制式反推双宽,精准字宽库力推中文对齐。 笔记模板由python脚本于2025-03-26 23:49:24创建,本篇笔记适合为中文终端显示和文本输出对齐烦恼的coder翻阅。 【学习的细节是欢悦的历程】 博客的核心价值:在于输出思考与经验,而不仅…...
扫描注解指定路径
10.扫描注解 在 Spring Boot 中,EnableConfigurationProperties 和 ConfigurationPropertiesScan 是两个用于显式启用和管理 ConfigurationProperties 类的注解。它们提供了更灵活的方式来注册和扫描 ConfigurationProperties 类,尤其是在某些复杂场景或…...
像素到数据:Selenium,OpenCV,Tesseract,Python构建的智能解析系统
基于Selenium与OCR技术的网页信息智能提取方案 一、应用场景解析 在Web自动化测试和数据分析领域,经常需要处理动态渲染的网页信息,特别是当页面元素以图像形式呈现时。本文介绍的解决方案结合了浏览器自动化与图像识别技术,有效解决了以下典型场景: 动态渲染的可视化数据…...
徘徊检测:视觉分析技术的安防新方向
利用视觉分析的方式检测徘徊检测 背景 随着时代的发展,失业率上升导致社会不稳定因素增加,安保问题愈发突出。特别是在住宅区、工厂、办公园区等公共场所,对于徘徊人员的检测成为确保安全的关键一环。传统的安保手段如人工巡逻、监控录像回…...
CentOS 7 挂载与卸载文件系统
一、挂载文件系统 1. 查看系统磁盘与分区情况 在挂载文件系统之前,需要先了解系统中的磁盘和分区信息。使用fdisk -l命令,可列出所有磁盘和分区的详细信息,示例如下: [rootlocalhost ~]# fdisk -lDisk /dev/sda: 53.7 GB, …...
MySQL实战(尚硅谷)
要求 代码 # 准备数据 CREATE DATABASE IF NOT EXISTS company;USE company;CREATE TABLE IF NOT EXISTS employees(employee_id INT PRIMARY KEY,first_name VARCHAR(50),last_name VARCHAR(50),department_id INT );DESC employees;CREATE TABLE IF NOT EXISTS departments…...
JavaScript 改变 HTML 内容
JavaScript 改变 HTML 内容 JavaScript 改变 HTML 内容的核心在于通过 DOM(文档对象模型)操作实现动态更新,以下是主要方法及场景解析: 一、直接修改元素内容 1. innerHTML 属性 用于获取或设置元素的 HTML 内容(包…...
第十四届蓝桥杯大赛软件赛省赛C/C++ 大学 B 组(部分题解)
文章目录 前言日期统计题意: 冶炼金属题意: 岛屿个数题意: 子串简写题意: 整数删除题意: 总结 前言 一年一度的🏀杯马上就要开始了,为了取得更好的成绩,好名字写了下前年2023年蓝桥…...
机器学习——Bagging、随机森林
相比于Boosting的集成学习框架,Bagging(Bootstrap Sampling,自助聚集法,又称为自助采样)作为一种自助聚集且并行化的集成学习方法,其通过组合多个基学习器的预测结果来提高模型的稳定性和泛化能力。其中随机森林是Bagging学习框架…...
数据库——MySQL基础操作
一、表结构与初始数据 假设存在以下两张表: 1. student 表 字段名数据类型描述idINT学生唯一标识符nameVARCHAR(100)学生姓名ageINT学生年龄sexVARCHAR(10)学生性别 初始数据: idnameagesex1张三20男2李四22女3王五21男 2. course 表 字段名数据类…...
存储过程、存储函数与触发器详解(MySQL 案例)
存储过程、存储函数与触发器详解(MySQL 案例) 一、存储过程(Stored Procedure) 定义 存储过程是预先编译好并存储在数据库中的一段 SQL 代码集合,可以接收参数、执行逻辑操作(如条件判断、循环)…...
2025年注册安全工程师考试练习题
注册安全工程师练习题,涵盖了不同的知识点和题型: 单选题 某机械制造企业委托具有相应资质的中介服务机构的专业技术人员为其提供安全生产管理服务。依据《安全生产法》,保证该企业安全生产的责任由( )负责。 A. 专业…...
Photoshop 2025安装包下载及Photoshop 2025详细图文安装教程
文章目录 前言一、Photoshop 2025安装包下载二、Photoshop 2025安装教程1.解压安装包2.运行程序3.修改安装路径4.设安装目录5.开始安装6.等安装完成7.关闭安装向导8.启动软件9.安装完成 前言 无论你是专业设计师,还是初涉图像处理的小白,Photoshop 2025…...
ESP32通过WiFi获取网络时间(NTP)
代码部分 代码由station_example_main的官方例程修改 /* WiFi station ExampleThis example code is in the Public Domain (or CC0 licensed, at your option.)Unless required by applicable law or agreed to in writing, thissoftware is distributed on an "AS IS&…...
docker使用命令笔记
docker使用命令笔记 1. 安装docker2. 拉取镜像3. 镜像与容器4. 基于镜像创建容器4. 操作创建好的容器5. docker文件传输6. ubuntu的docker的一些基本环境搭建 记录docker的一些使用命令 1. 安装docker 遵循官方安装说明即可,windows需要下载docker desktop后在doc…...
关于服务器只能访问localhost:8111地址,局域网不能访问的问题
一、问题来源: 服务器是使用的阿里云的服务器,服务器端的8111端口没有设置任何别的限制,但是在阿里云服务器端并没有设置相应的tcp连接8111端口。 二、解决办法: 1、使用阿里云初始化好的端口;2、配置新的阿里云端口…...
触发器及报警
一、触发器介绍 Trigger 作用:报警 触发某一个监控项状态的变化 基于监控项创建 一个监控项可以有多个触发器 1、创建触发器语法 {<server>:<key>.<function>(<parameter>)}<operator><constant> {被监控主机:键值.函数…...
如何用 Postman 发送 GET 请求?详解
Postman 是一款广泛用于 API 开发和测试的工具,通过它,我们可以轻松地发送 GET 请求。首先,需要新建接口并设置为 GET 请求,然后填写相关的 URL 地址和参数,最后点击“Send”按钮即可发起请求。 Postman 如何发送 get…...
主流软件工程模型全景剖析
一、瀑布模型 阶段划分 需求分析:与用户深入沟通,全面了解软件的功能、性能、可靠性等要求,形成详细的需求规格说明书。设计阶段:包括总体设计和详细设计。总体设计确定软件的体系结构,如模块划分、模块之间的接口等&…...
NVMe协议
一、NVMe 的诞生背景 传统协议瓶颈: 早期的SATA接口SSD使用 AHCI协议,设计初衷是适配机械硬盘(HDD),其单队列、高延迟的特性无法发挥SSD的高速性能。PCIe接口的潜力: NVMe专为 PCIe接口的SSD 设…...
开关磁阻电机类型及其控制技术
开关磁阻电机( Switched Reluctance Motors,SRM) 具有结构简单、坚固、成本低、 工作可靠、控制灵活、运行效率高,适于高速与恶劣环境运行等优点, 由其构成的传动系统( Switched Reluctance Drives, SRD) 具有交、直流传动系统所没有的优点, 为此,世界各…...
CMake 构建的Qt 项目中的构建套件的配置
在Qt 框架中,使用CMake 构建工具时,需要自己给构建套件添加相关配置,否则已经添加的构建套件将不可选择使用。 创建CMake 项目后,如果打开项目配置时,出现如下构建套件不可选的情况, 需要先确认是否安装…...