Node-Red mit Pythoncode hinterlegen

Hier werden alle anderen GUI-Toolkits sowie Spezial-Toolkits wie Spiele-Engines behandelt.
Antworten
G-Rizzle
User
Beiträge: 90
Registriert: Donnerstag 18. Februar 2021, 12:26

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!!!
__deets__
User
Beiträge: 14493
Registriert: Mittwoch 14. Oktober 2015, 14:29

Wenn du Python benutzen willst, und es da etwas gibt, wozu dann überhaupt Node RED? Nur für Buttons? Die kann ja Python auch.
G-Rizzle
User
Beiträge: 90
Registriert: Donnerstag 18. Februar 2021, 12:26

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.
__deets__
User
Beiträge: 14493
Registriert: Mittwoch 14. Oktober 2015, 14:29

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.
G-Rizzle
User
Beiträge: 90
Registriert: Donnerstag 18. Februar 2021, 12:26

wie bitte? :D
Sirius3
User
Beiträge: 17710
Registriert: Sonntag 21. Oktober 2012, 17:20

Der einfachste Weg, node-red mit irgendeinem anderen Service zu verbinden, ist über irgendeinen HTTP-REst-Service.
einfachTobi
User
Beiträge: 491
Registriert: Mittwoch 13. November 2019, 08:38

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/.
Sirius3
User
Beiträge: 17710
Registriert: Sonntag 21. Oktober 2012, 17:20

@einfachTobi: wie ich das verstanden habe, ist die Steuerung einer Drohne etwas, das parallel zu Node-Red laufen muß.
G-Rizzle
User
Beiträge: 90
Registriert: Donnerstag 18. Februar 2021, 12:26

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)
__deets__
User
Beiträge: 14493
Registriert: Mittwoch 14. Oktober 2015, 14:29

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.
G-Rizzle
User
Beiträge: 90
Registriert: Donnerstag 18. Februar 2021, 12:26

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?
Sirius3
User
Beiträge: 17710
Registriert: Sonntag 21. Oktober 2012, 17:20

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.
G-Rizzle
User
Beiträge: 90
Registriert: Donnerstag 18. Februar 2021, 12:26

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.
Antworten