//////////////////////////Ros创建发布者talker/////////////////////////////////////////////////////////////
#include "ros/ros.h" //
#include "std_msgs/String.h" // 引用std_msgs类下面的String头文件
int main(int argc, char **argv){

ros::init(argc,argv,"talker"); // 初始化节点,注意这里的talker就是节点的名称,也是可执行文件的名称,所以在进行执行生成可执行文件的时候不能随便的更改
ros::NodeHandle n; // 创建一个节点

// 创建一个发布者类的对象,使用的是节点的属性进行初始化,这里的话题类型是:std_msgs::String类型,建立话题通道chatter,注意就收放的话题的通道应该与其相同
ros::Publisher Publisher_n = n.advertise<std_msgs::String>("chatter",1000);
// 实例化一个延时的对象,这里的对相是loop_rate
ros::Rate loop_rate(10);
int count=0; // 定义普通变量用于计数
while(ros::ok()){

std_msgs::String msg; // 创建一个需要发布的数据的对象
msg.data="hello world"; // 初始化对象的成员变量
ROS_INFO("%s",msg.data.c_str()); //打印相关的内容,判断初始化是否成功
Publisher_n.publish(msg); // 使用实例化的发布者对象进行消息的发布

ros::spinOnce(); // 循环一次
loop_rate.sleep(); // 调用延时对象的成员函数进行延时
++count;

}
return 0;
}
~ ////////////////////////////////////定义监听者listener///////////////////////////////////////
~
#include <ros/ros.h>
#include "std_msgs/String.h"

//回调函数,里面的参数是固定的
void backhandler(const std_msgs::String::ConstPtr& msg){

ROS_INFO("I hear: %s",msg->data.c_str());// 上面出入的是一个指针,所以访问的方式使用的是->进行访问
}
int main(int argc , char **argv){
ros::init(argc,argv,"listener"); // 初始化节点,节点的名称是listener
ros::NodeHandle n; // 创建节点对象
// 定义一个订阅者的对象 使用节点的参数进行初始化,通道是和发布者一样chatter,有1000个可以等待,回到函数是backhandler
ros::Subscriber subscriber_n = n.subscribe("chatter",1000,backhandler);

ros::spin(); // 不断的循环

return 0;

}

最新文章

  1. linux中的通配符与正则表达式
  2. IBM云的商务动作之我见(2):IBM 和 VMware 战略合作推进混合云
  3. Linux中安装和使用rz、sz命令
  4. 自定义ImageView回调实现手动改变圆环大小
  5. Runtime.getRuntime().addShutdownHook
  6. ajax再接触
  7. HDOJ 1428 漫步校园
  8. sql语句中查询出的数据添加一列,并且添加默认值
  9. UIScrollview不全屏,解决方案
  10. CTreeCtrl 控件使用总结
  11. C语言连接Oracle
  12. php 中文切割字符串长度
  13. Android学习之旅-android系统服务的启动过程以及分类(90)
  14. Android 百分比布局库(percent-support-lib) 解析与扩展
  15. JavaSE: Java 5 新特性
  16. Systemd程序及相关命令
  17. 如何理解 Linux 中的 load averages
  18. ef group 封装
  19. Centos7常见问题及解决方法
  20. List集合中的数据按照某一个属性进行分组

热门文章

  1. Java创建boolean型数组
  2. 面试突击42:synchronized和ReentrantLock有什么区别?
  3. synchronized锁及其锁升级
  4. 眼见不一定为实:调用链HBase倾斜修复
  5. Linux 多网卡bonding
  6. esp8266 esp01s wifi继电器 初步点灯成功!艰难的历程啊,期间差点烧了
  7. Spring按业务模块输出日志到不同的文件
  8. 高级IPC DBus
  9. js循环调用axios异步请求,实现同步
  10. Redis中的原子操作(2)-redis中使用Lua脚本保证命令原子性