2016-05-10 8 views
0

Mit DKPy-SITL und unserem APM2 Bord, die wait_ready Methode verursacht unser Programm zum Herunterladen einer API Ausnahme aufgrund der Befehlsliste (Waypoints) zu lange dauern beide erhöhen zum Download bereit. In der Vergangenheit (mit Droneapi) war das kein Problem für mich. Einige Wegpunkte werden heruntergeladen, aber der Prozess dauert ungefähr 10 Sekunden für jeden einzelnen, was mich glauben lässt, dass etwas Seltsames vor sich geht.CommandSequence zu lange

Gibt es Möglichkeiten, den Download-Prozess zu beschleunigen? Ich habe den entsprechenden Code unten veröffentlicht.

self.vehicle = connect(connection_string, baud=baud_rate, 
      status_printer=dronekit_printer, wait_ready=True) 

und später in einem anderen asynchronen Verfahren

def commands(self): 
    commands = self.vehicle.commands 
    commands.download() 
    commands.wait_ready() 
    return commands 

Der Fehler tritt auf commands.wait_ready(). Es hat ein schnellerer Weg, um Befehle zum Download als es auf einem i7 4790k Prozessor für mehr als 30 Sekunden sitzen, vor allem, da ich den gleichen Code aus einem langsameren Computer in der Vergangenheit mit droneapi habe laufen. Wenn es sein muss, kann ich auch ein Problem mit dem Drohnenkit GitHub ansprechen.

Antwort

1

hatte ich das gleiche Problem. Der erste Download-Aufruf läuft immer gut (0 Befehle). Wenn Sie einige Befehle hochgeladen haben, die beim zweiten Versuch fehlgeschlagen sind, können Sie sie nicht herunterladen (Ausnahme 'Timeout'). Was ich getan habe, um dieses Problem zu lösen, war das Löschen ohne Download nach dem ersten Mal. Etwas wie folgt aus:

  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 auf der Strecke lassen hat und nicht geben ihm die Vollzeit-Programmierer es braucht. Aus diesem Grund haben wir uns von unseren eigenen Mavproxy-Modulen getrennt, mit denen wir ohne unnötigen Overhead von Dronekit arbeiten können. – Indeed

+0

stimme ich zu. Bitte markieren Sie die Antwort als Lösung, wenn Sie Ihr Problem gelöst haben. Danke – epinal

+0

Das Problem ist, dass der erste Download in der Regel nicht Null-Befehle ist, so dass es nicht einmal eine Lösung ist. Ich hatte dies in der Hoffnung geschrieben, dass sie die Aufmerksamkeit des Entwicklers anziehen würden, aber 3DR hätte sie nicht einmal Vollzeitabrechnungs hat auf mehr so ​​wer weiß, ob sie selbst es sah. – Indeed