ROS基础内容2--通信方式之Topic以及node、topic和message的关系

ROS2学习笔记(五)-- ROS2命令行操作常用指令总结(一) 简介:在前面的章节中,我们先简单学习了ROS2的话题发布和订阅,两种操作都是通过python代码实现的,而在实际应用过程中,我们会经常用到命令行操作来辅助调试,更进一步的可以使用GUI工具辅助调试,比如前边用到的rqt中的Image View工具,这一节在现有功能基础上介绍一部分常用的命令行操作指令。 阅读详情

本文参考了ROS_Kinetic_05 ROS基础内容,在本人的计算机环境ubuntu16.04 64bit+kinetic基础上进行实践。

1. ROS节点node的基本概念和操作

官网教程:http://wiki.ros.org/cn/ROS/Tutorials/UnderstandingNodes

涉及到的基本概念:

Nodes:节点,一个节点即为一个可执行文件,节点之间通过ROS这个系统进行通信。
Messages:消息,消息是一种ROS数据类型,用于主题的订阅或发布。
Topics:主题,节点可以发布消息到主题,也可以订阅某些主题以接收这些主题的消息。
Master:节点管理器,ROS名称服务。(在ROS2中取消了Master节点)
rosout: ROS中相当于stdout/stderr。
roscore: 主机+ rosout + 参数服务器。
rospy = python 客户端库
roscpp = c++ 客户端库

节点是ROS中最重要的概念之一。每个ROS运行实例被称为节点。换句话说,每个ROS程序运行的进程,就是一个节点。每个机器人程序,可以有非常多个节点。我们也可以运行同一个程序的多个副本(但要确保每个副本使用不同节点名),则每个副本都被当作一个独立节点。

节点(Node)可以用来提供某种数据或能力,比如读取某Sensor数据。也可以是一个获取这些数据并处理的节点(Node),例如从别的节点那拿到Sensor并处理。但他们之间如何知道对方存在与否呢?哪些node需要哪种数据呢?这就需要有个管理者,它就是NodeMaster/ Node Core。每个Node启动时,需要向它注册,申明自己提供什么服务或需要什么数据。

Node是ROS package中一个可执行文件。ROS node利用ROS用户库去和其他node进行通信。nodes也可以向topic发起发布或者订阅,nodes也可以提供或者使用一个service.

为何说Node是ROS核心,看看它通常被用来做什么:

控制电机速度,获取激光雷达数据,获取Camera数据,利用以上数据定位,路径规划。

启动一个Node:

#rosrun package-name executable-name

两个参数,参数1:功能包名。 参数2:可执行文件名。(见后面的例子)

查看当前有哪些Node:

#rosnode list

停止一个Node:

#rosnode kill node-name

虽然也可以ctrl-c停止,但此时Node master 可能会没有及时注销此node.造成误会。(当然这种情况可以:rosnode cleanup)

查看当前运行的node的信息:

#rosnode info Node_Name

--------------------------------------------------------------------------------------------------------------------------------------

1.1 实例

下面是一个运行node的例子

首先在一个terminal上启动ros

~$ roscore

在另一个terminal上启动一个turtlesim模拟器并启动一个turtlesim_node节点

~$ rosrun turtlesim turtlesim_node

在另一个terminal上查看节点列表

~$ rosnode list

如下图所示:


此时只有rosout和turtlesim节点这两个,其中turtlesim就是通过turtlesim启动的那个节点,默认名字与模拟器相同。下面我们再启动一个terminal并启动一个turtlesim节点,并给它起个名字:

~$ rosrun turtlesim turtlesim_node __name:=kinetic_turtle


然后我们再用rosnode list命令查看,发现多了一个叫kinetic_turtle节点。

如果启动两个同名的node,如下图的test1,则也会只保留一个,第一个创建的会被强制关闭:


使用rosnode ping nodename可以测试能否ping通某个节点,


删除节点:~$ rosnode kill nodename


~$ rosnode cleanup

关闭turtlesim_node,请按下“Ctrl-C” 。

查看节点信息:


这里可以看到节点订阅和发布的消息的类型。

-------------------------------------------------------------------------------------------------------------------------------------------

2. ROS中的主题topic

在开始topic相关讨论之前,我们先看通过turtlesim中的那个turtlesim(小海龟)的例子来了解一下ros中的topic是怎么一回事。

2.1 实例

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

(1)启动小乌龟turtle

