Ros的通信第一课
//////////////////////////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;
}
Ros的通信第一课的更多相关文章
- 2011斯坦福大学iOS应用开发教程学习笔记(第一课)MVC.and.Introduction.to.Objective-C
blog.csdn.net/totogo2010/article/details/8205810 目录(?)[-] 第一课名称 MVC and Introduction to Objective-C ...
- ChartControl第一课简短的控件初步设计
WinForms Controls >Controls > Chart Control > Getting Started This document gives you a qui ...
- 【Web探索之旅】第三部分第一课:服务器
内容简介 1.第三部分第一课:服务器 2.第三部分第二课预告:IP地址和域名 第三部分第一课:服务器 大家好,欢迎来到[Web探索之旅]的第三部分.这一部分有不少原理,还是很重要的. 这一部分我们会着 ...
- 【SEO 决胜网络索引】 课程大纲及第一部分第一课:网络营销战略中的索引
内容简介 1.课程大纲 2.第一部分第一课: 网络营销战略中的索引 3.第一部分第二课预告: 索引是什么 课程大纲 现在是网络为王的时代,人们越来越离不开互联网: SEO(Search Engine ...
- TCP/IP 网络精讲:开宗明义及第一课
内容简介 1.课程大纲 2.第一部分第一课:互联网历史 3.第一部分第二课预告:互联网的创立,OSI七层模型 课程大纲 我们将带大家一起来学习很多网络方面的技能,向大家介绍TCP/IP的基础知识点.你 ...
- 【Web探索之旅】第三部分第一课:server
wx_fmt=jpeg" alt="0? wx_fmt=jpeg" style="height:auto"> 内容简单介绍 .第三部分第一课:s ...
- swift 第一课 基础知识-1
1. 基本的打印: print("这是学习 swift 的第一课") var varA = print("a 的值是 \(varA)") //注:字符串打印参数 ...
- [nRF51822 AK II 教程]第一课,开发环境的配置及背景介绍【转】
低功耗蓝牙4.0是全新的技术,并不向下兼容,也就是说它和蓝牙3.0.2.0什么的都不能通信的.另外,蓝牙4.0目前的规范只能做外设和主机(智能手机,电脑等)通讯,也就是说你想用一个单模的蓝牙4.0开发 ...
- vue.js学习(第一课)
学习资料 来自台湾小凡! vue.js是javascript的一个库,只专注于UI层面,核心价值永远是 API的简洁. 第一课: 不支持IE8. 1.声明式渲染: el元素的简称 element : ...
随机推荐
- python @符号用法的简单理解
一.用作函数修饰符 作用是为现有函数增加额外的功能,常用于插入日志.性能测试.事务处理等等 创建函数修饰符的规则:(1)修饰符是一个函数(2)修饰符取被修饰函数为参数(3)修饰符返回值取代被修饰函数 ...
- MySQL基础之写表(创建表)
我的博客 工具 市面上的SQL可视化工具不少,我一般常用的主要就是这两个. 当然,IDEA也是集成了数据库可视化功能的.除了这些,还有DBeaver.SQLyog等等. 我比较喜欢DataGrip,我 ...
- Linux获取本机公网IP,调整双节点主从服务的RPC调用逻辑
简单记录一次双节点的之间的服务调用叭 ~ 现有: 服务A的双节点A1.A2 服务B的双节点B1.B2 服务A 和服务B 通过 Netty 实现 RPC 通信,可能会导致比较玄学的问题.如图: 要做到 ...
- 聊聊buffer和cache的区别以及是什么?
buffer 众所周知,想把数据写入磁盘,肯定要先把数据文件读到内存中,当修改完这个文件时,不会立即写入磁盘,为了减少磁盘IO,提高性能,所有会留存一段时间再写入磁盘,这就是buffer cache ...
- Infrastructure 知识: dnf对module的处理
引言 从RHEL8/CentOS8开始,dnf取代yum作为rpm 包管理工具.与之而来的还有模块(module)这个东西. 有了它们的加持,让在同一个OS上安装不同版本的软件或者开发语言的工作比之前 ...
- Centos 7防火墙策略配置指南
Centos 7防火墙策略配置指南 -- 清听凌雪慕忆 @ 目录 1. 开启防火墙 1.1 user切换到root用户 1.2 查看防火墙服务状态 1.3 查看firewall的状态 1.4 启动/关 ...
- springMvc和Hibernate集成实现用户添加
源码:http://pan.baidu.com/s/1i4xVLE9(百度云) 步骤:一.创建数据库(mysql) 二.导入相应jar包(注意不同数据库jdbc.jar包)配置web.xml.spri ...
- 记 iTextSharp 提取中文的问题
原文 问题 下面的代码中 currentText 能提取到大部分汉字 但是字体为 Non-Embedded Font: AdobeSongStd-Light(Horizontal) 的汉字提取不到 P ...
- Proxmox 7.2 部署 DoraCloud桌面云,支持vGPU
介绍 本文介绍了使用Proxmox + DoraCloud,将一台图形工作站(配置有Tesla P4显卡)改造成一台桌面云主机.可以满足多个桌面用户同时使用3D应用的需求. 该方案适合于小型工作室.电 ...
- OpenHarmony3.1 Release版本特性解析——硬件资源池化架构介绍
李刚 OpenHarmony 分布式硬件管理 SIG 成员 华为技术有限公司分布式硬件专家 OpenHarmony 作为面向全场景.全连接.全智能时代的分布式操作系统,通过将各类不同终端设备的能力进行 ...