1. 程式人生 > >ros學習筆記(2):編寫publisher

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這三者是什麼關係?