0
讓我們假設我有一個ROS元包A與一些消息和其他元包B與其他消息。是否有可能使用msgs機制與B進行通信而無需彼此依賴?我的目標是讓用戶克隆元包A並完全獨立於包B構建它,並對稱地克隆包B,並獨立於包A構建它,並且啓動特定節點允許與一些複雜的消息進行通信。它甚至有可能嗎?獨立ROS包
丹尼爾
讓我們假設我有一個ROS元包A與一些消息和其他元包B與其他消息。是否有可能使用msgs機制與B進行通信而無需彼此依賴?我的目標是讓用戶克隆元包A並完全獨立於包B構建它,並對稱地克隆包B,並獨立於包A構建它,並且啓動特定節點允許與一些複雜的消息進行通信。它甚至有可能嗎?獨立ROS包
丹尼爾
據我所知,這是不可能的。
假設程序包A使用在程序包B中定義的消息類型。爲了使用此消息類型,需要包含生成的頭文件,這隻有在將B作爲A的依賴項添加時纔有可能。
有兩個解決方案,我能想到的(無論是你是可行的,我不知道):
你可以A的所有消息定義和B移動到一個單獨的分組C (它只包含消息而已)。 A和B然後依賴於這個新的包C,但彼此之間沒有依賴關係。
另一種解決方案可能是僅使用已經由ros定義的標準消息類型。如果您發送的數據符合其中一種標準消息類型,這當然只是一個可行的解決方案。
我已經使用您提到的第一個解決方案。它乾淨而緊湊,但我是「代碼純粹」,並希望有其他一些機制。 由於我想公開第一個元包,第二個元包僅用於個人目的,我們(整個團隊)決定在元包中使用相同的形式發送消息。它允許貢獻者將這些消息用作第一個元數據包的輸出,如果我想要構建這兩個項目,我只需將CATKIN_IGNORE添加到其中一個消息節點,並且每件事都像魅力一樣。 還是謝謝! – 2014-11-17 19:32:19