0

现在我有两种节点,首先我有 4 个摄像头节点,它们捕获图像然后通过同一个主题发布,然后我有一个进程节点,它从主题获取消息以进行处理。我确信处理节点比捕获速率快 4 倍。但我仍然会丢失 10-20% 的消息。在订阅端,我已经使用了 tcp 传输,以下是我的消息设置:</p>

相机节点(共4个节点,抓拍fps为25)</p>

m_pub = it.advertise("/camera/out_topic", 25);  

处理节点

m_sub = nh.subscribe(in_topic.c_str(), 400, &Detection::imageCB, this,                                                                        
                     ros::TransportHints()                                                                             
                     .reliable()                                                                                       
                     .tcpNoDelay(true));

不是我的错,过程不快于捕获频率

4

1 回答 1

1

您的问题是图像的时间戳,您的发布者以确切的时间戳发布数据,发生这种情况时某些消息会丢失。我建议您为您的节点使用某种同步您rate.sleep在您的发布者中使用吗?

于 2018-08-19T15:41:28.227 回答