美文网首页
ROS与ROS2通讯机制的区别

ROS与ROS2通讯机制的区别

作者: prophet__ | 来源:发表于2019-12-18 20:37 被阅读0次

    ROS是由Standford的PR2项目起源,它有一套非常完备的工程系统,可以适用于大部分的机器人场景。


    ROS是通讯机制、工具软件包、机器人高层技能以及机器人生态系统的集合体。(来自roswiki)
    http://wiki.ros.org/ROS

    ROS的不足

    一般来说,ROS需要有一个roscore作为主节点来运行其他所有的进程,如果这个主节点出现错误,整个系统都会冗机。同时由于ROS在消息转发当中要经过很多个软件栈,时间没有办法做到REAL-TIME,因此只能在开发过程当中作为一个工具使用,或者适用于实时性要求不太高的单机机器人场景。

    那么如果不用ROS的通讯,就需要一些更加工业场景适用的中间件进行消息通讯。

    ROS2

    ROS2加入了一个ROS图的概念,不同的ROS节点之间可以进行通讯,然后通过它制作的ros1-bridge这个包来实现这个ROS与ROS2之间的交互。

    在这个基础之上,我又进一步的了解了fast-rtps通信协议。

    FAST-RTPS

    FAST-RTPS是一个多机之间通信的中间件,它实现了在局域网之内建立域,然后在域内通过Publisher和Subscriber进行交互。不同的消息话题可以通过不同的topicname来进行确认。

    FAST-RTPS在局域网内默认的发布形式是UDP的,也就是说一旦以这个话题发送消息,整个局域网内所有开了这个话题的机器都能收到这条信息,那么如果要加以确认,就需要在消息当中加入每个机器的标志位,这样才知道这条信息究竟发给了谁。

    现在暂时只是对多机通讯的简单形式进行了使用,后面会对它的TCP(点对点)转发形式再做一个探究,还有包括消息的确认(多次握手),以及话题的matching,容错处理进行进一步探究。

    相关文章

      网友评论

          本文标题:ROS与ROS2通讯机制的区别

          本文链接:https://www.haomeiwen.com/subject/zchagctx.html