• 欢迎访问开心洋葱网站,在线教程,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站,欢迎加入开心洋葱 QQ群
  • 为方便开心洋葱网用户,开心洋葱官网已经开启复制功能!
  • 欢迎访问开心洋葱网站,手机也能访问哦~欢迎加入开心洋葱多维思维学习平台 QQ群
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏开心洋葱吧~~~~~~~~~~~~~!
  • 由于近期流量激增,小站的ECS没能经的起亲们的访问,本站依然没有盈利,如果各位看如果觉着文字不错,还请看官给小站打个赏~~~~~~~~~~~~~!

ROS 2 | 主题 -topics-

人工智能 zhangrelay 1667次浏览 0个评论

前序:ROS 2| 节点 -nodes-   本节详细介绍主题topic。   1. 如何理解主题topic:   ROS 2将复杂的系统分解为许多模块化的节点。主题是ROS图(ROS graph)的重要元素,功能为节点交换消息的总线。节点可以将数据发布到任意数量的主题,与此同时,可以实现对任意数量主题的订阅。主题是节点间数据交互的重要方式,同样也适用于系统各种不同模块之间的交互。  
ROS 2 | 主题 -topics-   2. 主题topic有哪些命令功能:   使用如下命令: ros2 topic -h   显示如下:  
ROS 2 | 主题 -topics-   主要有: ·   bw:显示所查阅主题的带宽 ·   delay:显示延迟 ·   echo:输出主题消息 ·   find:列出选定主题 ·   hz:输出平均发布频率 ·   info:显示主题消息 ·   list:列出可使用的主题表 ·   pub:发布消息到主题 ·   type:输出主题类型   3. 如何掌握主题topic   如之前一节学习类似,先打开turtlesim和teleop节点: ros2 run turtlesim turtlesim_node ros2 run turtlesim turtle_teleop_key   rqt_graph工具:  
ROS 2 | 主题 -topics-   3.1 命令工具   在新终端中运行该命令ros2 topic list将返回系统中当前活动的所有主题的列表:  
ROS 2 | 主题 -topics-   更详细的功能:ros2 topic list -t   返回相同的主题列表,这次主题类型显示在每个主题后面的括号中:  
ROS 2 | 主题 -topics-   主题具有名称和类型。这些属性(尤其是类型)是节点用于交互相同信息的基础。  
ROS 2 | 主题 -topics-   3.2 显示主题消息   要查看有关某个主题的发布数据,使用: ros2 topic echo <topic_name>   例如:/turtle1/cmd_vel ros2 topic echo /turtle1/cmd_vel   如果没有消息,该命令不会返回任何数据。   点击键盘方向左键。  
ROS 2 | 主题 -topics-   3.3 显示主题信息   主题不必只是点对点的交互;它可以是一对多,多对一或多对多。   使用如下命令查阅主题状态信息: ros2 topic info /turtle1/cmd_vel  
ROS 2 | 主题 -topics-   一个发布,两个订阅,思考分别为哪些?   3.4 订阅发布类型   节点使用消息通过主题发送和接收数据。发布者和订阅者必须发送和接收相同类型的消息才能进行通信。   上述主题对应的类似分别如下: ·   /parameter_events [rcl_interfaces/msg/ParameterEvent] ·   /rosout [rcl_interfaces/msg/Log] ·   /turtle1/cmd_vel [geometry_msgs/msg/Twist] ·   /turtle1/color_sensor [turtlesim/msg/Color] ·   /turtle1/pose [turtlesim/msg/Pose]   其中, geometry_msgs/msg/Twist   表示在在geometry_msgs包中有一个msg被称为Twist。   可以运行此类型以了解其详细信息,特别是消息期望的数据结构。 ros2 interface show <type>.msg   如: ros2 interface show geometry_msgs/msg/Twist.msg  
ROS 2 | 主题 -topics-   3.5 发布主题消息   知道消息结构后,可以使用以下命令直接从命令行将数据发布到主题上: ros2 topic pub <topic_name> <msg_type> "<args>"   该'<args>’参数是传递给主题的实际数据。   注意,windows使用”<args>”。   此参数需要以YAML语法输入。输入完整的命令,如下所示: ros2 topic pub --once /turtle1/cmd_vel geometry_msgs/msg/Twist "{linear: {x: 2.0, y: 0.0, z: 0.0}, angular: {x: 0.0, y: 0.0, z: 1.8}}"   –once 是一个可选参数,意思是“发布一条消息然后退出”。  
ROS 2 | 主题 -topics-  
ROS 2 | 主题 -topics-   更多参数:  
ROS 2 | 主题 -topics-   ros2 topic pub --rate 1 /turtle1/cmd_vel geometry_msgs/msg/Twist "{linear: {x: 2.0, y: 0.0, z: 0.0}, angular: {x: 0.0, y: 0.0, z: 1.8}}"   以1 Hz的频率发布速度指令。  
ROS 2 | 主题 -topics-   改变不同的角速度,可以画出不同半径的圆形轨迹。  
ROS 2 | 主题 -topics-   显示小乌龟目前的坐标信息: ros2 topic echo /turtle1/pose  
ROS 2 | 主题 -topics-   3.6 主题频率   查看主题消息发布的频率使用如下命令: ros2 topic hz /turtle1/pose   频率约60hz左右,如下图所示:  
ROS 2 | 主题 -topics-   4. 关闭节点   很多节点在运行。不要忘记通过关闭终端窗口或在每个终端中输入Ctrl+C停止它们。   这些内容基本于ROS1相似,部分将rostopic更新为ros2 topic。


开心洋葱 , 版权所有丨如未注明 , 均为原创丨未经授权请勿修改 , 转载请注明ROS 2 | 主题 -topics-
喜欢 (0)

您必须 登录 才能发表评论!

加载中……