MATLAB - ROS 2 分析器

系列文章目录

 

 


前言

        本主题介绍如何连接 ROS 2 网络,分析网络图中所有元素的基本信息(如节点名称和节点之间的信息),以及可视化与 ROS 2 节点相关的参数(如主题、服务和操作)之间的交互。


 

一、连接并查看 ROS 2 网络

  1. 从 MATLAB® 工具条的 “应用程序 ”选项卡中打开 ROS 2 Network Analyzer 应用程序。
  2. 要连接 ROS 2 网络,请单击应用程序工具条中的 “连接”。254cdde668df4028be2dba6ad196cf7d.png
  3. 提供 ROS 2 域名 ID 并点击提交。默认的域 ID 为 0,这将在可视化界面中打开网络图。
  4. 在 “网络浏览器 ”面板中查看不同元素的列表,在 “属性 ”面板中查看它们的编号以及所连接 ROS 2 网络的域 ID。从 “网络浏览器 ”中选择或取消选择这些元素,即可从图形中查看或隐藏它们。
  5. Network BrowserProperties

     

    e0175a618208a4786f764db050918a6e.png

    节点 -- 列出连接的 ROS 2 网络中的所有节点

     

    eb3eb7e78a15e0c9f04d9bba830e64c2.png

     

    137d65afd883cca3f9ce316eeff2d28a.png

    主题 -- 列出连接的 ROS 2 网络中每个节点发布和订阅的所有主题

     

    083a3324788bae9bc5a3527e66ba5f0e.png

    服务 -- 列出节点提供的所有服务(服务-服务器)和节点作为客户的所有服务(服务-客户)

     

    14c55e993b13b414551d8e56bc9f8cb7.png

    动作 -- 列出节点提供的所有动作(动作-服务器)和节点作为客户端的所有动作(动作-客户端)

  6. 单击 “刷新 ”更新 ROS 2 网络图,使其包含新添加或删除的节点,并分别包含网络浏览器和属性中的所有节点元素。7c2e8c1284384f52b5f4ae2faa491e52.png
  7. 要使网络图适合屏幕宽度,请单击应用程序工具条中的自动排列。201424d1f8e34ae7814f87109baa98a3.png

二、与网络图表互动

  • 根据视觉需求,通过捏入或捏出放大或缩小,或单击并按住在图形周围平移。
  • 使用可视化窗口左下角的小地图可以全面了解大型网络,并突出显示当前可见的部分。您可以点击小地图上的任意位置来平移网络图,确保导航的便捷性,并选择查看所需的部分。
  • 选择可视化图表中的任何元素,即可在属性面板中查看其所有详细信息。

        您还可以在可视化窗口中单击并拖动这些元素,以方便查看。要将网络图恢复到初始视图,请单击自动排列。

ElementsProperties
Node

 

c3b33c04ee9c2bc0cc2a656ada01fc04.png

Publisher

 

4fe7438751ef0a3bb5fa453e3f6b5855.png

Subscriber

 

fe8f8ecfb8217c6a3165666700a311fc.png

Topic

 

24b77617197acc5c7dc95aa2f94d15c4.png

Service

 

fe43ea12ce16bde2448d358d2d41b0c9.png

Action

 

9e5c34063eb4a13f5d9e8a583d38fd07.png

  • 您可以右键单击并复制网络图中任何元素的名称或属性面板中的任何值,并将其作为关键字在大型网络中搜索所有元素。

三、过滤和搜索元素

614c07f88d2d443fb11c7713b59e12e4.png

        选择或清除这些筛选器,以查看或从网络图中删除它们。

Filter OptionsDescriptions
Unreachable Nodes

This constitutes of nodes that:

  • Do not publish or subscribe to a topic.

  • Do not act as service server or service caller.

  • Do not act as action server or action requester.

 

Dead SinkThis constitutes of topics which have subscribers and no publishers.
Leaf TopicsThis constitutes of topics which have publishers and no subscribers.
Default Topics

