Python:在执行其他函数时如何保持循环在后台运行

2024-09-27 20:18:57 发布

您现在位置:Python中文网/ 问答频道 /正文

我正试图根据实时传感器数据控制一个机器人。我构建了一个接收实时传感器样本的环路,当环路接收到一个新样本时,计算与前一个环路的差值。如果差值大于阈值,则调用函数使机器人移动2秒。你知道吗

我的问题是,现在在机器人移动过程中,整个循环被暂停(调用机器人控制API方法.wait_for_completed()),当循环重新启动时,恢复的传感器数据样本不是实时数据,而是机器人移动过程中产生的数据。我想要的是在机器人移动时保持主循环运行,这样机器人就可以随时使用实时数据来判断是移动,还是在机器人运行时丢弃数据。你知道吗

伪代码就像

def move():
    robot.move().wait_for_completed() # usually takes 2 seconds

sample = 0
lastsample = 0

def main():
    while True:
         sample = sensor.message() # the sample is a float number
         diff = sample - lastsample
         lastsample = sample
         if diff > 300:
              move()

main()

我正在搜索异步和多进程。但我不确定我的方向是否正确。
我不确定我是否描述清楚我的问题,如果没有,请问。你知道吗


Tags: 数据sampleformovemain过程def机器人
2条回答

必须在代码中导入线程模块,然后必须将其传递到变量中并定义

import thread as th 

是的,您的方向是对的,但是我认为使用asyncio库比使用多进程库更好。你知道吗

您可以使用greenlet/tornado或任何其他库。你知道吗

相关问题 更多 >

    热门问题