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这三者是什么关系?







你可能感兴趣的:(ros学习笔记(2):编写publisher)