ROS源码学习分享_1

        本篇博客用于分享学习小皎皎ros源码的一些心得感悟,如有错误敬请谅解。

        源博客:https://zhuanlan.zhihu.com/p/688106457

        ROS作为一款使用了SOA(Service-Oriented Architecture)思想的软件框架,至今已有16个年头。无数工程证明了其可靠性。在SOA思想中,不同模块之间通过服务进行交互,不同模块通过服务中心进行发布和查询以建立连接。ROS的服务中心是master节点。不同模块(称为节点),通过master节点进行注册和查找,来实现发布-订阅(publish-subscribe)模型的数据交互。这些节点可以发布消息(topics),订阅消息,或者提供和调用服务(services),master节点负责管理这些节点的注册信息,从而实现模块间的高效通信。

        而Master节点使用XML-RPC协议进行建立连接和传输数据。具体来说:

  • 节点注册和查询:当ROS节点启动时,它通过XML-RPC向Master节点发送请求,进行节点的注册。这包括提供节点的名称和URI,以便其他节点能够找到并与其通信。
  • 话题和服务的管理:ROS节点通过XML-RPC向Master节点注册它们发布的话题和提供的服务。其他节点可以通过XML-RPC请求Master节点,查询话题和服务的信息,从而建立通信。
  • 参数服务器:ROS的全局参数服务器也是通过XML-RPC接口实现的。ROS节点可以使用XML-RPC方法在参数服务器上存储和检索参数。

        这里需要说明的是,和SOMEIP类似,XMLRPC作为服务中心,并不直接支持模块之间的数据流交互而是仅仅支持注册订阅与发布。模块之间的数据流交互通过TCPROS和UDPROS进行传输。且在ROS中,通信主要通过发布者/订阅者模式和服务调用实现。发布者/订阅者模式允许节点发布消息以供其他节点订阅,实现了异步通信。而服务调用则允许节点请求特定服务,另一个节点提供该服务并返回结果,实现了同步通信。同时,参数服务器用来存储节点参数,供节点读取和设置参数,但不属于通信方式之一。

        使用XMLRPC的优势:

                1.轻量化设计

                2.可读性优越

                3.跨平台性能强

        劣势:XMLRPC作为一种文本协议其编码能力较弱,浪费带宽,最重要的是实时性不如Protobuf.protobuf 同样具备跨平台可读性等优势。

  • 5
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值