2016-05-10 3 views
0

С помощью DKPy-SITL и нашей платы APM2 метод wait_ready заставляет нашу программу поднимать исключение API из-за слишком большого количества загрузки списка команд (путевых точек). В прошлом (с droneapi) это не было проблемой для меня. Некоторые путевые точки загружаются, но для каждого процесса требуется около 10 секунд, что заставляет меня думать, что происходит что-то странное.CommandSequence слишком долго загружается

Есть ли способы ускорить процесс загрузки? Я разместил соответствующий код ниже.

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(). Должен быть более быстрый способ загружать команды, чем сидеть там более 30 секунд на процессоре i7 4790k, тем более, что в прошлом я работал с тем же кодом с более медленным компьютером с помощью droneapi. Если понадобится, я могу поднять вопрос и о дроине.

ответ

1

У меня была та же проблема. Первый раз загрузка всегда идет хорошо (0 команд). После того, как вы загрузили некоторые команды во второй раз, когда вы попытаетесь загрузить его, вы не сможете (исключение «Timeout»). Что я сделал, чтобы решить это, явился без загрузки после первого раза. Что-то вроде этого:

  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 
+0

3DR дал Dronekit падения на обочине, а не дать ему полный рабочий день программиста он нуждается. В результате мы отошли от него, чтобы создать наши собственные модули Mavproxy, которые позволяют нам работать без лишних накладных расходов, предлагаемых Dronekit. – Indeed

+0

Согласен. Пожалуйста, отметьте ответ как решение, если оно решит вашу проблему. Спасибо – epinal

+0

Проблема в том, что первоначальная загрузка обычно не является нулевыми командами, поэтому это даже не решение. Я опубликовал это в надежде, что это привлечет внимание разработчиков, но у 3DR даже не было их на полный рабочий день, поэтому кто знает, видели ли они их даже. – Indeed

Смежные вопросы