我正试图根据实时传感器数据控制一个机器人。我构建了一个接收实时传感器样本的环路,当环路接收到一个新样本时,计算与前一个环路的差值。如果差值大于阈值,则调用函数使机器人移动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()
我正在搜索异步和多进程。但我不确定我的方向是否正确。
我不确定我是否描述清楚我的问题,如果没有,请问。你知道吗
必须在代码中导入线程模块,然后必须将其传递到变量中并定义
是的,您的方向是对的,但是我认为使用asyncio库比使用多进程库更好。你知道吗
您可以使用greenlet/tornado或任何其他库。你知道吗
相关问题 更多 >
编程相关推荐