栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

十二、ROS常用API汇总(Python)

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

十二、ROS常用API汇总(Python)

文章目录
  • 1、rospy.init_node(name, argv, anonymous,...)
  • 2、pub = rospy.Publisher("name",data_class,latch=, queue_size=)
  • 3、rospy.spin()
  • 4、时间函数
  • 5、节点相关函数
  • 6、日志函数

1、rospy.init_node(name, argv, anonymous,…)
  • 作用:
    节点初始化
  • 参数:
    • name: 节点名,具有唯一性
    • argv: 默认为Node,封装节点调用时的参数
    • anonymous: 默认为False,当设置为True时,可以通过添加随机数的方式,来解决重名问题
  • 使用:
    同C++
  • 代码实现:
    rospy.init_node("turtle_control_p",anonymous=True)#解决了重名问题
    
2、pub = rospy.Publisher(“name”,data_class,latch=, queue_size=)
  • 作用:
    创建发布者对象
  • 参数:
    • name: 话题名称
    • data_class: 发布的数据类型
    • latch: 默认为False,当设置为True时,发布方会保留最后一条消息,当有新的订阅方订阅时,发送给订阅方,且只发送一次
  • 使用:
    同C++
3、rospy.spin()
  • 作用:
    用于处理回调函数
  • 注意:
    只有spin函数,没有spinOnce()函数
4、时间函数
#! /usr/bin/env python
import rospy

def doMsg(event):
    rospy.loginfo("调用回调函数的时刻:%.2f",event.current_real.to_sec())
if __name__ == "__main__":

    rospy.init_node("hello_time_p")

    #获取时刻
    begin = rospy.Time.now()#获取当前时刻,返回一个时间对象
    rospy.loginfo("当前时刻:%.2f",begin.to_sec())#浮点数
    rospy.loginfo("当前时刻:%d",begin.secs)#整数

    #设置指定时刻
    t1 = rospy.Time(12.3)#定义一个时间对象
    t2 = rospy.Time(12,234567)#定义一个时间对象,秒和毫秒拼接
    rospy.loginfo("t1=%.2f",t1.to_sec())
    rospy.loginfo("t2=%.2f",t2.to_sec())

    #从某个时刻获取时间对象
    t3 = rospy.Time.from_sec(22.4444)
    rospy.loginfo("t3=%.2f",t3.to_sec())

    #持续时间
    rospy.loginfo("休眠前——————————————————————")
    du1 = rospy.Duration(4)#创建一个持续时间对象
    rospy.sleep(du1)#休眠
    rospy.loginfo("休眠后——————————————————————")

    #持续时间与时刻的运算
    du2 = rospy.Duration(5)
    t4 = begin + du2
    rospy.loginfo("结束时刻:%.2f",t4.to_sec())

    #持续时间相加减
    du_sum = du1 + du2
    rospy.loginfo("持续时间相加:%.2f",du_sum.to_sec())

    #时刻之间可以相加,不可以相减

    #创建定时器
    '''
        @param period: desired period between callbacks
        @type  period: rospy.Duration
        @param callback: callback to be called
        @type  callback: function taking rospy.TimerEvent
        @param oneshot: if True, fire only once, otherwise fire continuously until shutdown is called [default: False]
        @type  oneshot: bool
    '''
    timer = rospy.Timer(rospy.Duration(2),doMsg,True)#只执行一次
    
    
    #设置运行频率
    rate = rospy.Rate(1)
    while not rospy.is_shutdown():
        rate.sleep()
        rospy.loginfo("设置运行频率")
5、节点相关函数
  • rospy.is_shutdown():
    • 作用: 判断节点是否关闭
    • 返回结果: bool值,关闭:True; 未关闭:False
  • rospy.on_shutdown(callback):
    • 作用: 关闭节点的时候,执行回调函数
    • callback: 回调函数
  • rospy.signal_shutdown(“节点已关闭”):
    • 作用: 关闭节点,并输出信息
6、日志函数
rospy.logdebug("hello,debug")  #不会输出
rospy.loginfo("hello,info")  #默认白色字体
rospy.logwarn("hello,warn")  #默认黄色字体
rospy.logerr("hello,error")  #默认红色字体
rospy.logfatal("hello,fatal") #默认红色字体
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/976668.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号