图的概念:
- Nodes:节点,一个节点即为一个可执行文件,它可以通过ROS与其它节点进行通信。
- Messages:消息,消息是一种ROS数据类型,用于订阅或发布到一个话题。
- Topics:话题,节点可以发布消息到话题,也可以订阅话题以接收消息。
- Master:节点管理器,ROS名称服务 (比如帮助节点找到彼此)。
- rosout: ROS中相当于stdout/stderr。
- roscore: 主机+ rosout + 参数服务器 。
## Master 与 Node
Master
- 每个Node启动时都要向Master注册
- 管理Node之间的通信
执行命令roscore
时就会启动ros master
node
- ROS的进程
- package里可执行文件运行的实例
启动一个Node的代码:
rosrun [pkg_name] [node_name]
-
rosnode
命令:列出当前运行的node信息
rosnode list
显示摸个node的详细信息
rosnode info [node_name]
结束某个node
rosnode kill [node_name]
-
roslaunch
启动Master和多个node
roslaunch [pkg_name] [file_name.launch]
roslaunch
运行时会检测“roscore"是否启动,若没有启动,会自动启动”roscore“。[pkg_name], 一般机器人会把启动的package命名为[robotname_bringup]。
[file_name.launch]文件会写启动规则。
launch文件
书写规则: http://wiki.ros.org/roslaunch/XML
<launch> <!--根标签-->
<node> <!--需要启动的node及参数-->
<include> <!--包含其他launch文件-->
<machine> <!--指定运行的机器-->
<env-loader> <!--设置环境变量-->
<param> <!--定义参数到参数服务器-->
<rosparam> <!--启动yaml文件参数到参数服务器-->
<arg> <!--定义参数传入到launch文件中-->
<remap> <!--设定参数映射-->
<group> <!--设定命名空间-->
</launch> <!--根标签-->