对于DKPy-SITL和我们的APM2板,wait_ready方法导致我们的程序引发API异常,因为命令列表(航路点)下载时间太长。在过去(使用droneapi)这对我来说不是问题。正在下载一些航点,但每个航点大约需要10秒,这让我相信一些奇怪的事情正在发生。
有没有办法加快下载过程?我在下面发布了相关代码。
self.vehicle = connect(connection_string, baud=baud_rate,
status_printer=dronekit_printer, wait_ready=True)
以及后来的另一个异步方法
def commands(self):
commands = self.vehicle.commands
commands.download()
commands.wait_ready()
return commands
command.wait_ready()发生错误。在i7 4790k处理器上放置命令比在那里停留超过30秒更快,特别是因为我在过去用droneapi从较慢的计算机上运行相同的代码。如果需要,我也可以在dronekit github上提出一个问题。
答案 0 :(得分:1)
我有同样的问题。第一次下载调用总是顺利(0命令)。在您第二次尝试下载命令后上传了一些命令失败('超时'例外)。 我为解决这个问题所做的是第一次在没有下载的情况下调用清除。 像这样:
cmds = vehicle.commands
if not cmds.count > 0:
# Download
cmds.download()
# Wait until download is finished
cmds.wait_ready()
cmds.clear()
# Add / Modify the commands here and then upload them