一、基本概念
Nodes:节点,一个节点即为一个可执行文件,它可以通过ROS与其它节点进行通信。
Messages:消息,消息是一种ROS数据类型,用于订阅或发布到一个话题。
Topics:话题,节点可以发布消息到话题,也可以订阅话题以接收消息。
Master:节点管理器,ROS名称服务 (帮助节点之间交互)。
rosout: ROS中相当于stdout/stderr。//标准输出
roscore: 主机+ rosout + 参数服务器 //启动主节点,运行所有ROS程序前首先要运行的命令
使用rosnode
(1) rosnode list 指令列出活跃的节点
(2) rosnode info 命令返回的是关于一个特定节点的信息。rosnode info /rosout
(3)rosnode cleanup 清除列表中的节点
(4) rosnode ping 节点名字 -- 查看节点运行状态
rosrun 允许你使用包名直接运行一个包内的节点(而不需要知道这个包的路径).
rosrun [package_name] [node_name]
rosrun [package_name] [node_name] __name:=节点名字 --修改节点的名字
二、ROS话题
话题:节点和节点之间是通过一个ROS话题来互相通信的。
(1)使用 rqt_graph
创建一个显示当前系统运行情况的动态图形,rosrun rqt_graph rqt_graph
rqt_plot命令可以实时显示一个发布到某个话题上的数据变化图形
(2)rostopic
-
rostopic echo [topic] 查看节点在话题上发布的数据。
- rostopic list 列出所有当前订阅和发布的话题
-
rostopic pub 可以把数据发布到当前某个正在广播的话题上 --
rostopic pub [topic] [msg_type] [args]
- rostopic pub -r命令来发布一个稳定的命令流
- rostopic hz命令可以用来查看数据发布的频率。
(3)ROS Messages
话题之间的通信是通过在节点之间发送ROS消息实现的,发布器和订阅器之间必须发送和接收相同类型的消息。
- rostopic type 命令用来查看所发布话题的消息类型,使用rosmsg命令来查看消息的详细情况 -- rostopic type [topic]
rosmsg show