【发布时间】:2016-06-14 10:24:22
【问题描述】:
目前我正在用 python 编写一个机器人操作系统 (ros) 节点。我想创建一个 while 循环,它一方面接受用户输入,但如果没有用户输入可用,则能够继续。
以下 sn-p 的想法是,此 python 脚本始终提供“开始”或“停止”。另一个节点正在监听什么字符串被发布。用户应该能够在运行时输入 0 或 1 来切换标志。
这是我的python代码:
def main():
pub = rospy.Publisher('/start_stop', String, queue_size=10)
rospy.init_node('start_stop', anonymous = True);
rate=rospy.Rate(10) # 10hz
pubStr = "Start"
while not rospy.is_shutdown():
try:
input = raw_input()
if input == "0":
pubStr = "Stop"
elif input == "1":
pubStr = "Start"
except:
rospy.sleep(0.1)
rospy.loginfo(pubStr)
pub.publish(pubStr)
rate.sleep()
if __name__ == '__main__':
main();
【问题讨论】:
-
所以你正在寻找一个非阻塞输入函数,对吗?
-
是的,我想我正在寻找完成这项工作的方法。