最近想写一个定时器,外面收数据,在定时器里面定时处理数据。
在网上找的ros2的资料真是很少,除了官方的API文档,其他的资料好少。
官方API链接:
https://docs.ros2.org/foxy/api/rclcpp/namespacerclcpp.html#affb29d356bf00583b0d705b264b3b0ae
我用的是C++版本,所以看的资料是rclcpp,如果有大佬有别的好的资料网站,请留言告诉我,我也学习学习,这个是最近有这个需求,所以在学习这个。
看定时器的话就create_timer与create_wall_timer两个函数可以使用的。
API的定义可以看这里:
create_wall_timer定义是这个样子的:两个函数应该功能是一样的,我还没细细研究,但是使用的是下面的一个。
要是研究到了差异,后面再写了。
正式代码就是下面这一点:
auto timer_callback =
[this]() -> void
{
std::cout << "-------timer callback!-----------" << std::endl;
// do something else;
};
rclcpp::TimerBase::SharedPtr timer;
timer = this->create_wall_timer(1s, timer_callback);
this类继承的是Node。
定时1s触发一次。
然后定时输出的结果就是这样的了: