网站做a视频在线观看网站,天津建站,泉州网站开发人员,恶意 镜像网站在接触节点这个概念之前#xff0c;我们先来看看下面这张动态图#xff0c;更方便我们理解一些概念和交互过程。 #xff08;相信大家的英文基础哈#xff09;
概念 如上图所示#xff0c;这里面其实涉及到了三个概念#xff08;功能#xff09;#xff0c;分别是节点… 在接触节点这个概念之前我们先来看看下面这张动态图更方便我们理解一些概念和交互过程。 相信大家的英文基础哈
概念 如上图所示这里面其实涉及到了三个概念功能分别是节点、服务和主题。左边一个大圆内书NODE右侧上下各一小圆同样内书NODE没错这3个圆代表的就是3个节点这个概念暂可以理解为一种负责单一功能的、模块化的进程感觉还是没有解释好比如只负责发布雷达数据的一个节点它只管发布实时的雷达数据出去订阅者节点将实时接收这些数据进行其他的功能处理。每个节点可以通过主题、服务、动作、参数获取到这些数据上图描述了通过主题和服务两种方式来获取数据。一个完整的机器人系统会包含很多节点它们各司其职共同维护、执行指定的任务。
动动手
启动节点 我们可以通过如下命令格式启动节点(运行package_name功能包路径下的executable_name节点文件)
$ros2 run package_name executable_name 上一篇我们已经通过小海龟的例子启动了2个节点一个是小海龟节点(ros2 run turtlesim turtlesim_node)一个是控制小海龟的节点(ros2 run turtlesim turtle_teleop_key)如果我们想了解当前运行的所有活动节点可以执行下面命令进行查看
$ros2 node list
命令终端将返回如下信息如果小海龟节点和控制节点都在运行的话
/turtlesim/teleop_turtle
重映射 这个功能有点强可以重新自定义分配默认节点的属性主题名称、服务名称、节点名称等比如我们可以重映射当前活动节点小海龟的名称为my_turtle这会启动一个名为my_turtle的节点
$ros2 run turtlesim turtlesim_node --ros-args --remap __node:my_turtle
效果如下启动另外一只小海龟窗口 查看节点列表ros2 node list你会发现多出一个名为my_turtle的节点 节点信息 如果想要深入了解某个节点的完整信息我们可以通过如下命令进行查看
$ros2 node info node_name
我们尝试查询下刚映射的my_turtle节点信息也可查询其他活动的节点比较下信息内容执行
$ros2 node info /my_turtle
终端将返回如下信息内容
/my_turtle Subscribers: /parameter_events: rcl_interfaces/msg/ParameterEvent /turtle1/cmd_vel: geometry_msgs/msg/Twist Publishers: /parameter_events: rcl_interfaces/msg/ParameterEvent /rosout: rcl_interfaces/msg/Log /turtle1/color_sensor: turtlesim/msg/Color /turtle1/pose: turtlesim/msg/Pose Service Servers: /clear: std_srvs/srv/Empty /kill: turtlesim/srv/Kill /my_turtle/describe_parameters: rcl_interfaces/srv/DescribeParameters /my_turtle/get_parameter_types: rcl_interfaces/srv/GetParameterTypes /my_turtle/get_parameters: rcl_interfaces/srv/GetParameters /my_turtle/list_parameters: rcl_interfaces/srv/ListParameters /my_turtle/set_parameters: rcl_interfaces/srv/SetParameters /my_turtle/set_parameters_atomically: rcl_interfaces/srv/SetParametersAtomically /reset: std_srvs/srv/Empty /spawn: turtlesim/srv/Spawn /turtle1/set_pen: turtlesim/srv/SetPen /turtle1/teleport_absolute: turtlesim/srv/TeleportAbsolute /turtle1/teleport_relative: turtlesim/srv/TeleportRelative Service Clients: Action Servers: /turtle1/rotate_absolute: turtlesim/action/RotateAbsolute Action Clients:
可以看到这里面包含了该节点的所有信息包括节点名称、订阅的主题名称、发布的主题名称、能够提供的服务以及动作等等后面章节我们会对这些概念和功能作进一步的阐述和示例。
本篇完。