科研向(仿真验证) ROS 学习笔记三:时间相关API

本文介绍了如何在ROS中获取和设置时刻,如`rospy.Time.now()`和自定义时刻,以及如何使用`rospy.Duration`表示和处理持续时间。此外,还详细讲解了定时器的创建和回调函数doMsg的使用,包括`rospy.Timer`实例和`rospy.spin()`的配合。

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

获取或是设置时刻:
now_t = rospy.Time.now()  # 获取当前时刻
t= rospy.Time(1234)  # 自定义时刻: 1234s 或者使用 t= rospy.Time.from_sec(1234)

rospy.loginfo("时刻:%.2f, %.2f",t.to_sec(),now_t.to_sec())
持续时间:
du = rospy.Duration(5)  # 设置一个时间区间(间隔)

rospy.sleep(du) #休眠函数

before_now = now_t - du  # 时间运算
after_now  = now_t + du 
# now = now + now  # 非法
定时器操作:
"""    
def __init__(self, period, callback, oneshot=False, reset=False):
    @param period: 回调函数的时间间隔
    @type  period: rospy.Duration
    
    @param callback: 回调函数
    @type  callback: function taking rospy.TimerEvent
    
    @param oneshot: 设置为True,就只执行一次,否则循环执行
    @type  oneshot: bool
    
    @param reset: if True, timer is reset when rostime moved backward. [default: False]
    @type  reset: bool
"""
def doMsg(event):  # event: rospy.TimerEvent
    rospy.loginfo("+++++++++++")
    rospy.loginfo("当前时刻:%s",str(event.current_real))

rospy.Timer(rospy.Duration(1),doMsg)
rospy.spin()  # 有回调函数别忘记这个 ~

参考资料如下ROS理论与实践

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值