要进行交互和获取主题的信息,可以使用rostopic 工具。
rostopic pub 可以发布任何节点都是可以订阅的主题,我们只需要用正确的名称将主题发布出去。
rostopic pub -(次数)/[topic名字]/ [msg_type][args]
如rostopic pub -r /turtle1t/cmd_vel turtlesim/velocity --11
第一步
先来认识发布者和订阅者之间的联系。
rosrun turtlesim turtlesim_node
rosrun turtlesim turtle_teleop_key
第二步
当我们运行这个节点的时候,会出现某个topic建立起联系。
其中订阅这个主题的是 turtlesim_node
节点。而发布这个主题
teleop_turtle_key这个节点
他们订阅一个主题共同一个topic,即turtle1t/cmd_vel。
可见是
节点会发布或者订阅一个主题,主题里面有一个消息,这是需要的数据
Publications:
-
/rosout [rosgraph_msgs/Log]
-
/turtle1/color_sensor [turtlesim/Color]
-
就如此为例
-
这里有一个节点,会发布一个主题为/turtle1/color_sensor
-
主题里面有一个消息叫做 turtlesim/color的消息。
-
/turtle1/pose [turtlesim/Pose]
Subscriptions:
- /turtle1/cmd_vel [geometry_msgs/Twist]
第四步
通过echo参数,可以查看节点发出的信息
如rostopic echo /turtle1/cmd_vel
便可以看到一个数据
linear 0000
angular 0000
这个数据的初始化是msg中。
个人暂时的理解是,
节点被运行时,会发布一个主题,而这个主题会去调用一个程序,这个程序就会把所需要的消息公布出来。
等我学了rqt 之后,就更加明白