This constitutes of default topics related to ROS 2 network:

  • /parameters_events

  • /rosout

 

Default Services

This constitutes of default services related to ROS 2 network:

  • /describe_parameters

  • /get_parameter_types

  • /get_parameters

  • /list_parameters

  • /set_parameters

  • /set_parameters_atomically

 

Action Topics and Action Services

This constitutes of default topics and services related to actions in the ROS 2 network:

  • /_action/send_goal

  • /_action/get_result

  • /_action/cancel_goal

  • /_action/status

  • /_action/feedback

  • 搜索 -- 使用此选项搜索包含一个或所有指定输入的元素。使用逗号分隔的关键字并按 ENTER 键触发搜索。要移除应用的搜索过滤器并将网络图恢复为原始视图,请清除搜索栏中的文本并按 ENTER 键。您也可以右键单击并复制名称来选择关键字,以便在大型网络中搜索元素,这在 “与网络图互动 ”一节中讨论过。

四、安排网络布局

3e55a906105245e4aba9e5bd0e4b239c.png

  •  布局 -- 使用此功能可使用其中一个选项来安排网络图布局。
NameDescriptionApplicationsView
klay层次式布局可创建有条理的图元素排列,同时最大限度地减少交叉并确保可读性。当网络图中的多个元素源自一个元素时,klay 布局可最大限度地减少边交叉。使用这种方法可以有效地组织图形,增强可读性和结构性。

7d5c16bfe2d44fd3b4dd527570909511.png

dagre有向布局,将图元素及其边从一个层级到下一个层级创建成倒 V 形。

当网络图中的元素有明确的流动方向时,dagre 布局尊重信息流或阶段进展。

使用这种方法,可以清晰直观地显示元素之间的方向关系和依赖关系。

2af457de715b4b1da45952dca3746b6d.png

breadthfirst分层布局,根据对图形进行广度优先搜索所生成的层级来组织图形元素。

广度优先布局是指当图形较大,可能导致元素之间过度重叠时,从指定的根元素开始逐层或逐层排列图形元素。

使用这种方法可将所有元素从根元素开始水平排列在同一深度,这有助于了解图形结构的广度或深度。

f4e7a772fd084548af13e6f921117d02.png

cose强制定向布局强调组和树状结构,以尽量减少边交叉并均匀分布图元素。

这种布局通过空间上的接近性来强调图形中的元素分组,对于具有嵌套结构的复合图形尤其有效。

使用这种布局可以直观地区分复杂网络中图形元素之间的集群和关系。

488b4d5fd9be4f8487311b57138a6013.png

circle将图形元素组织成圆形的几何布局。默认情况下,元素从 12 点钟位置开始顺时针排列,排列顺序与元素传递到布局的顺序一致。

圆布局将图形元素沿着圆周等距排列,并突出显示连接到不同元素的边的密度,尤其是当边半透明时。

使用这种方法可以直观地显示整体连通性,并根据图中边缘的集中程度识别模式或集群。

46dadf3590c14b889ed2b150b782bca5.png

grid默认布局,通过将所有元素定位在原点,轻松显示图形中的所有元素。

网格布局可直观地验证图形是否已正确加载,以及图形元素是否以结构化和统一的方式组织。

使用这种布局可以快速识别数据中的异常或布局问题,从而更容易确保图表可视化的完整性和完备性。

d1849f7f1559499d888dc33d94260b1e.png

concentric几何布局,根据指定的指标(如层次级别或连接度)将元素组织成同心圆,将指标值最高的元素放在最内圈,每向外一圈,其指标值依次递减。

同心布局可以在需要清晰显示围绕中心点的层次或层级时,突出元素的相对重要性。

使用这种布局可以有效地强调网络中的中心性和层次结构,便于直观地理解图元素之间的关系和重要性。

