在ROS中使用UDP進行通訊

2021-10-07 05:29:56 字數 539 閱讀 1134

原鏈結

ros的網路通訊提供了兩種方式,一種是tcp協議,一種是udp協議。預設採用tcp進行通訊。但是在實際的wifi網路使用中發現使用者經常反饋客戶端和機械人連線中斷且無法重新建立連線。在ros wiki中官方也有說明,rostcp更適合有線網連線的網路,而rosudp更適合wifi等網路不可靠的無線網路。下面介紹一下如何在ros中使用udp連線。

首先你的訊息發布者必須是用roscpp寫的。rospy不支援udp連線。然後在訂閱的時候新增ros::transporthints指定連線方式。如下面的**

#include

#include

void

print_message

(const std_msgs::string data)

intmain

(int argc,

char

**ar**)

}

unreliable會指定採用udp連線。

詳細的例子可以參照這個專案

在ROS中使用nodelet

nodelet的作用 減少在ros中傳遞資料的延遲。在同乙個程序內,執行多個node,通過指標傳遞資料,使得程序內訊息傳遞時不產生複製成本。下面是乙個使用nodelet原始檔的例子 namespace nodelet tutorial math private virtual void oninit...

在udp中使用connect

近日一直在學習 unix網路程式設計 第1卷 套介面api 再次重新認識了udp,糾正了不少以前錯誤的認識和觀念。在udp中使用connect 1.不能給輸出操作指定伺服器ip位址埠號,也就是說不能使用sendto而改用write或send。伺服器ip由connect指定。2.接收操作不必使用rec...

C 使用udp進行簡易通訊

二 c 專案建立 三 c udp通訊程式編寫 四 結果顯示 五 wireshark抓包 六 小結 七 資料引用 所謂套接字 socket 就是對網路中不同主機上的應用程序之間進行雙向通訊的端點的抽象。乙個套接字就是網路上程序通訊的一端,提供了應用層程序利用網路協議交換資料的機制。從所處的地位來講,套...