c++代码ROS的定时器功能,设置回调函数的执行频率为一秒一次
时间: 2024-03-20 16:44:39 浏览: 226
在ROS中,可以使用ros::Timer来实现定时器功能。下面是一个示例代码,设置回调函数的执行频率为一秒一次:
```
#include <ros/ros.h>
void timerCallback(const ros::TimerEvent&)
{
// 回调函数的具体实现
ROS_INFO("Timer callback triggered");
}
int main(int argc, char** argv)
{
// 初始化ROS节点
ros::init(argc, argv, "timer_test");
// 创建NodeHandle
ros::NodeHandle nh;
// 创建定时器
ros::Timer timer = nh.createTimer(ros::Duration(1.0), timerCallback);
// 循环执行
ros::spin();
return 0;
}
```
在上面的代码中,我们首先创建了一个名为timer_test的ROS节点,并创建了一个NodeHandle。然后,我们使用NodeHandle的createTimer函数创建了一个定时器,设置了回调函数timerCallback,并将定时器的执行频率设置为1秒。最后,我们使用ros::spin()函数来循环执行ROS节点。
在回调函数timerCallback中,我们可以执行我们希望在定时器触发时执行的操作。在本例中,我们只是简单地输出一条信息,但实际上可以执行任何操作。
阅读全文