ros Tim学习笔记

最近在学习的过程中用到ROS Time的机会比较多,借此机会做个笔记.

参考(1):创客制造

(1)使用ros::Time::Now获取当前时间,计算程序/算法运行时间

startTime=ros::Time::Now()  //程序开始

{程序算法中....}

endTime=ros::Time::Now();
double process_time=(endTime-starTime).toSec();

toSec()成员函数讲运行时间转换为单位秒.

(2)使用ros::Duration设置一段时间

ros::Duration time(0.5);  //一段0.5秒的时间

(3)使用Timer代替ros::rate

通常情况下我们可以采用ros::rate设置一定的频率来循环(简单的发布或者订阅),用法如下;

ros::Rate loop_rate(10); // 10 hz
while (ros::ok())
{
  ... do some work ...
  loop_rate.sleep();
}

以上程序表示以10hz的频率循环执行

wiki上建议用timer(定时器)来代替ros::rate,简单用法用下:

a.创建定时器:

ros::Timer timer = n.createTimer(ros::Duration(0.1), timerCallback);
ros::Timer timer2 = n.createTimer(ros::Duration(1.0), callback2);

b.在回调函数中处理:

void timerCallback(const ros::TimerEvent& e);
void callback2(const ros::TimerEvent&)

我们就可以在回调函数中以一定频率进行发布或者订阅.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值