7f7a47831998443498dbbb4fcec561ce.png

  • 名称空间 -- 使用该选项可根据节点、主题、服务和操作的名称空间将其组织成群或组,这些节点、主题、服务和操作执行类似的功能,但在应用程序的不同上下文或区域中运行。
  • 名称空间是从节点、主题、服务和操作的名称中提取的层次前缀,用于将这些元素中的组件从逻辑上组织和分类为群集或组。这些群组可以相互嵌套,从而实现多级组织。名称空间的深度决定了聚类的粒度。

五、导出网络快照

        要将 ROS 2 网络图快照导出为图像,请单击应用程序工具条上的 “导出”。

811f72c99b2f4f29bbd95461585492c6.png

六、示例

6.1 创建并可视化用于机器人导航的 ROS 2 网络

        本示例展示了如何建立用于机器人导航的基本 ROS 2 网络,并使用 ROS 2 网络分析器应用程序可视化所有节点信息。

        定义动作类型、主题类型、服务类型和域 ID,以初始化用于机器人导航的 ROS 2 网络。

actionType = 'control_msgs/PointHead';
topicType = 'geometry_msgs/Twist';
svcType = 'nav_msgs/GetMap';
domainId = 0;

        使用指定的域 ID 为 Turtlebot 机器人创建 ROS 2 节点。

turtleBotNode = ros2node('/turtle_bot_node', domainId);

        初始化动作服务器,以处理路径跟踪请求。

actionServer = ros2actionserver(turtleBotNode,'/path_follow',actionType, ...ExecuteGoalFcn=@(~,~,~,defaultResult) deal(defaultResult, true));

        从 MATLAB® 工具条的 “应用程序 ”选项卡中打开 “ROS 2 网络分析器 ”应用程序,可视化 ROS 2 网络。

        您会看到,默认情况下已选中 “无法连接节点”、“死链接 ”和 “叶子主题 ”过滤器。也请选中其余过滤器,以全面查看 ROS 2 网络。

2b964a3cf36e493d87f7cc0a0b3c3cc3.png

        为 GPS 传感器创建一个 ROS 2 节点,并建立一个能响应 GPS 定位数据的服务服务器。

gpsNode = ros2node('/gps_sensor_node',domainId);
srv = ros2svcserver(gpsNode,'/get_gps_location',svcType,@(~,resp)resp);

        使用指定的域 ID 创建一个 ROS 2 节点,用于处理路径规划任务。

plannerNode = ros2node('/path_planner_node',domainId);

        建立服务客户端以获取规划器节点上的 GPS 位置,并建立行动客户端以发送路径跟踪请求。

svcClient = ros2svcclient(plannerNode,'/get_gps_location',svcType);
actClient = ros2actionclient(plannerNode, '/path_follow',actionType);

        创建一个订阅器,用于监听速度指令,以控制机器人的运动。

sub = ros2subscriber(plannerNode,'/cmd_vel',topicType);

        设置一个通过“/cmd_vel ”主题发送命令的发布者。

pub = ros2publisher(turtleBotNode,'/cmd_vel',topicType);

        现在打开 ROS 2 Network Analyzer 应用程序界面,点击 “刷新 ”以显示更新后的 ROS 2 网络。

f4e0606a214a4230b5bbf51a2201393f.png

        使用最小地图在网络图中平移,以便更好地查看与 /turle_bot_node 相关的默认服务。您还可以单击并拖动这些元素以方便查看可视化窗口。要将网络图恢复到初始视图,请单击自动排列。

        要使用特定关键字(如海龟)搜索所有元素,请在搜索框中输入海龟,然后按 ENTER 键。您也可以输入多个以逗号分隔的关键字,以可视化与所有指定关键字相关的元素。

42a2a732cee94b8d9a463b43f7b4615e.png

        要根据元素的命名空间将所有元素归类为簇或组,请使用命名空间。命名空间的深度决定了聚类的粒度。例如,将命名空间字段设为 1 会将所有元素分为 3 个群组 - /turtle_bot_node、/path_follow 和 /path_planner_node。

