1. master&&node
mater中文名又称为节点管理器,作为管家管理所需要的进程,其作用有两个:
- 每个node启动时都要向master注册。
- 管理node之间的通信。
node先找master登记,登记完了才能启动。如果有很多的node两两之间的通信靠master的介绍完成的。
启动ros master:
$ roscore
node的启动方法:
$ rosrun [pkg_name][node_name]
与rosnode相关的命令:
#列出当前运行的node信息
$ rosnode list
#显示某个node的详细信息
$ rosnode info [node_name]
#结束某个node
$ rosnode kill [node_name]
启动master和多个node
$ roslaunch [pkg_name][file_name.lauch]
下面是实际例子参考ROS学习之路(一)创建必要文件:
$ source ~/catkin_ws/devel/setup.bash
$ cd ~/catkin_ws/src/ROS-Academy-for-Beginners
$ roslaunch robot_sim_demo robot_spawn.launch
在新的终端里面使用:
$ rosnode list
$ source ~/catkin_ws/devel/setup.bash ##这一步必须执行
$ roslaunch robot_sim_demo robot_keyboard_teleop.py
2. topic&&msg
2.1 topic
topic是ROS的异步通信方式,node间通过publish-subscribe机制通信。
topic实际上是一个字符串。
2.2 message
message是topic内容的数据类型定义在*.msg文件中。message是一种数据格式,一条条信息必须遵守的规范。
基本msg包括:bool、int8、int16、int32、int64(以及unit)、float32、float64、string、time、duration、header。可变长数组array[],固定长度数组array[c]。
2.3 与topic和msg相关的命令
##列出当前所有topic
$ rostopic list
##显示某个topic的属性信息
$ rostopic info /topic_name
##显示某个topic内容
$ rostopic echo /topic_name
##向某个topic发布内容
$ rostopic pub /topic_name
##列出系统上所有msg
$ rosmsg list
##显示某个msg内容
$ rosmsg show /msg_name