ROS学习笔记(四)

1、计算图

ROS 分布式系统中不同进程需要进行数据交互,计算图可以以点对点的网络形式表现数据交互过程。在LINUX上启动新终端,键入: rqt_graph 或 rosrun rqt_graph rqt_graph 即可查看当前的计算图,以我们前2节的案例为例,其计算图如下

2、注意点

1、在运行这个程序的时候,你会发现订阅方接收的消息比发布方发布的要少那么一部分,如下图所示,我先启动的订阅方,后启动的发布方,按理说只要发布方发消息,订阅方就一定会接收到,但根据图可以发现,少了个1。这个主要的原因是因为,发布方注册的同时也在发消息,但是此时还没有注册上,也就是订阅方还没有匹配上发送方,所以订阅方会少接收一部分消息。解决办法是,让发布方注册的后休眠一会。具体的做法就是加一个休眠的函数 ros::Duration(3.0).sleep();休眠3秒。加在发布方发消息之前。具体位置如下

    int count = 0;//定义一个int数据类型的count
  //编写循环,循环中发布数据
   ros::Duration(3.0).sleep();
  while (ros::ok())
  {
      count++;

如图,有接收不到的消息。

加上休眠之后,如下图

2、发送方和订阅方的名字是唯一的,话题必须一样,才可以通信!!!

3、发布方和订阅方的编程语言可以不一样,只要满足ros的通信标准就可以通信,也就是解耦合能力比较强。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Lbuera

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值