ros學習筆記(2):編寫publisher
三大步驟:
- 初始化 ROS 系統
-
在 ROS 網路內廣播我們將要在 chatter 話題上釋出 std_msgs/String 型別的訊息
- 以每秒 10 次的頻率在 chatter 上釋出訊息
查手冊http://docs.ros.org/jade/api/roscpp/html/classros_1_1NodeHandle.html#a6b655c04f32c4c967d49799ff9312ac6
步驟一:初始化
詳見http://blog.csdn.net/shiyue0010/article/details/51939001
主要兩步:
a) 通過呼叫ros::init()函式來初始化節點。可以用命令列引數來命名節點和設定一些其它選項。
b) 通過建立ros::NodeHandle例項來啟動節點。在一些更高階的情形可以採用不同的方式。
ros::init()——你可以利用這個函式命名你的節點,這一步是初始化你的節點
ros::NodeHandle——啟動你的節點
最常用的啟動roscpp節點的方式就是建立ros::NodeHandle例項:ros::NodeHandle nh;
nh是節點控制代碼
但是這裡我有一個問題:控制代碼是什麼?他與節點名稱有什麼區別於聯絡?
這裡放幾篇文章:
http://blog.csdn.net/mmyaoduli/article/details/51049805
http://blog.csdn.net/shiyue0010/article/details/51944777
另外關於C++類https://baike.baidu.com/item/%E7%B1%BB/6824577?fr=aladdin
步驟二:
幾個知識點:
流、std::stringstream和<<
http://blog.csdn.net/willtom/article/details/24740305
https://baike.baidu.com/item/%3C%3C/15269837?fr=aladdin#3
ros::Publisher chatter_pub = n.advertise<std_msgs::String>("chatter", 1000);
This call connects to the master to publicize that the node will be publishing messages on the given topic. This method returns a Publisher that allows you to publish a message on this topic.
這個呼叫通知master宣佈n這個節點將會發布訊息在指定的話題上。此方法返回一個pubilsher,他使你可以釋出訊息在指定的話題上。
對這句話有些疑問,其實還是上面的問題
節點名稱、控制代碼、publisher這三者是什麼關係?