ROS的资料中提到一只虚拟小乌龟:turtle,关于它的例子也十分简单,比如启动它

~$ roscore

在另一个terminal中启动一个turtle节点

~$ rosrun turtlesim turtlesim_node

另打开一个ternimal标签

~$ rosrun turtlesim turtle_teleop_key

将会得到蓝色背景下随机的一直小乌龟,并且可以使用方向键控制移动,但是turtle_teleop_key的节点系统里是没有源代码的,只有一个能够直接运行的文件.

这里写图片描述

另起一个terminal,打开节点图可以更直观地看到这两个节点间传递消息的主题

~$ rqt_graph

这里写图片描述

显然,/teleop_turtle这个节点单向传递速度的控制信息给turtlesim节点, 那么完全可以按照程序的意愿使小乌龟的运行处于脱机运行状态.

Node之间,是通过Message来传递消息的,每个Message就是一个数据结构,如geonetry_msgs/Twist.msg.

 ROS学习 <wbr><二> <wbr>ROS基本概念

换句话说自己写一个可发布/turtle1/cmd_vel的程序.

我们必须知道/turtle1/cmd_vel里发布的msg是什么样的,执行如下命令,查看传递的消息:

~$ rostopic type /turtle1/cmd_vel | rosmsg show

geometry_msgs/Vector3 linear
float64 x
float64 y
float64 z
geometry_msgs/Vector3 angular
float64 x
float64 y
float64 z


可以看到msg为geometry_msgs/Vector3,这个消息的原型在ROS中,/opt/ros/kinetic/share/geometry_msgs/Vector3 ,内容为

float64 x

float64 y

float64 z

(2)简单的自转

那么接下来自己写一个node,发布它们就可以了.

在catkin中建立一个package,如toldturtle,并创建一个node.(下面标注的红色的toldturtle和talk,也可以改成其他名称,只要保证一致即可)

~$ cd ~/catkin_ws/src/

~$ catkin_create_pkg toldturtle roscpp std_msgs geometry_msgs

在该package的src下创建一个名为talk.cpp的node.

#include <ros/ros.h>#include <geometry_msgs/Twist.h>ros::Publisher cmdVelPub;int main(int argc, char **argv){ ros::init(argc, argv, "talk"); //"talk"必须是nodename std::string topic = "/turtle1/cmd_vel"; //topic name ros::NodeHandle n; cmdVelPub = n.advertise<geometry_msgs::Twist>(topic, 1); //第一个参数也可以写成"/turtle1/cmd_vel"这样的topic name //第二个参数是发布的缓冲区大小,<geometry_msgs::Twist>是消息类型 ros::Rate loopRate(2); //与Rate::sleep();配合指定自循环频率 ROS_INFO("talk cpp start...");//输出显示信息 geometry_msgs::Twist speed; // 控制信号载体 Twist message while (ros::ok()){ speed.linear.x = 1; // 设置线速度为1m/s,正为前进,负为后退 speed.angular.z = 1; // 设置角速度为1rad/s,正为左转,负为右转 cmdVelPub.publish(speed); // 将刚才设置的指令发送给机器人 ros::spinOnce(); loopRate.sleep();//按loopRate(2)设置的2HZ将程序挂起 } return 0;}

并且修改cmake代码,让编译系统明白如何编译,这里我的package为toldturtle,node为talk.cpp:

cmake_minimum_required(VERSION 2.8.3)project(toldturtle)find_package(catkin REQUIRED COMPONENTS geometry_msgs roscpp rospy std_msgs)catkin_package( CATKIN_DEPENDS geometry_msgs roscpp rospy std_msgs)include_directories( ${catkin_INCLUDE_DIRS})## Declare a C++ executable add_executable(talk src/talk.cpp)## Specify libraries to link a library or executable target against target_link_libraries(talk ${catkin_LIBRARIES} )

这样在terminal里编译下整个catkin的package

~$ cd ~/catkin_ws/

~$ catkin_make

如果编译成功,就可以看到提示了.


(3)效果

在终端运行写的node

~$ rosrun toldturtle talk


此时,我们查看ros中的节点,


这样就通过编写一个talk,来实现在ros中对turtle的控制.

此时,turtle也受前面的teleop_turtle控制,我们仍然可以通过键盘上的箭头控制小乌龟,只不过它目前受两个控制,在键盘箭头控制的同时,仍然受talk的控制进行画圆,即可以用方向键控制自旋转的turtle.


