Bachelorprojekt mit einem DJI F550 und Raspberry PI reciever inklusive Steuerungsapp

    ACHTUNG: Mit der neuen EU Drohnenverordnung muß sich jeder Drohnen-Betreiber beim Luftfahrtbundesamt registrieren und seine Drohne mit der e-ID kennzeichnen! Ein passendes Kennzeichen bekommst Du hier im Shop. Außerdem benötigst Du eine Drohnen-Versicherung. Hier geht es zu unserem Drohnen-Versicherungsvergleich. Informationen zum neuen EU Drohnenführerschein gibt es hier.

    • Bachelorprojekt mit einem DJI F550 und Raspberry PI reciever inklusive Steuerungsapp

      Hallo an alle hier im Forum!!

      Ich bin neu hier und vor allem neu in der Multicopterwelt weswegen ich dieses Thema hier beginne.

      Zu mir: Ich bin Student im bereich Elektro- u. Informationstechnik und beschäftige mich zur Zeit mit dem Thema Multikoptersteuerung.
      Für meine Bachelorarbeit will ich die übliche Fernbedienung für den F550 mit NAZA M V2 Controller durch einen direkt an den Controller angeschlossenen Raspberry PI ersetzen, der über ein LTE Stick die Steuerungsdaten von einer eigenen Androidapp bekommt.
      Soweit wie ich jetzt im Thema bin, Habe ich es so verstanden (bitte berichtigen falls nicht richtig :) ), dass der Controller reine PWM-Signale bekommt, die ich über die GPIO-Ausgänge des PI Simulieren kann. Somit kann ich Steuern. Ich weiß dass ich gesetzlich nur auf Sicht fliegen darf by the way;) Von den Latenzzeiten her passt es, dass die Daten vom Phone über den Server an den PI geschickt werden.

      Nun wollte ich somit mal allgemein in die Runde fragen, ob schon jemand hier ähnliche Erfahrungen gemacht hat in puncto:
      1. Raspberry PI als Reciever, bzw geht das Überhaupt?,
      2. Eignung des F550 bezüglich der beschriebenen Anwendung( vor allem der Fail Safe Mode ist mir noch etwas schleierhaft),
      3. Rechtliche Einschränkungen bzw. zu beachtende Rechtsvorschriften.
      4. Was kann ich alles am CAN Output des V2 auslesen bzw. auswerten? Kann ich da auch Steuern??
      Wenn mir der eine oder andere Helfen könnte wäre ich sehr dankbar. Desweiteren halte ich euch auch über mein Projekt auf dem laufenden :D

      LG Nick
    • Hallo Nick,

      zu meinem Verständnis:

      Du möchtest nur das Empfangsmodul ersetzen?
      Die Steuerung belassen?

      <EDIT>
      zu 1. warum nicht. Die Ausgabesignale müssen passen..
      zu 2. auch das sollte OK sein. Platz für die Montage von Modulen hast Du dort genug. Failsafe ist allerdings schon ein Bestandteil der Steuerung und nicht F550 (das ist erst mal nur der Rahmen /Motor) intern. Und ein zusätzlicher Bestandteil der EmpfängerSoftware. Beides zusammen ergibt erst die komplette Failsafe Funktionalität.

      zu 3. ist halt Modellbau.. Sichtflug usw. Was allerdings da mit deinem Funkt / Steuerung ist (Ich vermute Du verwendest entsprechend zugelassene Modems / Modemmodule).

      zu 4. da ist das halt Naza... ein recht geschlossenes System. Vielleicht ist es da besser eine andere "offene" Flugsteuerung für Deine Zwecke zu verwenden. Da dort auch die Quellen offen sind. (Naze32 usw. da gibt es sicher weitere Beispiele)
      </EDIT>
      DJI Mavic Pro | DJI Goggles | DJI F550 | Naza M V1.0 | iOSD Mini | TAROT Gopro 3 Achs Gimbal | GoPro Hero3 Black | Turnigy 9XR Pro |

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von digo () aus folgendem Grund: Kommentar zu den einzelnen Punkten beigefügt

    • Hallo Nick,

      und willkommen im Forum!

      Klingt interessant Dein Projekt! Ich versuche mal, auf Deine Fragen zu antworten:

      1. habe ich das richtig verstanden? Du willst den RasPi anstelle eines Fernsteuerempfängers an die Naza hängen? Dann müßtest Du - wie Du richtig schreibst - die Ausgangssignale eines solchen Empfängers simulieren. Möglicherweise gibt es da schon passende Software-Module.
        Wie willst Du die Steuersignale denn am Boden generieren? Aus einer Software heraus? Du mußt bedenken, daß Du jederzeit eingreifen können mußt, um quasi autonom (oder anderweitig) gesteuert fliegen zu dürfen. Also muß Du das System irgendwie "übersteuern" können, falls etwas schiefläuft.
      2. Der F550 ist ja erstmal eine Plattform, die aus Motoren, Reglern und einer Flugsteuerung besteht. Eigentlich kann man dafür jede andere genauso hernehmen. Ob es unbedingt eine Naza sein muß, sei dahingestellt - so ziemlich jeder FlugController wird funktionieren.
        Der FailSafeMode ist eigentlich ganz einfach: da kann man festlegen, daß der Kopter entweder vor Ort landet, oder einen RTH (return to home) macht, sobald er vom Fernsteuerempfänger (in Deinem Falle vom RasPi) keine plausiblen Daten mehr erhält.
      3. Halterhaftpflichtversicherung gemäß LuftVO brauchst Du auf alle Fälle. Wie es mit Aufstiegserlaubnis in so einem Falle aussieht, ist schwieriger zu beantworten. Eigentlich fliegst Du ja nicht zu Sport- und Freizeitzwecken, sondern eher zu Forschungszwecken. Vielleicht kann da jemand was dazu sagen, der sowas schonmal gemacht hat?
      4. Hier hat sich schon mal jemand mit der Decodierung beschäftigt. Vermutlich gibt es noch mehr Quellen.
        Nach meinen Informationen kann man die Naza nicht über den CAN-Bus steuern, sondern nur Daten auslesen/auswerten.
      Viel Erfolg :)

      Grüße, Diet
      Mein Hangar:
      DJI Mavic Pro mit iPhone 6s, Parrot Disco, DJI F450 FlameWheel mit Naza-M V2 und FrSky Taranis, diverses "Kleinvieh" mit vier Propellern
    • digo schrieb:

      Hallo Nick,

      zu meinem Verständnis:

      Du möchtest nur das Empfangsmodul ersetzen?
      Die Steuerung belassen?

      <EDIT>
      zu 1. warum nicht. Die Ausgabesignale müssen passen..
      zu 2. auch das sollte OK sein. Platz für die Montage von Modulen hast Du dort genug. Failsafe ist allerdings schon ein Bestandteil der Steuerung und nicht F550 (das ist erst mal nur der Rahmen /Motor) intern. Und ein zusätzlicher Bestandteil der EmpfängerSoftware. Beides zusammen ergibt erst die komplette Failsafe Funktionalität.

      zu 3. ist halt Modellbau.. Sichtflug usw. Was allerdings da mit deinem Funkt / Steuerung ist (Ich vermute Du verwendest entsprechend zugelassene Modems / Modemmodule).

      zu 4. da ist das halt Naza... ein recht geschlossenes System. Vielleicht ist es da besser eine andere "offene" Flugsteuerung für Deine Zwecke zu verwenden. Da dort auch die Quellen offen sind. (Naze32 usw. da gibt es sicher weitere Beispiele)
      </EDIT>
      Genau, das Empfangsmodul wird durch den Raspi ersetzt der von mir Software zur Simulation bekommt. Das Programm sollte nicht kompliziert werden.... soweit ich weiß, sind das PWM-Signale mit einem Duty Cyle von 20ms mit einer Pulsweite von 1 bis 2 ms pro Kanal. Soweit ich das verstanden habe, brauche ich dann für den Hexa 6 Kanäle für die einzelnen Motoren. GPIO's hab ich 40 also sollte das reichen ^^ . Der Flightcontroller wandelt die Signale dann direkt um und die Motoren werden in die entsprechenden Richtungen, erstmal nur Rollen und Nicken gesteuert. Für Gieren muss ich mir noch etwas einfallen lassen....


      Dass ich über de CAN nicht steuern kann habe ich mir schon fast gedacht...aber macht auch nix..

      Diet schrieb:

      Hallo Nick,

      und willkommen im Forum!

      Klingt interessant Dein Projekt! Ich versuche mal, auf Deine Fragen zu antworten:

      1. habe ich das richtig verstanden? Du willst den RasPi anstelle eines Fernsteuerempfängers an die Naza hängen? Dann müßtest Du - wie Du richtig schreibst - die Ausgangssignale eines solchen Empfängers simulieren. Möglicherweise gibt es da schon passende Software-Module.
        Wie willst Du die Steuersignale denn am Boden generieren? Aus einer Software heraus? Du mußt bedenken, daß Du jederzeit eingreifen können mußt, um quasi autonom (oder anderweitig) gesteuert fliegen zu dürfen. Also muß Du das System irgendwie "übersteuern" können, falls etwas schiefläuft.
      2. Der F550 ist ja erstmal eine Plattform, die aus Motoren, Reglern und einer Flugsteuerung besteht. Eigentlich kann man dafür jede andere genauso hernehmen. Ob es unbedingt eine Naza sein muß, sei dahingestellt - so ziemlich jeder FlugController wird funktionieren.
        Der FailSafeMode ist eigentlich ganz einfach: da kann man festlegen, daß der Kopter entweder vor Ort landet, oder einen RTH (return to home) macht, sobald er vom Fernsteuerempfänger (in Deinem Falle vom RasPi) keine plausiblen Daten mehr erhält.
      3. Halterhaftpflichtversicherung gemäß LuftVO brauchst Du auf alle Fälle. Wie es mit Aufstiegserlaubnis in so einem Falle aussieht, ist schwieriger zu beantworten. Eigentlich fliegst Du ja nicht zu Sport- und Freizeitzwecken, sondern eher zu Forschungszwecken. Vielleicht kann da jemand was dazu sagen, der sowas schonmal gemacht hat?
      4. Hier hat sich schon mal jemand mit der Decodierung beschäftigt. Vermutlich gibt es noch mehr Quellen.
        Nach meinen Informationen kann man die Naza nicht über den CAN-Bus steuern, sondern nur Daten auslesen/auswerten.
      Viel Erfolg :)

      Grüße, Diet
      zu 1: Wie genau meinst du dass ich jederzeit eingreifen können muss? Die App auf dem Smartphone wertet Die Accelerometerdaten ensprechend des Neigungswinkels des Smarphones aus, sendet sie über LTE bzw auch wlan auf nen Server. Der schickt es weiter zum Raspi auf dem mein Recieversimulator läuft der den NAZA Controller mit der PWM ansteuert. Der Simulator wandelt die Acc-daten um in die entsprechenden PWM Signale und gibt sie dem Controller der sie dann auf die Motoren Übersetzt. Somit fliegt der Hexa nicht autonom sondern dauerhaft von mir gesteuert. In die app kommt noch ein slider mit dem ich die höhe einstelle. dieser wird nicht "gefedert" sein dass man loslassen kann und der Hexa auf der höhe stehen bleibt.

      zu 2: Genau so hab ich mir das auch Vorgestellt! Ich meine nämlich, dass der Failsasfe-Mode schon im Controller programmiert ist und somit die eigentliche Naza FB nicht benötigt. Nur wie ich dann den RTH mode oder Landemode festlege ohne den Kippschalter an der Naza FB weiss ich noch nicht. Warscheinlich werde ich einen Schalter in die App mit setzen die dann wieder an den Raspi gibt und der zum Cntroller. Dann brauche ich dafür auch noch einen Kanal oder?


      danke für die schnelle Rückmeldung Nochmals :D

      Über weitere Gedanken zu dem Thema von anderen Usern würde ich mich freuen :) :) :)

      LG Nick
    • Nick15 schrieb:

      zu 1: Wie genau meinst du dass ich jederzeit eingreifen können muss? Die App auf dem Smartphone wertet Die Accelerometerdaten ensprechend des Neigungswinkels des Smarphones aus, sendet sie über LTE bzw auch wlan auf nen Server. Der schickt es weiter zum Raspi auf dem mein Recieversimulator läuft der den NAZA Controller mit der PWM ansteuert. Der Simulator wandelt die Acc-daten um in die entsprechenden PWM Signale und gibt sie dem Controller der sie dann auf die Motoren Übersetzt. Somit fliegt der Hexa nicht autonom sondern dauerhaft von mir gesteuert.
      Mit "autonom" habe ich mich vielleicht etwas mißverständlich ausgedrückt. Ich meinte, daß Du "direkt" eingreifen können mußt, falls auf Deiner langen "Befehlskette" (Smartphone-App, LTE, WLAN, RasPi, etc.) irgendetwas schiefläuft, hängenbleibt oder aufgrund größerer Latenzen Probleme verursacht.
      Wenn da irgendwas "spinnt", dann könntest Du in größere Schwierigkeiten geraten. Das nur als Hinweis :)
      Mein Hangar:
      DJI Mavic Pro mit iPhone 6s, Parrot Disco, DJI F450 FlameWheel mit Naza-M V2 und FrSky Taranis, diverses "Kleinvieh" mit vier Propellern
    • Zum eigentlichen Fliegen benötigst Du nur 4 Kanäle für die Steuerung. Das ist unabhängig wieviele Motoren Dein Copter hat.
      Die Flugsteuerung macht einzig und allein die NAZA, welche auch die Motorsteuerung übernimmt. (In diesem Fall halt 6 Motoren).

      Der Empfänger ist absolut "Dumm". Du kannst die von Deiner "Fernsteuerung" also von Dir gesendeten Signale u.U anders interpretieren und an die Flugsteuerung weiterreichen. Aber wenn Du die Naza einsetzt, reichst Du doch nur Steuerbefehle durch. wenn ich das richtig sehe.

      Mir ist noch nicht ganz klar was Du umwandeln / Simulieren willst.
      "Einfach" Statt Funkfernsteuerung LTE Stick Einsatz Laptop + Joistick
      oder weitere Änderungen des Steuersignals...

      <EDIT>
      OK Du baust tatsächlich einen erweiterten Fernsteuerungsempfänger.
      Sehr interessantes Thema.
      </EDIT>
      DJI Mavic Pro | DJI Goggles | DJI F550 | Naza M V1.0 | iOSD Mini | TAROT Gopro 3 Achs Gimbal | GoPro Hero3 Black | Turnigy 9XR Pro |

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von digo ()

    • Ich habe die
      Turnigy 9XR Fernsteuerung im Einsatz

      Sende Modul FrSky XJT 2,4 Ghz 8 / 16 Kanäle

      Empfänger FrSky X8R 8/16 Kanäle

      Damit stehen 16 Kanäle zur Verfügung.
      Das sollte für die Grundfunktionen ausreichend sein und noch was zum spielen.
      DJI Mavic Pro | DJI Goggles | DJI F550 | Naza M V1.0 | iOSD Mini | TAROT Gopro 3 Achs Gimbal | GoPro Hero3 Black | Turnigy 9XR Pro |
    • @digo: Wo liegt dieses Gesamtpaket preislich?

      @Nick15: hast Du bei den Händlern, bei denen "im Zulauf" steht, mal angefragt, wann es wieder zu haben ist?
      Am besten mal nach "dji f550 naza v2 promotion kit" suchen.
      Mein Hangar:
      DJI Mavic Pro mit iPhone 6s, Parrot Disco, DJI F450 FlameWheel mit Naza-M V2 und FrSky Taranis, diverses "Kleinvieh" mit vier Propellern

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Diet ()

    • Turnigy 9xrPro
      95,80 €

      Sende Modul + Empfänger als Combi

      FrSky XJT 2.4Ghz Combo Pack for JR w/ Telemetry Module & X8R 8/16Ch S.BUS ACCST Telemetry Receiver

      65,04 €

      Alles bei Hobbyking, teilweise auch bei ebay
      DJI Mavic Pro | DJI Goggles | DJI F550 | Naza M V1.0 | iOSD Mini | TAROT Gopro 3 Achs Gimbal | GoPro Hero3 Black | Turnigy 9XR Pro |
    • Hallo zusammen,
      genau das was du vor hast plane ich auch schon seit geraumer Zeit. Die Komponenten habe ich schon alle.
      Bis jetzt konnte ich mir leider noch nicht die Zeit nehme das Projekt voran zu treiben.

      Magst du vielleicht mal berichten wie weit du bist? Mich würde vor allem die Umsetzung der Kommunikation zwischen pi und Naza m v2 interessieren. Soweit ich das richtig herausgefunden habe gibt es schon eine sbus library für den arduino, jedoch noch keine für den pi?
      LG
    • Ich bin mit dem Projekt bereits durch:) Und der F550 fliegt:) PI und NAZA kommunizieren dabei über das PCA 9685 PWM-Board von adafruit. Ich hab nicht das s-bus Protokoll genutzt. Der PI hat nur 1 Hardware PWM pin, deshalb das PWM-Board. für das Board gibts ne Bibliothek zum einbinden in das Programm. Dann kann das Board über I2C angesteuert werden und es steuert über die 5 PWM-Kanäle den NAZA an. Mit dem S-Bus Protokoll sollte es aber auch möglich sein über den Hardware PWM-Pin des PI nur hatte ich keine zeit mehr dafür und das PWM-Board war ne schnelle Lösung.
    • Das gesamte Projekt ist öffentlich nur weiß ich noch nicht genau wo ;( aber ich gebe euch bescheid wenn ich es weiß :)

      Ich habe insgesamt 4 Hauptkomponenten: Android-App; MQTT-Broker; PI und der Hexacopter mit der NAZA mv2. Die App generiert die Steuerdaten aus dem Accelerometer des Smartphones, sowie durch einen Gasschieber auf dem Bildschirm und weitere knöpfe, steckt sie in ein MQTT-Nachrichtenpaket und sendet sie an den Mosquitto-MQTT-Broker. Der Pi hat ein HSPA-Modem um eine Internetverbindung aufzubauen. Er verbindet sich mit dem Broker und erhält von ihm die Datenpakete des Smartphones. Die Daten analysiert er, und erstellt daraus die PWM für die 5 kanäle A,E,T,R,U. Das PWM Board spricht diese dann direkt an. Die ganze Struktur ist auch noch SSL-Verschlüsselt sodass da keiner so leicht ran kommt:) Bei einem Verbindungsabbruch oder ausschalten des Smartphones Triggert das PI-Programm den Failsafe und der Hexa Landet:)
    • Hey Nick,
      super dass du dich so schnell gemeldet hast.

      Nick15 schrieb:

      PI und NAZA kommunizieren dabei über das PCA 9685 PWM-Board von adafruit. Ich hab nicht das s-bus Protokoll genutzt. Der PI hat nur 1 Hardware PWM pin, deshalb das PWM-Board. für das Board gibts ne Bibliothek zum einbinden in das Programm. Dann kann das Board über I2C angesteuert werden und es steuert über die 5 PWM-Kanäle den NAZA an. Mit dem S-Bus Protokoll sollte es aber auch möglich sein über den Hardware PWM-Pin des PI nur hatte ich keine zeit mehr dafür und das PWM-Board war ne schnelle Lösung.
      Gar keine schlechte Idee mit dem PWM-Board ... kann der Pi das nicht auch alleine? Das klingt ja gar nicht nach so viel Arbeit :rolleyes:
      Ich wollte deswegen über sbus gehen damit ich auch noch die Telemetrie Daten auf dem Handy/Steuer-Clienten habe 8|

      Das letzte was ich gemacht habe, ist ein wenig mit dem Livestream von Pi Camera über UMTS auf den PC zu spielen.
      (Ja das macht nur Sinn, wenn man ungedrosseltes mobiles Netz hat :cursing: - da jetzt aber mit O2free und der 1Mbit/s Drosselung :love: neue Möglichkeiten entstehen, ist die Umsetztung eines kostengünstigen FPV-UMTS Video Systems wesentlich realistischer geworden )

      Welchen Tarif/Anbieter hast du verwendet?

      MQTT bietet sich ja wirklich an, geringe Latenzen, verbreitetes Protokoll und vor allem ist es einfach! Die Verbindung sieht bei dir wahrscheinlich so aus:
      Naza -> Pi- > HSDPA-Stick => MQTT-Broker/Server <= Handy

      Ich habe bis jetzt mit nem reverse SSH Tunneln gearbeitet:
      PiZero+Camera(Hoffentlich irgendwann mal an der Naza) -> UMTS-Stick => HomePi <= PC

      Diet schrieb:

      Wie groß sind die Latenzen bei der Steuerung? Bestimmt spürbar, oder?


      Wäre super, wenn Du einen Link zum Projekt findest und posten würdest :thumbup:
      Also die Latenzen gehen bei mir echt klar ... du hast wenn du vom Pi(UMTS) zu google pingst ca. 100ms
      Wenn man das jetzt mal hochrechnet (Pi+Home+Handy=100ms+50ms+100ms= 250ms) kommst du auf ca. 250ms.
      Wenn du direkt zu Hause im Wlan hängst fallen einmal 100ms weg.
      Das sollte auf jedem Fall noch ihm Rahmen des steuerbaren liegen :thumbup:
      Oder was sagt die Praxis?

      Nick15 schrieb:

      Das gesamte Projekt ist öffentlich nur weiß ich noch nicht genau wo ;( aber ich gebe euch bescheid wenn ich es weiß :)
      Es wäre genial, wenn du uns deine BA zur Verfügung stellen würdest :thumbsup: