0

对于 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

错误发生在 commands.wait_ready() 上。必须有一种更快的方式来下载命令,而不是在 i7 4790k 处理器上坐在那里超过 30 秒,特别是因为我过去曾在较慢的计算机上使用无人机 API 运行相同的代码。如果需要,我也可以在dronekit github 上提出问题。

4

1 回答 1

1

我遇到过同样的问题。第一次下载调用总是很顺利(0 个命令)。一旦您上传了一些命令,您第二次尝试下载它就会失败(“超时”异常)。我为解决这个问题所做的就是在第一次之后不下载就调用 clear 。像这样的东西:

            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
于 2016-09-27T18:46:47.363 回答