此时查看节点之间的关系,我们发现talk和teleop_turtle都可以传递消息给turtlesim。


通过这个例子,结合订阅/发布消息机制,我们可以认为turtlesim节点订阅了turtle1/cmd_vel这个主题,而只要某个节点发布了这个主题的消息,turtlesim节点都能接受并根据传过来的消息内容(即geometry_msgs/Vector3)更新乌龟的位置。

关于乌龟控制的例子,我们参考了:http://blog.youkuaiyun.com/under_maple/article/details/49430765

(4)通过rostopic命令发布topic消息来控制小乌龟

除了上面的方式,写一个package来实现对小乌龟的控制外,还有更方面的一种方式来实现对小乌龟的控制,就是在命令行里,借助rostopic命令,发布一条小乌龟控制所需要的消息

rostopic pub [topic] [msg_type] [args

~$ rostopic pub -1 /turtle1/cmd_vel geometry_msgs/Twist -- '[2.0, 0.0, 0.0]' '[0.0, 0.0, 1.8]'

publishing and latching message for 3.0 seconds

上面的命令告诉小海龟按照线速度2角速度1.8进行移动,时间为3s,如下图所示(忘记截图了,此图来源于http://blog.youkuaiyun.com/bobsweetie/article/details/43638797):

小乌龟移动3s后停止了,我们可以用rostopic pub -r命令发布一个稳定的命令流。

~$ rostopic pub /turtle1/cmd_vel geometry_msgs/Twist -r 1 -- '[2.0, 0.0, 0.0]' '[0.0, 0.0, 1.8]


~$ rostopic hz /turtle1/pose

subscribed to [/turtle1/pose]
average rate: 124.817
    min: 0.006s max: 0.010s std dev: 0.00141s window: 118
average rate: 125.015
    min: 0.006s max: 0.010s std dev: 0.00142s window: 243
average rate: 124.968
    min: 0.006s max: 0.010s std dev: 0.00142s window: 368
average rate: 125.009
    min: 0.006s max: 0.010s std dev: 0.00141s window: 493

~$ rostopic type /turtle1/cmd_vel | rosmsg show

~$ rosrun rqt_plot rqt_plot

rostopic命令相关的内容,可以参考:http://blog.youkuaiyun.com/bobsweetie/article/details/43638797

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

2.2 ROS中的topic的理解(三种主要通信方式中的一种)

下面我们正式开始ros中的topic主题部分的理解。

ROS Node之间通讯方式主要依靠的就是主题(Topic)和服务(Service), 参数(parameter) 三种。Message就是放在Topic中。这里需要注意,Topic只是ROS中的一种通信方式,而不是唯一的通信方式。

 Message传递的的理念:

当一个节点想要分享信息时,它就会发布(publish)消息到对应的一个或多个Topic(主题);当一个节点想要接收消息时,它就会订阅(Subscribe)它所需要的一个或多个Topic。

ROS Topic: 

主题是由ROS网络对消息进行路由,对消息进行管理的数据总线。每一条消息都要发布到相应的主题上。当一个节点发送数据时,我们就说这个节点向某个主题发布了消息。

节点可以通过订阅某个主题,接受别的节点发布的消息。

ROS Master负责确保发布主题的Node和订阅主题的Node能找到对方。而Message是直接从发布Node传递到订阅Node.并不需要经过Node Master。

A:消息以一种publish/subscribe的方式传递。

B:节点可以在给定的主题中发布/订阅消息。

C:一个节点可以订阅/发布多个不同主题。

D:允许多个Node订阅/发布同一个主题。

E:订阅节点和发布节点并不知道相互之间的存在。

 Message注册和订阅过程:

ROS学习 <wbr><二> <wbr>ROS基本概念

Talker这个Node,启动后注册了一个Topic,名为bar, 并告知Node Master,接收端口为:1234。

Listener这个Node启动后订阅了一个Topic,名为bar.

Node Master告知Listener,主题的端口为1234。

Listener去连接1234端口,Talker监听到有人连接。就告知对方,数据接口是2345。

于是两个Node就连通起来了。

同一个时刻,只有一个Node Master。所以可以共享数据。

ROS学习 <wbr><二> <wbr>ROS基本概念

我们继续用上面的程序来查看Topic.

#roscore

#rosrun turtlesim turtlesim_node

#rosrun turtlesim turtlesim_node __name:=turtle2

#rosrun turtlesim turtle_teleop_key

1. 运行了roscore,

2. 运行了turtlesim包内的turtlesim_node这node两次,使用不同的node_Name.

3. 运行了turtlesim包内的turtle_teleop_key.

turtlesim_node和turtle_teleop_keynode之间用topic交流通信.

turtle_teleop_key在这个topic上发布按键敲击,而turtlesim订阅同样的topic接受按键敲击.

可以使用可视化工具查看Topic的数据传输。

#rosrun rqt_graph rqt_graph

图示:

这个和我们原来研究的zeromq差不错,都是基于订阅/发布模式的消息传递机制。

3. 总结

要理解ROS topics、ROS nodes、ROS Messages之间的关系。目前个人的理解是:ROS topics是ROS nodes之间进行通信的枢纽,ROS messages是ROS nodes订阅和发布数据的载体。两个ROS nodes欲实现通信,则其中一个节点向ROS topic发布ROS messages,另一节点则通过订阅此topic来接收messages,两者的message类型一定要相同,而message的类型由主题确定,通过rostopic type命令可以查看topic的数据类型。

然后就是辅助查看ROS中节点关系和数据的工具:rqt_graph和rqt_plot,两者都是针对ROS类型的,其中rqt_graph工具会自动搜寻系统中正在运行的节点和主题,并动态绘制出关系图,rqt_plot则是绘制发布到topic上的数据的图形,因此两者使用的前提是有ROS的进程在运行。

运行节点:roscore
rosrun turtlesim turtlesim_node
rosrun turtlesim turtle_teleop_key
查看节点关系图:rosrun rqt_graph rqt_graph

显示topic1上所发布的数据:rostopic echo topic1
列出当前处于激活状态的topic列表:rostopic list -v
显示topic1的数据类型:rostopic type topic1
显示类型更加详细的信息:rosmsg show type1
直接向主题topic1发布数据:rostopic pub [topic1] [msg_type] [args]
显示主题topic1上数据的发布速率:rostopic hz [topic1]


Topic话题和Message消息 step1:第一个参数:需要订阅的话题名称;第二个参数:缓存长度;第三个参数:接收消息包的回调函数的函数名xxx,可以随便起。我们需要定义回调函数xxx,形参是接受的消息包。这个函数不需要我们手动调动,而是系统接收到发布者的消息时,就会自动触发的函数。while循环内一定要加个ros::spinOnce函数。它可以允许节点在监听消息的同时执行其他任务。step2:在CMakeLists.txt文件中找到Bulid篇章,复制示例代码。step3。 阅读详情

相关推荐

【ROS 笔记1】Topic message通俗理解

topic 能够将所有的独立的模块, 进行有序的交流,链接。可以想象, roscore, 假设是一个铁路系统的总的开关,当打开总的开关(run roscore), 铁路路就可以畅通起来, 铁路畅通后, 如何进行北京站(机器人recognition)与上海站(机器人抓取)的交流。那么我们可以从北京发送一列动车 D120 (topic 是动车, topic的名字是D120)。

挪威的深林的博客 700

ROS 学习笔记(6)- 理解 ROS nodes

本文会介绍 ROS 图形概念并讨论 roscore、rosnode 和 rosrun 命令行工具的使用。

yusongtt的博客 1112

ROS基础(一):ROS通讯之话题(topic)通讯

目录欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入 欢迎使用Markdown编辑器 你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器

miya的博客 2万+

【ROS】rosnode信息命令

参考:https://www.cnblogs.com/kay2018/p/10314741.html 一、概述 ROS信息命令用于识别话题、服务、节点和参数等信息。尤其是rostopic、rosservice、rosnode和rosparam经常被使用,并且rosbag是ROS的主要特征之一,它具有记录数据和回放功能,务必要掌握。 命令 重要度 命令释义 详细说明 rostopic ★★★ ros+topic 确认ROS话题信息 rosservice ★★★ ros+service .

lemonxiaoxiao的博客 7415

ROS2教程 04 话题Topic

一、ROS2 Topic示意图 ROS2的Topic可以是一对一,一对多,多对一,多对多,同一个话题Topic可以被不同的节点Node订阅与发布 二、ros2 topic topic下有多种命令,以下是ros1的topic命令: 可以看到和ros2的topic没有什么区别 Commands: rostopic bw display bandwidth used by topic rostopic delay display delay of topic from timestamp in header

m0_56661101的博客 8290

ROS2 概念以及通信方式

ROS 2(Robot Operating System 2)是一个用于机器人开发的开源平台,它提供了一系列工具和库,用于构建机器人应用程序。相较于前身ROS(ROS 1),ROS 2在设计上考虑了更多的实时性、安全性和可靠性因素,因此适用于更广泛的应用场景和硬件平台。以下是ROS 2的一些关键特点和概念:分布式架构:ROS 2支持分布式架构,允许节点在多个物理机器上运行,通过网络进行通信。这种架构支持更复杂和大规模的机器人系统。实时性:ROS 2引入了实时通信机制,如数据流控制(DDS),以支持严格的实时

qq_50284870的博客 3084

ros2 node 之间的通信方式之 —— Topic通信案例

Ros2 node之间的通信方式 之 Topic 通信案例

weixin_43488529的博客 1055

ROS2 学习笔记4:了解ROS2 话题Topic

节点通过话题发布消息,其他节点可以通过订阅(话题)来获取消息.在本课程中,通过rqt_graph以及命令行工具,你学习了多个节点通过话题连接起来.现在,你应该对于ros2系统数据传输有了很好认识。

weixin_43180456的博客 2237

机器人入门(三)—— ROS环境搭建与ROS Master、Node、Topic、Message

开宗明义,定义先行,辩论赛场里这句话都用烂了,烂归烂,关于概念的定义的认知,会极大的影响到人观察社会的视角,科学事物也一样。下面是关于catkin。(1)catkin是ROS的构建工具,继承自ROS最开始的构建工具rosbuild,此工具由美国的一家公司Willow Garage创建,Willow Garage是一家致力于机器人技术研究和开发的公司,位于美国加州,已于2014年倒闭,catkin的中文含义是在柳树上发现的尾状花簇,植物学名称是柔荑花序。(2)catkin结合了CMake与。

键盘国治理专家的博客 1249

[ROS](06)ROS通信 —— 话题(Topic)通信

 话题通信是ROS通信中最常用的一种基于发布和订阅模型的通信方式。用于实时性、周期性、少逻辑处理的数据传输场景。

CynalFly的博客 5930

【ros2】ROS2话题(Topic)通信完全指南:订阅与发布详解

标准消息:ROS2内置多种消息类型(如std_msgs:字符串:图像数据:运动速度指令自定义消息:需在接口功能包中定义.msg文件(如int32 age使用前需编译接口包,并在发布者/订阅者中导入依赖。话题是ROS2中实现异步数据传输的核心机制,其发布-订阅模式适合传感器数据、状态监控等场景。本文通过Python和C++示例,详细介绍了话题通信的实现步骤,包括节点创建、消息发布/订阅、编译配置等。高级知识中,QoS策略、话题工具、命名空间等内容可帮助优化通信性能和灵活性。

EnHengNa的博客 2015

ROS2 :Node 与 Topic 初探(Python)

本文介绍了ROS2中节点(Node)和话题(Topic)的基础操作与调试方法。主要内容包括:1) 节点和话题的基本概念;2) 常用命令行工具如ros2 node list、ros2 topic info等的使用;3) 如何快速定位发布/订阅关系;4) Python代码示例实现发布者和订阅者节点;5) 调试技巧与常见问题处理。文章提供了从基础查询到实际开发的完整指导,帮助开发者掌握ROS2核心通信机制。

