ros中的命名空間
在發布或者定閱時,有這麼一行**
ros::init(argc, ar**, "publish_node_a");
ros::nodehandle nh;
ros::publisher sub_pub = nh.advertise("chattera",1000);
第三行"chattera"就是一種命名空間名稱的方式。
計算圖源的名稱分為:
1)基礎名稱,例如chattera
2)全域性名稱,例如/a/chattera
3)相對名稱,例如a/chattera
4)私有名稱,例如~chattera
通過這段**對這四種命名方式做乙個解釋。
1. 基礎名稱
ros::init(argc, ar**, "publish_node_a");
ros::nodehandle nh;
ros::publisher sub_pub = nh.advertise("chattera",1000);
當你以「chattera」對話題進行命名,此時rostopic list列印得到全域性名稱的結果為 /chattera
2. 全域性名稱
ros::init(argc, ar**, "publish_node_a");
ros::nodehandle nh;
ros::publisher sub_pub = nh.advertise("/a/chattera",1000);
當你以「/a/chattera」對話題進行命名,此時rostopic list列印得到全域性名稱的結果為 /a/chattera
3. 相對名稱
ros::init(argc, ar**, "publish_node_a");
ros::nodehandle nh;
ros::publisher sub_pub = nh.advertise("a/chattera",1000);
當你以「a/chattera」對話題進行命名,此時rostopic list列印得到全域性名稱的結果為 /a/chattera
使用相對名稱時,預設的命名空間十分重要,這裡只介紹以launc**件修改預設命名空間的方式。
在launc**件中,通過設定ns引數來確定預設命名空間
以啟動launc**件的方式啟動該節點,此時rostopic list列印得到全域性名稱的結果為 /ab/a/chattera
4. 私有名稱
ros::init(argc, ar**, "publish_node_a");
ros::nodehandle nh("~");
ros::publisher sub_pub = nh.advertise("chattera",1000);
當你以「chattera」對話題進行命名,此時rostopic list列印得到全域性名稱的結果為 /publish_node_a/chattera
這時話題在你的節點名字後面。
如果我以launc**件啟動,節點引數設定如下:
此時rostopic list列印得到全域性名稱的結果為 /lidar_radar_fusiona/chattera
節點名稱因為launc**件啟動被替換成了lidar_radar_fusiona。
ROS 命名空間
ros 計算圖級資源 節點 引數 主題 服務,這些命名規範和解釋規則適應所有這些資源,在ros中配置引數,進行topic訂閱發布中很重要!命名規範 第乙個字元必須是 a z a z 或者波浪號 或者斜槓 後面的字元可以是 0 9 a z a z 下劃線 斜槓 名字的解釋規則 全域性 global 命...
ROS的命名空間與重對映
ros的命名空間有全域性命名空間 相對命名空間 私有命名空間 對應著全域性名稱 相對名稱 私有名稱 用於區分topic等 以 開頭的節點名 話題名表示其屬於全域性命名空間,被稱為全域性名稱,在整個程式中是獨一無二的,具有絕對的意味 例如 turtlesim turtle1 cmd vel a b c...
c 中regex的命名空間 c 命名空間
system.transactions 命名空間 注意 此命名空間在 net framework 2.0 版中是新增的。使用 system.transactions 命名空間包含的類可以編寫自己的事務應用程式和資源管理器。具體地說,可以建立和參與 與乙個或多個參與者 本地或分布式事務。system....