我正在使用Python中的粒子过滤器来定位机器人。简短的代码在这里:
mx = my = mh = -10000
m_confident = False
loop = asyncio.get_event_loop()
while not m_confident:
(mx, my, mh, m_confident) = await update_robot(robot, camera_settings)
基本上,mx
,my
和mh
通过在异步函数(update_robot
)中运行一些代码来收敛到机器人的实际位置。但是,while循环不会等待函数返回,而是在循环的另一个迭代中再次调用该函数。这会弄乱mx
,my
和mh
的值。我想知道是否有必要让while循环在继续之前等待函数返回。
我尝试使用update_robot
将asyncio.run_coroutine_threadsafe
添加到当前异步函数的调用中,但是没有成功。
有人遇到类似问题并且知道如何解决吗?