您现在的位置是:Instagram刷粉絲, Ins買粉絲自助下單平台, Ins買贊網站可微信支付寶付款 >
01 ros發布和訂閱的實例(ros中一個cpp可以寫兩個節點不)
Instagram刷粉絲, Ins買粉絲自助下單平台, Ins買贊網站可微信支付寶付款2024-06-23 19:25:33【】2人已围观
简介ros中一個cpp可以寫兩個節點不yright©1999-2020,CSDN.NET,AllRightsReservedc++打開APPAtarasin關注ROS:關于節點和節點句柄以及命名
ros中一個cpp可以寫兩個節點不
yright © 1999-2020, CSDN.NET, All Rights Reserved
c++
打開APP
Atarasin
關注
ROS:關于節點和節點句柄以及命名空間 原創
2021-02-22 19:12:36
25點贊
Atarasin
碼齡4年
關注
ROS:關于節點和節點句柄以及命名空間
首先,我們需要明確的是 節點 和 節點句柄 是不同的。一般而言,一個cpp文件只能啟動一個ROS節點,但作為該節點的句柄卻可以設置多個。
The ros::NodeHandle class serves two purposes. First, it provides RAII-style startup and shutdown of the internal node inside a roscpp program. Se買粉絲nd, it provides an extra layer of namespace resolution that can make writing sub買粉絲ponents easier.
如上所言,節點句柄類有兩個作用:
在一個roscpp程序中,節點句柄可以啟動或關閉一個ROS內部節點;
節點句柄可以增加一層命名空間,可以為編寫組件提供便利。
1.啟動或關閉節點
創建一個節點句柄最簡單的方式如下所示:
ros::NodeHandle nh;
1
1
在創建節點句柄時,若內部節點還未啟動,則創建的句柄會啟動該節點。一旦該節點所有的句柄實例(同一個cpp程序下創建的都是同一個節點的句柄)都被銷毀,則該節點也會自動關閉。這句話也從側面說明了,一個節點可以創建多個句柄。
On creation, if the internal node has not been started already, ros::NodeHandle will start the node. Once all ros::NodeHandle instances have been destroyed, the node will be 買粉絲matically shutdown.
2.命名空間
節點句柄的另一個構造函數形式可以讓我們自定義命名空間:
ros::NodeHandle nh("my_ns"); // <node_namespace>/my_ns
1
1
若存在節點命名空間,如在launch文件中啟動該節點時加入ns="node_ns",則命名空間為node_ns/my_ns;
若不存在節點命名空間,則為my_ns。
另外也可以創建多個節點句柄,然后為某個句柄設置父節點句柄:
ros::NodeHandle nh1("ns1"); // <node_namespace>/ns1
ros::NodeHandle nh2(nh1, "ns2"); // <node_namespace>/ns1/ns2
1
2
1
2
此外,還有兩種命名方式:
全局命名
ros::NodeHandle nh("/my_global_namespace"); // /my_global_namespace(不受外部命名影響)
1
1
注意:在ROS的命名中,加或不加/是存在區別的。 若加上/,說明這是一個全局命名,則無法再被放入一個命名空間當中;若不加/,則可以通過如launch中設置ns,使得該命名被放入到該命名空間當中。比如,我定義了兩個發布器,發布話題分別為/cmd_vel與cmd_vel,此外若外部還存在一個命名空間為dwa_planner,則它們的命名分別變為
/cmd_vel => /cmd_vel
cmd_vel => /dwa_planner/cmd_vel
私有命名
// 1.~+name
ros::NodeHandle nh("~my_private_ns");
ros::Subscriber sub = nh.subscribe("my_private_topic", ...); // <node_namespace>/<node_name>/my_private_ns/my_private_topic
// 2.~
ros::NodeHandle nh("~");
ros::Subscriber sub = nh.subscribe("my_private_topic", ...); // <node_namespace>/<node_name>/my_private_topic
1
2
3
4
5
6
7
1
2
3
4
5
6
7
私有命名與上述提到的命名都不同,它會把原本命名放入到<node_name>下。因此,上面訂閱器的話題的命名如下:
很赞哦!(193)
相关文章
- 02 陜西外經貿進出口集團有限公司是什么級別(煙草行業是什么樣子?)
- 02 陜西國際貿易學院藝術類錄取分數線(2008年中國大學百強在湖北省的錄取分數線及招生情況)
- 09 download mp3 youtube music(如何讓YTmusic在后臺播放)
- 02 阿里國際站外貿業務員如何操作(阿里國際站如何運營)
- 02 陜西外貿實業集團公司怎么樣(公司團隊簡介范文3篇)
- 02 陜西國際貿易學院院校代碼(西安翻譯學院代碼是多少?)
- 02 阿里外貿業務員工作職責(外銷業務員工作職責是什么)
- 09 download youtube 買粉絲s 買粉絲(Marie.Digby.-.[Unfold].專輯 給個地址,最好無損,其次ogg,最次MP3 320k)
- 02 陜西四方汽車貿易有限公司售后電話(2011年河北省招聘會 招聘單位有哪些)
- 02 閱讀訂閱源合集本地(常用辦公軟件有哪些?)
热门文章
站长推荐
09 institute趣味記憶(單詞總是記不住,怎么辦?)
02 防詐騙的買粉絲推文大學(假期可以參加什么社會活動,提高個人的眼界?)
02 閱讀節買粉絲文案(2022教師節買粉絲文案(精選80句))
02 陸西亞國際貿易有限公司(駐迪拜中國旅游公司)
09 how do i edit my youtube playlist(幫忙翻譯一段IPHONE廣告)
09 instagram鏡像國內(新西蘭旅游必備的9款APP)
09 get youtube to mp3(求流行英文歌曲打包下載30-50首! 最好是親測的..要英文的!.只要你覺得好聽...)
09 download youtube to mp3 player windows download(P2P買粉絲怎么加速)