参考网址:

(128条消息) ROS学习八、ros中的时间Time,Duration,Timer和Rate(2)_RuiH.AI的博客-CSDN博客_ros时间

例程

Time和Duration的数据类型相同:

1
2
int32 sec
int32 nsec

获取当前时间:

1
2
ros::Time::init();
ros::Time start = ros::Time::now();

转化为ms/s

1
2
3
4
// 转为ms
double t_ms = t.toNSec();
// 转为s
double t_s = t.toSec();

时间间隔:

1
2
3
4
ros::Duration + ros::Duration = ros::Duration
ros::Duration - ros::Duration = ros::Duration
ros::Time + ros::Duration = ros::Time
ros::Time - ros::Time = ros::Duration

sleep:

1
2
// 使用方法:
ros::Duration(2.5).sleep();

ros::rate循环

1
2
3
4
5
6
7
// 10Hz
ros::Rate r(10)
while(ros::ok())
{
...
r.sleep();
}