
Inhaltsverzeichnis:
2025 Autor: John Day | [email protected]. Zuletzt bearbeitet: 2025-01-23 12:52

In diesem anweisbaren werde ich Ihnen erklären, wie wir einen Nao-Roboter unsere Bewegungen mit einem Kinect-Sensor nachahmen lassen. Das eigentliche Ziel des Projekts ist ein pädagogischer Zweck: Ein Lehrer hat die Möglichkeit, bestimmte Bewegungsabläufe (zB einen Tanz) aufzunehmen und kann diese Aufnahmen verwenden, um die Kinder im Klassenzimmer den Roboter nachahmen zu lassen. Indem Sie dieses gesamte anweisbare Schritt für Schritt durchgehen, sollten Sie in der Lage sein, dieses Projekt vollständig neu zu erstellen.
Dies ist ein schulbezogenes Projekt (NMCT @ Howest, Kortrijk).
Schritt 1: Grundwissen
Um dieses Projekt nachzubauen, müssen Sie einige Grundkenntnisse besitzen:
- Grundlegende Python-Kenntnisse
- Grundkenntnisse in C# (WPF)
- Grundkenntnisse in der Trigonometrie
- Kenntnisse zum Einrichten von MQTT auf einem Himbeer-Pi
Schritt 2: Beschaffung der erforderlichen Materialien
Benötigte Materialien für dieses Projekt:
- Himbeer-Pi
- Kinect-Sensor v1.8 (Xbox 360)
- Nao-Roboter oder virtueller Roboter (Choregraph)
Schritt 3: Wie es funktioniert



Ein Kinect-Sensor ist mit einem Computer verbunden, auf dem die WPF-Anwendung ausgeführt wird. Die WPF-Anwendung sendet mithilfe von MQTT Daten an die Python-Anwendung (Roboter). Lokale Dateien werden gespeichert, wenn der Benutzer dies wünscht.
Ausführliche Erklärung:
Bevor wir mit der Aufzeichnung beginnen, muss der Benutzer die IP-Adresse des MQTT-Brokers eingeben. Außerdem benötigen wir noch das Thema, zu dem wir die Daten veröffentlichen wollen. Nach Drücken von Start prüft die Anwendung, ob eine Verbindung mit dem Broker hergestellt werden konnte und gibt uns Feedback. Es ist nicht möglich zu prüfen, ob ein Thema existiert, daher sind Sie für dieses Thema voll verantwortlich. Wenn beide Eingaben in Ordnung sind, beginnt die Anwendung mit dem Senden von Daten (x-, y- und z-Koordinaten bilden jede Verbindung) vom Skelett, das verfolgt wird, an das Thema auf dem MQTT-Broker.
Da der Roboter mit dem gleichen MQTT-Broker verbunden ist und am gleichen Thema abonniert ist (dies muss auch in der Python-Anwendung eingegeben werden), erhält die Python-Anwendung nun die Daten von der WPF-Anwendung. Mit Trigonometrie und selbstgeschriebenen Algorithmen wandeln wir die Koordinaten in Winkel und Bogenmaß um, mit denen wir die Motoren im Roboter in Echtzeit drehen.
Wenn der Benutzer mit der Aufnahme fertig ist, drückt er die Stopptaste. Nun bekommt der Benutzer ein Pop-up mit der Frage, ob er die Aufnahme speichern möchte. Wenn der Benutzer auf Abbrechen klickt, wird alles zurückgesetzt (Daten gehen verloren) und eine neue Aufzeichnung kann gestartet werden. Wenn der Benutzer die Aufnahme speichern möchte, sollte er einen Titel eingeben und auf 'Speichern' klicken. Wenn Sie auf 'Speichern' klicken, werden alle erfassten Daten in eine lokale Datei geschrieben, wobei der Titel als Dateiname eingegeben wird. Die Datei wird auch der Listenansicht auf der rechten Seite des Bildschirms hinzugefügt. Auf diese Weise wird nach einem Doppelklick auf den neuen Eintrag in der Listenansicht die Datei gelesen und an den MQTT-Broker gesendet. Folglich spielt der Roboter die Aufnahme ab.
Schritt 4: Einrichten des MQTT-Brokers

Für die Kommunikation zwischen Kinect (WPF-Projekt) und dem Roboter (Python-Projekt) haben wir MQTT verwendet. MQTT besteht aus einem Broker (einem Linux-Rechner, auf dem die mqtt-Software (zB Mosquitto) läuft) und einem Topic, zu dem Clients abonnieren (sie erhalten eine Nachricht vom Topic) und veröffentlichen (sie posten eine Nachricht zum Thema).
Um den MQTT-Broker einzurichten, laden Sie einfach dieses gesamte Jessie-Image herunter. Dies ist eine saubere Installation für Ihren Raspberry Pi mit einem MQTT-Broker darauf. Das Thema ist "/Sandro".
Schritt 5: Installieren des Kinect SDK V1.8
Damit Kinect auf Ihrem Computer funktioniert, müssen Sie das Microsoft Kinect SDK installieren.
Sie können es hier herunterladen:
www.microsoft.com/en-us/download/details.a…
Schritt 6: Python V2.7 installieren
Der Roboter arbeitet mit dem NaoQi-Framework, dieses Framework ist nur für Python 2.7 (NICHT 3.x) verfügbar, also überprüfen Sie, welche Version von Python Sie installiert haben.
Python 2.7 können Sie hier herunterladen:
www.python.org/downloads/release/python-27…
Schritt 7: Codierung



