这个问题涉及ROS2。
在ROS1中,当您有一个发布者时,通常会放置一个while循环来周期性地执行节点发布。相反,在ROS2中,您可以使用create_wall_timer创建一个计时器,以便调用一个定期发布消息的回调函数。
我的问题是(对任何在ROS2方面有经验的人),我能创建这个计时器并将它用于与发布无关的其他任务吗?换句话说,像普通计时器一样使用?我需要定期地做一些事情,并且我打算实现一个定时器,但是由于这个定时器已经构建在ROS2系统中,所以我想使用它来完成我想要的处理。这是可能的还是明智的?
另外,我可以使用或创建多个这些墙定时器吗?
发布于 2020-07-11 16:28:02
墙计时器每次运行时都调用一个称为“回调函数”的函数。你自己定义这个函数,这意味着你可以在它里面做你喜欢做的任何事情。
例如:在构造函数中,您实例化了墙定时器: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/
关于多重性,是的,你可以想做多少就做多少。每次都把它放进一个新变量。
https://stackoverflow.com/questions/61786399
复制相似问题