首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用墙计时器进行发布以外的其他工作

使用墙计时器进行发布以外的其他工作
EN

Stack Overflow用户
提问于 2020-05-13 23:06:30
回答 1查看 2.1K关注 0票数 0

这个问题涉及ROS2。

在ROS1中,当您有一个发布者时,通常会放置一个while循环来周期性地执行节点发布。相反,在ROS2中,您可以使用create_wall_timer创建一个计时器,以便调用一个定期发布消息的回调函数。

我的问题是(对任何在ROS2方面有经验的人),我能创建这个计时器并将它用于与发布无关的其他任务吗?换句话说,像普通计时器一样使用?我需要定期地做一些事情,并且我打算实现一个定时器,但是由于这个定时器已经构建在ROS2系统中,所以我想使用它来完成我想要的处理。这是可能的还是明智的?

另外,我可以使用或创建多个这些墙定时器吗?

EN

回答 1

Stack Overflow用户

发布于 2020-07-11 16:28:02

墙计时器每次运行时都调用一个称为“回调函数”的函数。你自己定义这个函数,这意味着你可以在它里面做你喜欢做的任何事情。

例如:在构造函数中,您实例化了墙定时器:auto timer_ = this->create_wall_timer( 500ms, std::bind(&ClassName::timer_callback, this));,然后定义了一个函数,以便它调用

代码语言:javascript
复制
void timer_callback()
{
    //Whatever code you would like to run every time the timer goes
}

如果您遵循链接教程,您可以使用该代码。来源:https://index.ros.org/doc/ros2/Tutorials/Writing-A-Simple-Cpp-Publisher-And-Subscriber/

关于多重性,是的,你可以想做多少就做多少。每次都把它放进一个新变量。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61786399

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档