使用UDPROS进行通信

TCPROS是ROS默认使用的传输方式。另一种通信类型是 UDPROS,这种方式是一种低延迟、非可靠的传输,仅适用于远程操作。

在发布的消息头中,在发布消息之前将当前时间戳写到timeStamp中,然后在订阅器的回调函数中再计算消息中的timeStamp到当前时间的Duration,这样子能够大概计算这个经过的时间;实际上网络延迟会比这个Duration稍微短一点。

更换为UDP 通信只需要在 ros::Subscriber 的构造函数最后加上ros::TransportHints().unreliable().maxDatagramSize(1000) 即可。

  • 随着频率的增加,通信延迟也相应增加
  • 在UDP通信中,随着maxDatagramSize的增加,通信延迟也随着降低。
  • 随着订阅者数量增加,通信延迟也会增加。

参考:
Transport Hints
UDPROS