ros2定时器create_timer与create_wall_timer的使用

博主正在学习ROS2的C++库rclcpp,尝试创建定时器来周期性处理数据。他们发现相关资源稀缺,主要依赖官方API文档。目前,他们使用`create_wall_timer`函数创建了一个每秒触发一次的定时器,并在回调中实现了简单的输出。代码展示了如何在Node继承类中设置和触发定时器。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近想写一个定时器,外面收数据,在定时器里面定时处理数据。
在网上找的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触发一次。

然后定时输出的结果就是这样的了:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

计算机视觉与OpenCV

客官,,打赏是什么意思?

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值