fd435adfe5f7467bba2125541c12bf7d.png

        要增加聚类的粒度,可将命名空间设置为更高的值,如 2。 这样就可通过嵌套聚类(如 /path_follow 下的 /path_follow_action )增加另一级粒度。

bbd06cf135fa491d8c6334c5714a8441.png

七、限制

  • 服务质量(QoS)信息仅适用于主题。
  • 无法检索 QoS 历史记录。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/9213.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

分组校验在Spring中的应用详解

目录 前言1. 什么是分组校验2. 分组校验的基本原理3. 分组校验的实现步骤3.1 定义分组接口3.2 在校验项中指定分组3.3 校验时指定要校验的分组3.4 默认分组和分组的继承 4. 分组校验的优势和适用场景4.1 优势4.2 适用场景 5. 常见问题与解决方案5.1 校验未生效5.2 无法识别默认…

SDL打开YUV视频

文章目录 问题1:如何控制帧率?问题2:如何触发退出事件?问题3:如何实时调整视频窗口的大小问题4:YUV如何一次读取一帧的数据? 问题1:如何控制帧率? 单独用一个子线程给主线…

[MySQL]索引

索引介绍 索引是帮助数据库高效获取数据的数据结构。在数据之外,数据库系统还维护着满足特定查找算法的数据结构,这些数据结构以某种方式引用数据, 这样就可以在这些数据结构上实现高级查找算法,这种数据结构就是索引。 假设我们有…

window 利用Putty免密登录远程服务器

1 在本地电脑用putty-gen生成密钥 参考1 参考2 2 服务器端操作 将公钥上传至Linux服务器。 复制上述公钥到服务器端的authorized_keys文件 mkdir ~/.ssh vi ~/.ssh/authorized_keys在vi编辑器中,按下ShiftInsert键或者右键选择粘贴,即可将剪贴板中的文…

【大数据技术基础 | 实验八】HBase实验:新建HBase表

