4 4 ROS節點名稱重名

2021-10-22 10:32:54 字數 692 閱讀 1371

場景:ros 中建立的節點是有名稱的,c++初始化節點時通過api:ros::init(argc,ar**,"***x");來定義節點名稱,在python中初始化節點則通過rospy.init_node("yyyy")來定義節點名稱。在ros的網路拓撲中,是不可以出現重名的節點的,因為假設可以重名存在,那麼呼叫時會產生混淆,這也就意味著,不可以啟動重名節點或者同乙個節點啟動多次,的確,在ros中如果啟動重名節點的話,之前已經存在的節點會被直接關閉,但是如果有這種需求的話,怎麼優化呢?

在ros中給出的解決策略是使用命名空間或名稱重對映。

命名空間就是為名稱新增字首,名稱重對映是為名稱起別名。這兩種策略都可以解決節點重名問題,兩種策略的實現途徑有多種:

以上三種途徑都可以通過命名空間或名稱重對映的方式,來避免節點重名,本節將對三者的使用逐一演示,三者要實現的需求類似。

案例

[ warn] [1578812836.351049332]: shutdown request received.

[ warn] [1578812836.351207362]: reason given for shutdown: [new node registered with same name]

因為兩個節點不能重名,接下來將會介紹解決重名問題的多種方案。

erlang 服務節點名稱

erlang程式設計的 kvs 例子中,區域網 遠端呼叫的節點名稱。erl name gandalf setcookie abc.如果機器沒有該計算機名稱,那麼 節點名稱會是 gandalf localhost.localdomain 這個名字需要改一下。修改方法 1.hostname mike.c...

SQL中樹節點名稱拼接

針對樹狀結構的資料 id,pid,name類 有時候我們需要將所有節點拼接起來,例如表中有如下資料 id pid name 1 四川 2 1 成都 3 1 綿陽 4 2 雙流 我們需要得到這樣的結果,1 四川 2 四川 成都 3 四川 綿陽 4 四川 成都 雙流 此時我們可以採用with語句來實現 ...

XML取節點名稱與節點值例項

declare xxml set x 88a5劉洋 388a5林林 1234 5678 9123 4 84a6陳真 384a6陳真 9876 5432 1234 5 45d1曹曹 345d1曹曹 1 按照節點的值取出其下節點中所有的節點名稱 如 ndid節點值為84 84 selectt.x.val...