0

这个问题涉及ROS2。

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

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

另外,我可以使用或创建多个这些挂钟吗?

4

1 回答 1

0

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

例如:在您的构造函数中,您实例化挂钟:auto timer_ = this->create_wall_timer( 500ms, std::bind(&ClassName::timer_callback, this)); 然后定义一个函数供它调用

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/

关于倍数,是的,您可以根据需要制作任意数量。每次只需将其放入一个新变量中即可。

于 2020-07-11T16:28:02.043 回答