weixin_43978579的博客 545

ROS2初步:用Topic基本通信

对于话题通信,学过一点ROS知识的都不陌生,然而,转化成ROS2实现,就得需要老老实实再走一遍,这是因为ROS2得机理与ROS1差别太大;ROS2的开发团队水平更高,ROS2的代码更抽象,因而更需要付出精力去磨练。.....................

gongdiwudu的专栏 5772

[ROS2] --- topic

Topic通信模型是一种发布订阅模型,ROS2使用了基于DDS的发布/订阅模型,数据传输过程如下图:话题数据传输的特性是从一个节点到另外一个节点,。

M2嵌入式 1839

【ROS2开发】BOOST-C++实现topic通信

不知是何原因,ROS2居然没有集成开发环境,因此工程管理、编译等是全手工活。本文将详细讲述工程构建、编译、topic节点具体内容。让初学者直接进入战场环境。结合图文,尽量看清开发过程。

gongdiwudu的专栏 7578

sentinel滑动时间窗口算法学习

滑动时间窗口 先不说sentinel的算法实现,先说什么是滑动时间窗口, 我们在进行限流的时候,比如通过QPS进行限流,那假如我们以秒为单位,举个例子: 我设置了限流规则,qps是10 如果不使用滑动窗口算法,在统计qps的时候,就有可能会有问题,比如: 在0 - 500ms中的请求数是0,但是在500ms - 1000 ms的请求数是10;在1000ms - 1500ms 之间又进来了5个请求,此时只判断了1000ms - 2000 ms之间的请求数 因为没有把1S进行拆分多个窗口,所以在1000ms之后