Github:
Anmerkungen:
- Codieren mit der Kinect: Zuerst suchen Sie nach der verbundenen Kinect. Nachdem wir dies in einer Eigenschaft gespeichert haben, haben wir den Farb- und Skelettstream auf dem Kinect aktiviert. Colorstream ist das Live-Video, während Skelettstream bedeutet, dass ein Skelett der Person vor der Kamera angezeigt wird. Colorstream ist nicht wirklich notwendig, um dieses Projekt zum Laufen zu bringen, wir haben es nur aktiviert, weil das Bitmapping des Skelettstreams zum Colorstream glatt aussieht!
- In Wirklichkeit ist es wirklich der Skeletonstream, der den Job macht. Das Aktivieren von skeletonstream bedeutet, dass das Skelett der Person verfolgt wird. Von diesem Skelett erhalten Sie alle Arten von Informationen, z. Knochenorientierungen, Gelenkinformationen, … Der Schlüssel zu unserem Projekt waren die Gelenkinformationen. Unter Verwendung der x-y- und z-Koordinaten jedes der Gelenke des verfolgten Skeletts wussten wir, dass wir den Roboter bewegen können. Also veröffentlichen wir alle 0,8 Sekunden (mit einem Timer) die x-, y- und z-Koordinaten jedes der Gelenke an den mqtt-Broker.
- Da das Python-Projekt eine Subskription auf dem mqtt-Broker hat, können wir jetzt auf die Daten innerhalb dieses Projekts zugreifen. In jedem Gelenk des Roboters befinden sich zwei Motoren. Diese Motoren können nicht nur direkt über die x-, y- und z-Koordinaten gesteuert werden. Mit Trigonometrie und etwas gesundem Menschenverstand haben wir die x-, y- und z-Koordinaten der Gelenke in Winkel umgewandelt, die für Roboter unterstabil sind.
Im Grunde veröffentlicht das WPF-Projekt alle 0,8 Sekunden die X-, Y- und Z-Koordinaten jedes der Gelenke. Folglich werden diese Koordinaten innerhalb des Python-Projekts in Winkel umgewandelt, die dann an die entsprechenden Motoren des Roboters gesendet werden.
Empfohlen:
Heimwerken -- Einen Spinnenroboter herstellen, der mit einem Smartphone mit Arduino Uno gesteuert werden kann – wikiHow

Heimwerken || Wie man einen Spider-Roboter herstellt, der mit einem Smartphone mit Arduino Uno gesteuert werden kann: Während man einen Spider-Roboter baut, kann man so viele Dinge über Robotik lernen. Wie die Herstellung von Robotern ist sowohl unterhaltsam als auch herausfordernd. In diesem Video zeigen wir Ihnen, wie Sie einen Spider-Roboter bauen, den wir mit unserem Smartphone (Androi
Raspberry Pi mit Node.js mit der Cloud verbinden – wikiHow

So verbinden Sie Raspberry Pi mit Node.js mit der Cloud: Dieses Tutorial ist nützlich für alle, die einen Raspberry Pi mit Node.js mit der Cloud, insbesondere mit der AskSensors IoT-Plattform, verbinden möchten. Sie haben keinen Raspberry Pi? Wenn Sie derzeit keinen Raspberry Pi besitzen, empfehle ich Ihnen, sich einen Raspberry Pi zuzulegen
Der Sanity Check: 5 Schritte (mit Bildern)

Der Sanity Check: Bei diesem Projekt dreht sich alles um die Gesundheit oder darum, dass er regelmäßig überprüft wird. Der beste Weg, dies zu erreichen, besteht darin, eine Maske zu bauen, deren Augen zufällig rot leuchten. Oft genug, damit es auffällt, aber spärlich genug, um die Leute zweifeln zu lassen
Experimente in der erweiterten Datenprotokollierung (mit Python): 11 Schritte

Experimente in der erweiterten Datenprotokollierung (mit Python): Es gibt viele Anleitungen zur Datenprotokollierung. Als ich also ein eigenes Protokollierungsprojekt erstellen wollte, habe ich mich bei einem Haufen umgesehen. Einige waren gut, andere nicht so sehr, also beschloss ich, einige der besseren Ideen aufzunehmen und meine eigene Bewerbung zu machen. Dieses Ergebnis
So erstellen Sie einen Smart Pot mit NodeMCU, der von der App gesteuert wird – wikiHow

So erstellen Sie einen Smart Pot mit NodeMCU, der von einer App gesteuert wird: In dieser Anleitung bauen wir einen Smart Pot, der von einem ESP32 und einer Anwendung für Smartphones (iOS und Android) gesteuert wird. Wir verwenden NodeMCU (ESP32) für die Konnektivität und die Blynk-Bibliothek für das Cloud-IoT und die Anwendung auf dem Smartphone. Endlich haben wir