ROS学习之 cpp定时器
来源:互联网 发布:封面ps软件 编辑:程序博客网 时间:2024/05/16 17:14
wiki链接: http://wiki.ros.org/roscpp/Overview/Timers
http://wiki.ros.org/roscpp_tutorials/Tutorials/Timers
关于定时器,在ROS学习之cpp教程(http://blog.csdn.net/shiyue0010/article/details/51925666)的第六部分已经学习过了,这里详细补充几点.
1.创建一个定时器
ros::NodeHandle::createTimer()方法创建定时器对象.createTimer()方法有很多重载方法,通常的原型如下:
ros::Timer ros::NodeHandle::createTimer(ros::Duration period, <callback>, bool oneshot = false);
参数说明:
period:定义了定时器回调函数调用间隔,ros::Duration(0.1)定义了一个匿名类作为period参数,表示每隔0.1s调用一次定时器回调函数
<callback>:定时器回调函数,可以是一般函数,类成员方法,仿函数对象等等
oneshot:确定该定时器是一次性定时还是持续调用
2.回调函数原型
void callback(const ros::TimerEvent&);参数 ros::TimerEvent时间事件结构体
ros::TimerEvent
ros::Time last_expected
上次回调理想发生时间
ros::Time last_real
上次回调实际发生时间
ros::Time current_expected
本次回调理想发生时间
ros::Time current_real
本次回调实际发生时间
ros::WallTime profile.last_duration
上次回调持续时间
3.回调函数的类型
与消息,服务回调函数类似,定时器回调函数也有三种类型,这里就不再赘述了1) 一般函数
2) 类成员方法
3) 仿函数对象
4.壁钟定时器
壁钟时间:相对于cpu时间,是指实际运行程序流逝的时间,包含了在执行程序时,实际发生的状况,比如此时有很多其它程序或者I/O操作等.cpu时间:是指运行程序指令所实际消耗的cpu的时间,不包含其它程序占用cpu时导致实际耗时增加的情况
ros::Timer在可以获得ROS Clock的情况下会使用它(计算流逝时间),而通常,它只会运行在时间模拟情况,这导致定时的不准确.
如果希望定时器一直使用壁钟时间,ros提供了ros::WallTimer,它与ros::Timer使用方法相同,仅仅把Timer改为WallTimer而已
0 0
- ROS学习之 cpp定时器
- ROS学习之cpp教程
- ROS学习之 cpp消息
- ROS学习之 cpp服务
- ROS学习之 cpp时间
- ROS学习之 cpp参数服务器
- ROS学习之 cpp节点句柄
- ROS学习之 cpp日志记录
- ROS学习之cpp节点的启动与关闭
- ROS学习之 cpp消息发布者和消息订阅者
- ROS学习之 cpp回调函数和轮转(spin)
- ROS学习之 cpp名字和节点信息
- ROS学习 cpp参数服务器
- Ros学习之---URDF
- ROS学习之 roslaunch
- ROS学习之pluginlib
- ROS学习之路
- ROS Navigation 学习之Clear_Costmap_Recovery
- cocosapods pod install 报错
- Django 1.6.5模板搭建
- jquery.cookie插件的方法使用注意点
- Bug系列------关于进程信号传递的competion
- 欢迎使用CSDN-markdown编辑器
- ROS学习之 cpp定时器
- SDL2.0与opengl的混合使用,绘图和纹理的加载。
- DBA learning--1
- <转>Cocos2d-x下Lua调用自定义C++类和函数的最佳实践
- 亚马逊FBA是什么?——跨海汇
- 包含min函数的栈
- NYOJ216
- Android 6.0 Changes
- session序列化错误