Skip to content

命令行的讲解

视频地址

概要:

围绕rostopicroslaunchrosrun 进行,介绍话题的订阅和接收,查看话题内容,节点与话题的关系,运行turtlesim

正文:

1. 发布者与接收者

Topic是主题,是发布者(publisher)和接受者(subscriber)用来通讯的数据总线。

按照快速入门成功连接Tianbot_mini机器人后,打开终端,运行

shell
roslaunch tianbot_mini bringup.launch

我们再来查看一下话题列表,再打开一个终端,运行rostopic list,会出现

此时出现的就是打开tianbot_mini bringup.launch文件所运行的所有主题,可是怎么把发布者和接受者的主题分开呢?

只需运行

shell
rostopic list -v

发布者和接受者各自的主题就分别展现,它们有什么不同呢?

rostopic echo /topic 将消息输入到屏幕上,按照格式依次分别运行如下命令。

shell
rostopic echo /tianbot_mini/cmd_rxd

shell
rostopic echo /tianbot_mini/info

shell
rostopic echo /tianbot_mini/cmd_vel

shell
rostopic echo /tianbot_mini/led

可以看到属于Published Topic都出现信息,而接受者Subscribed Topic都没有信息产生。

提示

说明发布者不断往外发信息,接受者是在倾听,需要与其对应的发布者的信息才会被接受。

2. 节点

我们再深究一下,Topic是主题,是发布者(publisher)和接受者(subscriber)用来通讯的数据总线。到底是谁在进行通讯?

通讯的个体叫做节点,是独立可执行的C++或Python文件,是代码与实际功能的解耦。

机器人的启动需要很多节点.

我们在刚开始运行roslaunch tianbot_mini bringup.launch,Launch文件可一次运行多个节点,使用roslauch运行.launch文件。

具体使用用法为

shell
roslaunch [package] [filename.launch]

3. Turtlesim

注意

  1. 使用roslaunch运行.launch文件,一次启动多个节点无需打开节点管理器roscore
  2. 使用rosrun单独启动一个节点,首先需要打开节点管理器roscore

我们用rosrun单独运行一个节点,我们采用仿真turtlesim

打开节点管理器 roscore

shell
rosrun turtlesim turtlesim_node