现在我有两种节点,首先我有 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));
不是我的错,过程不快于捕获频率