ROS2学习——(ROS2节点node)

节点(node)在ROS2中是发布和接收消息的主体,每个节点都是负责一个单一的模块用途,(如一个节点用于控制车轮电机,一个节点用于控制激光测距仪),每个节点都可以通过主题(topic)、服务(service)、动作(action)、或参数(parameter)向其他节点发送和接受数据。节点、主题、服务、动作和参数的关系见图:

一个完整的机器人系统由许多协同工作的节点(node)组成,在ROS2中,单个可执行文件(C++程序、Python程序等)可以包含一个或多个节点,如turtlesim包含节点:

(1)ros2 run():

ros2 run命令从包中启动一个可执行文件,命令格式是:

ros2 run <package_name> <executable_name>

例如启动小海龟的命令是:

ros2 run turtlesim turtlesim_node

其中turtlesim是包的名字,turtlesim_node是可执行文件的名字,此时可以通过ros2 node list 查看节点列表/turtlesim

通过命令:ros2 run turtlesim turtle_teleop_key启动小海龟控制器,再次通过ros2 node list查看节点列表:/teleop_turtle和/turtlesim

(2)remap(重新映射)

给默认节点属性(节点名词、主题名称、服务名称等)重新分配给自定义值。

运行代码:ros2 run turtlesim turtlesim_node --ros-args --remap __node:=my_turtle

可以看到重新打开了一个海龟窗口,运行 ros2 node list可以看到现在节点列表有三个值,分别为:/teleop_turtle,/turtlesim,/my_turtle

(3)ros2 node info (节点信息)

上一步知道节点名字,可以通过代码获取更多节点信息:ros2 node info <node_name>,如:

ros2 node info /my_turtle

可以看到节点/my_turtle的信息列表,包括节点的subscribers,publishers,services,actions,输出信息如下:

总结:节点是ROS2的基础元素, 在机器人系统中服务于单一的模块化的目的。通过运行可执行文件(executable):turtlesim_node和turtle_teleop_key从包<turtlesim>创建节点。

ros2节点名列表获取:ros2 node list

ros2节点信息获取:ros2 node info <node_name>(eg.ros2 node info my_turtle)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值