文章目录 一、实验目的二、实验要求三、实验原理四、实验环境五、实验内容和步骤(一)启动HBase集群(二)编写项目java代码(三)将代码导出jar包 六、实验结果七、实验心得 一、实验目的 掌握HBase数据模型(逻…

密钥管理服务 (KMS) 故障排除指南

企业客户将密钥管理服务 (KMS) 设置为部署流程的一部分,因为通过该服务,他们可以使用简单、直接的过程在其环境中激活 Windows。 通常,一旦设置了 KMS 主机,KMS 客户端就会自动连接到主机并自行激活。 然而,有时该流程…

CSS的配色

目录 1 十六进制2 CSS中的十六进制2.1 十六进制颜色的基本结构2.2 十六进制颜色的范围2.3 简写形式2.4 透明度 3 CSS的命名颜色4 配色4.1 色轮4.2 互补色4.3 类似色4.4 配色工具 日常在开发小程序中,客户总是希望你的配色是美的,但是美如何定义&#xff…

基于 RNN 的语言模型

基于 RNN 的语言模型 循环神经网络(Recurrent Neural Network, RNN)是一类网络连接中包含环路的 神经网络的总称。 给定一个序列,RNN 的环路用于将历史状态叠加到当前状态上。沿着时间维度,历史状态被循环累积,并作为…

【软考网工笔记】网络基础理论——物理层

文章目录 贝尔系统 T1 载波光纤 - SFP接口差分&&曼彻斯特编码网桥MAC-in-MACQ-in-QIPv6的链路本地地址CRC校验与计算E1载波编码效率对称xDSL坚持算法-CSMAUDP头部字段万兆以太网标准 IEEE 802.3ae海明码-纠错码ARP帧中的目标MAC地址快速以太区网物理层标准 100BASE-TXM…

现代Web开发:TypeScript 深入解析与最佳实践

💓 博客主页:瑕疵的CSDN主页 📝 Gitee主页:瑕疵的gitee主页 ⏩ 文章专栏:《热点资讯》 现代Web开发:TypeScript 深入解析与最佳实践 现代Web开发:TypeScript 深入解析与最佳实践 现代Web开发&a…

HCIP MPLS基础

一、 实验拓扑 二、 实验需求及解法 本实验模拟BGP路由黑洞环境,使用MPLS LDP解决路由黑洞。 完成以下需求: 1.设备IP地址配置,请测试直连。 sysname R1 interface GigabitEthernet0/0/0ip address 12.1.1.1 255.255.255.0interface Loop…

Kubernetes架构及核心组件

一、基本架构 Kubernetes集群可以被看作是一个工厂,而各个组件则是这个工厂里的不同部门: Kubernetes API服务器:就像是这个工厂的总经理,负责接收所有的请求并将它们分配给相应的部门进行处理。 etcd:就像是这个工厂的记事本,负责记录所有的配置信息和状态信息,以便其…

移动开发(七):.NET MAUI使用RESTAPI实现查询天气笔记

目录 一、接口准备 二、实体部分 三、页面部分 四、后台代码逻辑 五、总结 在移动开发过程中,第三方对接是非常常见的。今天给大家分享.NET MAUI如何使用REST API实现输入城市名称查询天气的示例,希望对大家学习.NET MAUI可以提供一些帮助! 一、接口准备 首先我们需要…

聊聊基于BERT模型实现多标签分类任务的实践与思考

概述 以预训练大模型为基座神经网络模型,通过模型预训练后的泛化能力与微调后的领域能力,作为NLP任务的解决方案。 在github上找了一个简单的仓库——multi_label_classification,该仓库基于BERT预训练大模型实现了多分类任务。通过对该仓库…

C语言 【大白话讲指针(中)】

在之前的文章中我们已经知道了指针的概念,指针就是一个变量,用来存放地址,地址指向唯一一块内存空间。指针的大小是固定的4/8个字节(32为机器/64位机器)。指针是有类型的,指针的类型决定了指针加减整数的步…

大数据分析在市场营销中的应用

💓 博客主页:瑕疵的CSDN主页 📝 Gitee主页:瑕疵的gitee主页 ⏩ 文章专栏:《热点资讯》 大数据分析在市场营销中的应用 大数据分析在市场营销中的应用 大数据分析在市场营销中的应用 引言 大数据分析概述 定义与原理 发…

启明云端触觉智能与您相约2024年慕尼黑国际电子元器件博览会,不见不散!

展会信息 展会日期: 2024年11月12-15日 展馆名称: 慕尼黑国际展览中心 MesseMnchen exhibition center 展馆地址: Messegelnde 81829 Mnchen Germany 启明云端&触觉智能展位号:B6-351 诚邀您莅临我司展位,让我们在慕尼黑不见不散! …

OPPO开源Diffusion多语言适配器—— MultilingualSD3-adapter 和 ChineseFLUX.1-adapter

MultilingualSD3-adapter 是为 SD3 量身定制的多语言适配器。 它源自 ECCV 2024 的一篇题为 PEA-Diffusion 的论文。ChineseFLUX.1-adapter是为Flux.1系列机型量身定制的多语言适配器,理论上继承了ByT5,可支持100多种语言,但在中文方面做了额…

【JavaEE初阶】网络原理(4)

欢迎关注个人主页:逸狼 创造不易,可以点点赞吗~ 如有错误,欢迎指出~ 目录 网络层 > IP协议 IP协议报头结构 4位版本 4位首部长度 8位服务类型(TOS) 16位总长度(字节数), 16位标识 3位标志位 13位片偏移 8位生存时间(TTL) 8位协议 16位首部…

树莓派上安装与配置 Nginx Web 服务器教程

在树莓派上配置 Nginx 作为 Web 服务器的步骤如下: 1. 更新树莓派 首先,确保你的树莓派系统是最新的。打开终端并执行以下命令: sudo apt update sudo apt upgrade -y2. 安装 Nginx 在树莓派上安装 Nginx: sudo apt install …