1. 一个实例
打开三个终端,分别运行下面三条指令:
1 roscore
2 rosrun turtlesim turtlesim_node
3 rosrun turtlesim turtle_teleop_key
- 如果第2, 3条无法运行,则可能是环境变量未配置, 可以执行:
source /opt/ros/melodic/setup.bash
之后就可以在第三个终端中输入方向建控制由第二个终端打开程序的小乌龟运动
2.ROS主题
上面的程序是如何实现的呢?
其实啊,turtlesim_node和turtle_teleop_key节点通过ROS主题相互通信。 turtle_teleop_key正在发布某个主题的按键,而turtlesim订阅了同一主题以接收这些按键。为了便于理解, 让我们使用rqt_graph来显示当前正在运行的节点和主题。
- 打开一个终端:
rosrun rqt_graph rqt_graph
你将会看到如下结果:
这就是ros基于主题通信的一个简单结构
- rostopic工具可让您获取有关ROS主题的信息。
rostopic -h
输出:
rostopic bw 显示主题使用的带宽
rostopic echo 将消息打印到屏幕
rostopic hz 显示主题的发布频率
rostopic list 打印有关活动主题的信息
rostopic pub 将数据发布到主题
rostopic