大家好,我是新生代农民工小鱼,小鱼的《动手学ROS2》视频教程大纲已经定下来了。很快就可以和大家见面,今天分享一篇教程中的一篇文章,关于ROS2节点的介绍的。有兴趣的小伙伴可以看看。
本节主要给大家介绍节点,不知道有多少小伙伴看了第一章的扩展阅读,里面通过ROS镇长的小故事来和大家讲解了ROS的通信机制。
1. ROS2节点是什么里面有一个故事是关于李四和王二的,李四是一个作家,每天都会更新一个叫做《艳娘传奇》的小说,王二是个单身汉,最喜欢看的就是李四写的《艳娘传奇》。所以就有了李四发布小说,王二订阅小说。
我们把故事里的李四和王二当成ROS2中的节点看,《艳娘传奇》就是话题。
现在是一个讲究分工合作的社会,所以每一位村民都只专门负责一个单一的模块,比如有一个村民只做木匠、一个村民只卖豆腐、一个村民只造车轮子等等,大家一起构成了一个社会群体,就像一个完整的生态系统。
ROS2中的节点也是如此,每一个节点也是只负责一个单独的模块化的功能(比如一个节点负责控制车轮转动,一个节点负责从激光雷达获取数据、一个节点负责处理激光雷达的数据、一个节点负责定位等等)
2.节点之间如何交互?上面举了一个激光雷达的例子,一个节点负责获取激光雷达的扫描数据,一个节点负责处理激光雷达数据,比如去除噪点。
那节点与节点之间就必须要通信了,那他们之间该如何通信呢?ROS2早已为你准备好了一共四种通信方式:
- 话题-topics
- 服务-services
- Action
- 参数-parameters
这四种种通信方式的用途和使用方法,小鱼放到了第四和第五章来介绍,到时候会带大家手撸代码。
官方给了一张图,大家先大概看一下,帮助理解
3. 如何启动一个节点?知道了节点的概念之后,我们该如何启动一个节点呢?
因为工作空间和包的概念,小鱼放到了下一讲,这里大家跟着小鱼一起运行一个节点,感受一下。
使用指令:
ros2 run
指令意义:启动 包下的 节点。
使用样例:
ros2 run turtlesim turtlesim_node
大家可以尝试一下上面的指令,就是我们在第二章中启动小乌龟模拟器的那条指令。
运行之后可以看到一只小乌龟,接下来就可以试试下一节中提到的几个指令来查看节点信息和列表。
4. ros2 node相关指令运行节点(常用)
ros2 run
查看节点列表(常用):
ros2 node list
查看节点信息(常用):
ros2 node info
重映射节点(暂时不重要)
ros2 run turtlesim turtlesim_node --ros-args --remap __node:=my_turtle
最后
小鱼发现一到周四就特别累,可能是连续工作四天的原因,啥时候可以每周工作四天就好了。不过新生代农名鱼是没得机会了~