当获取 传感器 数据的时候, 需要按照一定的频率去获取, 这就涉及到了 如何去设置频率呢
频率是单位时间内完成周期性变化的次数,是描述周期运动频繁程度的量,常用符号f或ν表示,单位为秒分之一,符号为s。
1s = 1000ms
10Hz means you need to read the data every 100ms: 1s 内完成 10次, 1次为100ms
Ros Rate
# 设置读取数据为10Hz, 即100ms读取一次数据, 但是真正读取数据所花费的时间可能是17ms,
# 那么剩下的83ms就需要去等待(sleep), 等待下一次的访问数据
ROS Rate allows you to do that without any effort.
You just create a ROS Rate with a given frequency in your code,
and use the sleep() functionality to wait until the next iteration
#include <ros/ros.h>
int main (int argc, char **argv)
{
ros::init(argc, argv, "roscpp_rate_test");
ros::NodeHandle nh;
ros::Rate rate(5); // ROS Rate at 5Hz
while (ros::ok()) {
ROS_INFO("Hello");
rate.sleep();
}
}
如果上面运行的时间超时了会如何? 会接着按照上一次的执行?