Seite 1 von 1

Node-Red mit Pythoncode hinterlegen

Verfasst: Donnerstag 18. Februar 2021, 12:37
von G-Rizzle
hi,

für ein Uniprojekt überlege ich mir eine Tellodrohne zu kaufen, um sie über Node-Red zu steuern. Ich habe in Node-Red bereits ein Modul gefunden GitHub - johnwalicki/Node-RED-Tello-Control: Node-RED flows to control the Ryze Tello Drone


Die Sache ist, am liebsten würde ich die Drohne aber direkt über Python Code steuern. Es gibt auch ein Tello Python Modul. Habe dazu auch schon einiges auf Youtube gefunden. Nur leider hat das niemand mit Node-Red connected. Meine Idee wäre z.B. auch ein "Landen" button mit implementierter KI, die dann automatisch den Heli-Landeplatz sucht und sauber landet.

Ich bin absoluter Node-Red Noob. Jetzt meine Frage: Ist es möglich, hinter Dashboard Buttons in Node Red Pythoncode zu hinterlegen, sodass ich die Drohne so steuern kann?


Danke schonmal im Voraus!!!

Re: Node-Red mit Pythoncode hinterlegen

Verfasst: Donnerstag 18. Februar 2021, 13:10
von __deets__
Wenn du Python benutzen willst, und es da etwas gibt, wozu dann überhaupt Node RED? Nur für Buttons? Die kann ja Python auch.

Re: Node-Red mit Pythoncode hinterlegen

Verfasst: Donnerstag 18. Februar 2021, 14:14
von G-Rizzle
Sorry, mein Text war etwas kontextlos.

Und zwar ist das Gesamtprojekt eine Miniatur Industrie 4.0 Anlage von Fischertechnik mit IoT-Anschluss. Die hat verschiedene Module (Greifer, 3D-Drucker, Förderbänder, verschiedenste Sensoren).

Meine Drohne soll eine Art Überwachungsdrohne werden, die entweder frei steuerbar sein soll oder man soll Buttons wie "Fliege 3D-Drucker an" drücken können. Dabei ständiges Livebild, und jederzeit eine Fotografiemöglichkeit.

Die gesamte Anlage ist bisher über Node-Red steuerbar, es wäre geschickt den NodeRed-Stil einfach weiterführen zu können.

Re: Node-Red mit Pythoncode hinterlegen

Verfasst: Donnerstag 18. Februar 2021, 18:15
von __deets__
Ich kenne NR nicht gut genug, aber dann musst du wohl sowohl dein Python Script mit einem Webserver ausstatten, und dann bin NR darauf zugreifen. Mit CORS Headern sollte das keine Problem sein.

Re: Node-Red mit Pythoncode hinterlegen

Verfasst: Freitag 19. Februar 2021, 10:54
von G-Rizzle
wie bitte? :D

Re: Node-Red mit Pythoncode hinterlegen

Verfasst: Freitag 19. Februar 2021, 11:26
von Sirius3
Der einfachste Weg, node-red mit irgendeinem anderen Service zu verbinden, ist über irgendeinen HTTP-REst-Service.

Re: Node-Red mit Pythoncode hinterlegen

Verfasst: Freitag 19. Februar 2021, 11:48
von einfachTobi
Ich sehe nicht die Notwendigkeit einer API. Es gibt die Möglichkeit Python Code über Node-Red auszuführen; z. B. hier beschrieben: https://www.rodened.com/posts/how-to-us ... ode-red-1/.

Re: Node-Red mit Pythoncode hinterlegen

Verfasst: Freitag 19. Februar 2021, 12:05
von Sirius3
@einfachTobi: wie ich das verstanden habe, ist die Steuerung einer Drohne etwas, das parallel zu Node-Red laufen muß.

Re: Node-Red mit Pythoncode hinterlegen

Verfasst: Sonntag 21. Februar 2021, 17:49
von G-Rizzle
inwiefern meinst du parallel zur drohne?


mein gedanke ist folgender:

in node red ein dashboard implementieren, quasi als virtueller controller. das dashboard besteht aus knöpfen wie "vorwärts", "rückwärts". drückt man diese, führt die drohne entsprechend python codes aus.

in youtube videos ist es eben möglich sich in den TP-Link der drohne einzuwählen und dann über python (z.b. in pycharm) diese befehle in die konsole einzugeben und darauf führt die drohne es aus.

was ich mich jetzt frage: stellt diese "maschine" auf der das programm ausgeführt wird entsprechend den computer dar? also ich logge mich in den TP-link der drohne ein, öffne node red und erstelle das dashboard (hinterlege dabei die nodes mit funktionen der tello-library) und gut ist?

ihr merkt, ich bin noob :D
Was wäre ein professioneller way to go? was würdet ihr vorschlagen?
meine anforderungen an das dashboard nochmal:

- bewegungen wie vorwärts, rückwärts usw auf mausklick.
- livebild
- button, um foto zu machen,
- buttons für automatisierte rundflüge nach einprogrammiertem weg
- button für AI-basierte landung (--> "H" des landeplatzes finden, anfliegen und langsam landen)

Re: Node-Red mit Pythoncode hinterlegen

Verfasst: Sonntag 21. Februar 2021, 18:39
von __deets__
Der Code der Tello muss die ganze Zeit laufen. Denn das ist ja ein Video-*Stream*, also eine kontinuierlicher Strom von Frames. Und die Verbindung zur Drone bleibt dabe auch die ganze Zeit offen. Ich persoenlich wuerde das also wiederum als Server in Python schreiben, und der Server kann per HTTP Befehle entegen nehmen, die dann an die Drone geschickt werden. Und die Frames des Videos kommen zB als PNG oder so, was da genau das beste ist, muesste man mal schauen.

Also hast du

- nodejs fuer node red
- einen Python Server, der mit der Drone und per HTTP mit dem NodeRED *FRONTEND* redet.

Re: Node-Red mit Pythoncode hinterlegen

Verfasst: Sonntag 21. Februar 2021, 20:14
von G-Rizzle
wie realisiert man nen python server? z.b. in der google cloud ne machine mieten oder wie? oder kann den server auch der pc darstellen, über den man die drohne steuert?

Re: Node-Red mit Pythoncode hinterlegen

Verfasst: Sonntag 21. Februar 2021, 20:33
von Sirius3
Das muß sogar der PC sein, über den Du die Drohne steuerst, denn der Server soll ja die Drohne steuern. Dazu benutzt man ein Framework wie Flask.

Re: Node-Red mit Pythoncode hinterlegen

Verfasst: Sonntag 21. Februar 2021, 20:47
von G-Rizzle
gibts da tutorials / guides die ihr empfhelen könnt? ich habe maschinenbau studiert und grundkenntnisse in programmierung, aber keine ahnung wie ich sowas (backend , frontend verknüpfung) angehen sollte.