ROS教程(七):定时器
1.定时器的作用
定时器即以一定的频率定时的调用一个回调函数
2 使用定时器
1. 创建一个定时器的工作原理非常类似于创建一个订阅者:
createTimer(Duration period, const TimerCallback& callback, bool oneshot = false,bool autostart = true)
参数的解释:
Duration period:时间间隔
callback:回调函数名
oneshot(默认为false):如果设置为 true,只执行一次回调函数,设置为 false,就循环执行。
autostart(默认为true):如果为true,返回已经启动的定时器,设置为 false,需要手动启动, 如time.start()。
2.定时器回调函数的格式:
void timerCallback(const ros::TimerEvent& e);
3.例子
1.普通定时器
#include "ros/ros.h"
#include<iostream>
using namespace std;
void callback1(const ros::TimerEvent& time_e)
{ROS_INFO("Callback 1 triggered");//cout<<time_e.current_real<<endl;//当前触发的时间,参考上面的解释
}void callback2(const ros::TimerEvent&)
{ROS_INFO("Callback 2 triggered");
}int main(int argc, char **argv)
{ros::init(argc, argv, "timer_test");ros::NodeHandle n;ros::Timer timer1 = n.createTimer(ros::Duration(0.1), callback1);//0.1s运行一次callback1ros::Timer timer2 = n.createTimer(ros::Duration(1.0), callback2);//1s运行一次callback2ros::spin();return 0;
}
2. 回调函数是类成员函数
class Test{void ROSInit(int argc, char **argv);void callback(const ros::TimerEvent& time_event);
}void Test::ROSInit(int argc, char **argv)
{ros::init(argc, argv, "talker");ros::NodeHandle n;ros::Timer timer1 = n.createTimer(ros::Duration(0.1), &Test::callback,this);ros::spin();return 0;
}void Test::callback(const ros::TimerEvent& time_event)
{ROS_INFO("Callback triggered");
}
&Test::callback 获取函数指针,调用入口,this 指针说明这是哪个对象
wiki参考_Timer
ROS教程(七):定时器相关推荐
- MVC5+EF6 入门完整教程七
原文:MVC5+EF6 入门完整教程七 本篇我们针对表格显示添加一些新功能. 前面我们已经讲解过表格显示数据了,现在我们添加三个常用功能: 对显示结果进行排序.过滤.分页. 文章提纲 理论基础/前置准 ...
- ROS教程(3)---静态NAT配置及应用 (
ROS教程(3)---静态NAT配置及应用 ( 转载于:https://blog.51cto.com/80812345/983093
- MongoDB 教程七: MongoDB和PHP结合开发
视频:MongoDB 教程七: MongoDB和PHP结合开发 Linux上安装 MongoDB PHP扩展 在终端上安装 你可以在linux中执行以下命令来安装MongoDB 的 PHP 扩展驱动 ...
- Ubuntu18.04 LTS Melodic ROS 教程:使用URDF创建一个虚拟机器人模型
Ubuntu18.04 LTS Melodic ROS 教程:使用URDF创建一个虚拟机器人模型 Building a Visual Robot Model with URDF from Scratc ...
- c语言第七章函数笔记,我的C语学习笔记-C语言教程(七).doc
我的C语学习笔记- C语言教程(七) C语言教程---第一章: C语言概论 C语言教程---第二章: 数据类型.运算符.表达式 C语言教程---第三章: C语言程序设计初步 C语言教程---第四章: ...
- ROS教程(二):创建工作空间(图文)
ros教程:创建工作空间 文章目录 前言 一.工作空间? 二.创建一个工作空间 1.创建目录 2.编译 前言 使用catkin创建一个工作空间 一.工作空间? 在ROS系统下,我们所有的项目都放在一个 ...
- ROS入门七 机器人建模——URDF
ROS入门七 机器人建模--URDF urdf ufdf介绍 语法 创建机器人URDF模型 创建机器人描述功能包 创建URDF模型 在rviz中显示模型 改进URDF模型 添加物理和碰撞属性 使用xa ...
- STM32CubeMX 实战教程:定时器中断实验(LL 库)
1.资源的获取:关注博主并点赞对应博客,并在文章下留言邮箱索取: 2.资源的类型:获取资源仅限于免费公开文章或粉丝免费专享文章,不包括付费文章: 博主分享不易,请给三连哦(关注 + 点赞 + 收藏 ...
- 汇川小型PLC梯形图编程系列教程(七):数值存储与二进制数据知识详解
原文链接:汇川小型PLC梯形图编程系列教程(七):数值存储与二进制数据知识详解 PLC数据存储原理简介 H123U小型PLC内部采用的是32位的处理器,PLC中的数据处理和电脑中的数据处理基本是一致的 ...
- 静态时序分析简明教程(七)]端口延迟
端口延迟 一.写在前面 1.1 快速导航链接· 二.端口延迟 2.1 输入有效 2.2 输出有效 2.3 set_input_delay 2.3.1 -clock clock_name 2.3.2 - ...
最新文章
- 这份GitHub 2.3k星的ML论文清单拿好,工作用得上
- ORA-00257: archiver error. Connect internal only, until freed 错误的处理方法
- php代码冗余度检查插件,合并ThinkPHP配置文件以消除代码冗余的实现方法
- nik collection滤镜
- 修改C:\WINDOWS\system32\drivers\etc\hosts 文件有什么作用
- hdu3613(扩展KMP)
- 第十一届蓝桥杯java B组第二场-试题A: 门牌制作
- java 链表中倒数第k个结点
- 里面有面和点_鲜虾韭菜水晶饺,皮薄馅大,晶莹剔透,一不小心就变成了面点高手...
- hadoop--HDFS概述
- Python 各种运算符 布尔运算 迭代器
- js高级(类和对象)
- apache禁用不安全的http法_tomcat禁用不安全的HTTP方法
- 75.58 亿美元成交!美国最大规模 5G 毫米波频谱拍卖
- pq 中m函数判断嵌套_PowerQuery 进阶之 M 函数学习
- 雨人网络E卡通免费上网的方法
- 双向可控硅晶片光耦(TLP160J TLP260J TLP525G)基本原理及应用实例
- 51Nod 1007 正整数分组
- 佛罗里达大学计算机科学,佛罗里达大学计算机工程硕士专业排名最全内幕详尽分析...
- ubuntu绘图软件