小小少年的博客 3979

9.ROS的通信方式 & topic通信

》》点赞,收藏+关注,理财&技术不迷路《《 总共有四种通信方式。Topic是最常用的通信方式。 Topic 通信方式: ROS中最常用的通信方式:Topic(topic是以/开头的) Topic类似于一个频道,A在里面发消息,B订阅这个频道,然后从topic中获取A发送的信息。(采用的是发布和订阅这种消息传递形式,是单向的!!!!!!) 什么是异步? 比如我的node1,是一个摄像头程序,它可以发送一些topic,比如它可以发送RGB图像信息,有些有深度传感器的可以.

大厂offer宝典 1298

浅谈武术擂台格斗机器人大赛

武术擂台机器人赛是工科类专业的一个跨学科的竞赛项目,它涵盖了机械结构、硬件电路和计算机程序等技术领域。笔者在校期间有幸参加过四次这样的比赛,有成功也有失败,对此深有感悟。本文仅为个人观点,有说得不对的地方,望积极指出,希望能帮助到有需要的人。

weixin_43811044的博客 1万+

ROS基础内容--通信方式之Topic以及node、topic和message的关系

1 Topic通信方式 rosnode $rosnode list $rosrun rqt_graph rqt_graph 查看节点之间的通信 rostopic $rostopic list //列出当前所有topic $rostopic info /topic_name //显示某个topic属性, 包括Type,Publishers,Subscrib...

