我有一个机器人项目,基本上是一个路径跟踪问题。在PC中,参考生成算法在Python3.65中实现。该算法获取GPS数据,并使用这些不断更新的数据来计算机器人汽车的参考路径。当然,该算法会在True:....框架中运行。仅当采样频率非常高(例如1000Hz(0.001s))时,该算法才能很好地工作。但是,问题在于,在计算参考路径之后,需要通过Serial.write()将参考信息逐字节写入PC的串行端口。这个serial.write()函数在True:循环中仍然是全局的for循环。而且此写入过程非常慢(16个字节超过0.01s)。如果for循环包含在while True:框架中,则类似于:
while True:
Data = Ref_generation()
Bytes_Full = Float_2_Bytes_List(Data)
for ele in Bytes_Full:
Serial.write(ele) # VERY SLOW!!!
sleep(0.001)
然后,由于周期远大于0.001s,因此无法正确计算数据。
简而言之,如何将快速计算算法与慢速serial.wtite()分开?
有人建议使用所谓的异步Pyserial。但是对我来说很难理解。特别是我不需要它的功能。我所需要的只是类似于标准serial.write()函数的东西。
有人可以帮忙吗?预先感谢。