ROS学习笔记5:ROS通信架构(计算图级)

文章目录


图的概念:

  • Nodes:节点,一个节点即为一个可执行文件,它可以通过ROS与其它节点进行通信。
  • Messages:消息,消息是一种ROS数据类型,用于订阅或发布到一个话题。
  • Topics:话题,节点可以发布消息到话题,也可以订阅话题以接收消息。
  • Master:节点管理器,ROS名称服务 (比如帮助节点找到彼此)。
  • rosout: ROS中相当于stdout/stderr。
  • roscore: 主机+ rosout + 参数服务器 。

## Master 与 Node

Master

  • 每个Node启动时都要向Master注册
  • 管理Node之间的通信

执行命令roscore时就会启动ros master

roscore
master: 节点管理器
rosout: 日志输出
parameter sever: 参数服务器

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>			<!--根标签-->
发布了45 篇原创文章 · 获赞 1 · 访问量 2468

猜你喜欢

转载自blog.csdn.net/amnesiagreen/article/details/104312570
今日推荐