miffy2017may的博客 751

2024 全国大学生新质生产力大赛 B:金融违规交易的大数据分析 问题四思路代码

问题四:请分析附件中所有的指标数据,选取合适的指标,建立“金融违规 洗钱交易的预测模型”,并选取合适的训练集和测试集,计算预测模型的准确率。 为了提前识别并预测金融违规洗钱的交易事件,请基于你们团队数据分析的结果, 分别给公安部门和银行机构提出你们的建议。

YOLO 374

YOLO26 网络结构逐模块解析:Backbone/Neck/Head

本文解析了YOLO26目标检测网络的架构设计,重点介绍其在Backbone、Neck和Head三个核心组件的创新优化。Backbone采用改进的CSP模块与轻量级注意力机制,提升特征提取效率;Neck使用改进的BiFPN结构实现高效多尺度特征融合;Head采用完全解耦设计简化回归流程。文章详细分析了各模块的技术演进、实现细节和设计思想,通过流程图和代码示例展示了YOLO26的整体架构和关键组件实现。该研究对模型优化、定制开发和硬件部署具有重要指导意义。

一键难忘的博客 1241

ROS 2 Topic、Service、Action到底有什么区别?一文搞懂机器人三种通信机制

本文深入解析ROS2通信机制,从Topic、Service、Action三种核心通信方式出发,揭示其在机器人系统中的应用场景与设计逻辑。通过分析发布/订阅、请求/响应、目标-反馈-结果等模型,阐明不同通信模式的适用场景。重点探讨QoS策略(如Reliability、Deadline、History)对数据可靠性、实时性的影响,并指出通信“可靠”不等于系统“实时”。文章进一步揭示从ROS2到操作系统调度的完整链路:数据经DDS传输后,仍受Executor执行、线程调度、CPU资源分配等环节制约。最终强调,真正

望获实时Linux系统 2811

IsaacSim环境配置之配置本地资产包

摘要:Isaac Sim官方资产文件默认从美国服务器下载速度慢,影响开发体验。建议下载本地资产包并配置本地资源源。具体步骤包括:1) 下载资产包并解压;2) 修改Isaac Sim安装路径下的配置文件,添加本地资产路径配置,包括机器人、人物、环境等各类资源目录。配置完成后可显著提升资产加载速度,改善开发效率。文中提供了详细的配置文件修改示例和截图说明。

拥抱具身智能,昇腾Ascend C 327
上一篇: ROS基础内容1
下一篇: ROS基础内容3--通信方式2之Services与Parameter
土豆西瓜大芝麻
博客等级 码龄18年 1189粉丝 238原创
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值