常规API

阻塞线程spin

可以阻塞当前的线程。

rospy.spin()

频率操作Rate

可以按照一定的频率操作循环执行。

rate = rospy.Rate(10)
while True:
    rate.sleep()

Tip

rate中的参数10,代表在while循环中,每秒钟运行10次。

节点状态判断

  • 可以判断当前节点是否停止

  • 可以按照一定的频率操作循环执行。

rospy.is_shutdown()

Python完整示例

#!/usr/bin/env python
# coding:utf-8

import rospy

if __name__ == '__main__':
    node_name = "hello_py"
    rospy.init_node(node_name)

    rate = rospy.Rate(10)
    while not rospy.is_shutdown():
        print "hello ros python node"
        rate.sleep()

    # 阻塞线程
    rospy.spin()