Wie kann ich Echtzeit-Sonardaten von meinem Arducopter in Arduino bearbeiten?

8

Ich habe ein APM 3DR Quad mit einem 3DR-Radiotelemetrie-Kit. Ich möchte Echtzeit-Sonardaten an meinen Laptop (unter Windows 7) senden, um sie in einer zusätzlichen Arduino-Skizze zu bearbeiten.

Der Sonarsensor ist an einen Analog-In-Kanal meines Arduino angeschlossen. Diese Daten werden für Höhenberechnungen verarbeitet, und ich möchte diese Höhendaten mithilfe eines Telemetrie-Kits (2 3DR-Funkgeräte: 1 am Quadcopter und 1 am Computer) an eine Art Bodenstation auf meinem Computer senden.

Ich bin mir nicht ganz sicher, wie ich diese Aufgabe erledigen soll. Gibt es eine Möglichkeit, den Quellcode (GCS.h oder GCS_Mavlink.pde) in Verbindung mit der Bodenstation Mission Planner Mav 1.0 zu ändern, um dies zu tun? Oder müsste ich ein Python-Modul schreiben, um dies zu erreichen?

user1702
quelle
Hallo David, willkommen in der Robotik . Wir sind hier im Allgemeinen nett und hilfsbereit, daher habe ich die "Danke" -Linie aus Ihrer Frage gestrichen - es ist verstanden :). Eine Frage, die ich habe, ist, ob Sie Sonar sagen, wenn Sie "Radiotelemetrie" meinen.
Ian
Nein, ich habe einen Sonarsensor, der an einen Analog-In-Kanal meines Arduino angeschlossen ist. Diese Daten werden für Höhenberechnungen verarbeitet, und ich möchte diese Höhe mithilfe eines Telemetrie-Kits (2 3DR-Funkgeräte: 1 auf dem Quadcopter und 1 auf meinem Computer) an eine Art Bodenstation auf meinem Computer senden
user1702
Hallo Benutzer1702, Kommentare sollen helfen, Fragen und Antworten besser zu machen. Es ist daher besser, Informationen hinzuzufügen, die in Kommentaren angefordert werden, indem Sie Ihre Frage bearbeiten. Auf diese Weise können die Kommentare aufgeräumt (gelöscht) werden und lenken die Personen nicht mehr von der Frage ab.
Mark Booth
Möchten Sie die Sonardaten auf Ihrem Laptop verarbeiten oder über den Laptop an ein anderes Arduino senden?
John Wiseman
John, ich möchte die Daten auf meinem Laptop verarbeiten. Ich habe versucht, mavproxy zum Laufen zu bringen, bin aber auf einige Probleme gestoßen. Hoffentlich kann ich ein Python-Modul integrieren, um dies zu unterstützen.
user1702

Antworten:

2

Das Einrichten der Software zum Extrahieren neuer benutzerdefinierter Sensordaten über MAVLink scheint schwieriger zu sein, als es sein sollte.

Schritt eins besteht darin, den Quadcopter die Daten senden zu lassen.

  • Zunächst müssen Sie einen neuen MAVLink-Nachrichtentyp mithilfe von XML in mavlink / message_definitions definieren. Sie können einfach eine neue nicht verwendete Ganzzahl für die message_id erstellen.
  • Zweitens generieren Sie die Funktionen zum Packen / Entpacken von Nachrichten mit dem MAVLink-Generator.
  • Anschließend müssen Sie ArduCopter / GCS_Mavlink.pde in data_stream_send Code hinzufügen, um Ihre Nachricht zu erstellen und zu senden. Sie müssen hier ein wenig vorsichtig sein, da sich die Flugdynamik verschlechtert, wenn Ihre Sensorwerte die Hauptschleife für mehr als ein paar Millisekunden anhalten, insbesondere für ein kleines Quad oder das Fliegen in Innenräumen (darum geht es im Geschäft "gcs_out_of_time" ). Ich würde dem STREAM_EXTRA3-Trigger einen neuen Sensor hinzufügen.
  • Erstellen Sie die neue Flugfirmware neu und laden Sie sie hoch.

Die andere Hälfte des Projekts befindet sich auf dem PC, auf dem Sie die Bodenstationssoftware ändern müssen, um Ihre MAVLink-Pakete aus dem Telemetriestream zu lesen . Ich habe keine Ahnung, wo Sie anfangen würden, dies mit Mission Planner zu tun, was wie eine wirklich ausgefeilte Software erscheint. Glücklicherweise wird die rohe Radiotelemetrie im "tlog" abgelegt , sodass Sie möglicherweise ein völlig separates Programm erstellen können, das nach Ihrem neuen MAVLink-Paket aus dem tlog sucht. (Sie möchten dafür sicherlich keine Arduino-Skizze, da eine Skizze auf dem Arduino und nicht auf dem PC ausgeführt wird.)

Wenn Ihnen das einschüchternd vorkommt, sind Sie nicht allein! Für unser Indoor-Quad haben wir schließlich unser eigenes Funkkommunikationsprotokoll und eine "Bodenstation" erstellt, da wir weder GPS noch Wegpunkte oder andere MAVLink-Funktionen verwenden konnten und es uns nicht wert war, mit der Komplexität von MAVLink umzugehen.

Orion Lawlor
quelle