c++创建订阅者和发布者

本文档介绍了如何在ROS系统中创建C++的订阅者和发布者节点。首先,概述了节点的基本概念,然后通过示例代码解释了`talker.cpp`和`Listener.cpp`的工作原理,包括消息的发布、接收和处理。最后,讨论了编译和运行ROS程序涉及的`CMakeLists.txt`配置以及验证程序正确性的步骤。
摘要由CSDN通过智能技术生成

此文章默认读者已经对ros有了一定的基础,明白ros之间如何进行数据通信,了解ros的文件结构,了解工作空间,功能包的概念。本篇文章参考创客智造上的教程,他们的讲解比我更详细。百度一下创客智造即可。

  订阅者和发布者依托于节点,即订阅者和发布者是在节点中完成的。所以先来说一下节点的定义,步骤可分为:

1.新建代码源文件

2.写代码

3.在cmakelist.txt文件中定义

订阅者和发布者在写代码的步骤中。

 

下面上一段,roswiki上给出的官方demo,然后对demo做讲解。

talker.cpp

#include "ros/ros.h"

#include "std_msgs/String.h"

 

#include <sstream>  //c++里的导包,对于我这种c++半路出家的,就理解为java里的import语句

//值得一说的是第一行语句,include ros/ros.h  ,引入ros的相关头文件,这是所有ros开发的起点

 

/**

 * This tutorial demonstrates simple sending of messages over the ROS system.

 */

int main(int argc, char **argv)

{

  /**

   * The ros::init() function needs to see argc and argv so that it can perform

   * any ROS arguments and name remapping that were provided at the command line.

   * For programmatic remappings you can use a different version of init() which takes

   * remappings directly, but for most command-line programs, passing argc and argv is

   * the easiest way to do it.  The third argument to init() is the name of the node.

   *

   * You must call one of the versions of ros::init() before using any other

   * part of the ROS system.

   */

  ros::init(argc, argv, "talker");    //初始化节点,第一二个参数走main里传进来,第三个参数为节点名称

 

  /**

   * NodeHandle is the main access point to communications with the ROS system.

   * The first NodeHandle constructed will fully initi

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值