
Spisu treści:
2025 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2025-01-23 15:03

W tej instrukcji wyjaśnię, w jaki sposób pozwalamy robotowi Nao naśladować nasze ruchy za pomocą czujnika kinect. Właściwym celem projektu jest cel edukacyjny: nauczyciel ma możliwość rejestrowania określonych zestawów ruchów (np. taniec) i może wykorzystać te nagrania, aby umożliwić dzieciom w klasie naśladowanie robota. Przechodząc przez cały ten instruktaż krok po kroku, powinieneś być w stanie w pełni odtworzyć ten projekt.
Jest to projekt związany ze szkołą (NMCT @ Howest, Kortrijk).
Krok 1: Podstawowa wiedza
Aby odtworzyć ten projekt, musisz posiadać podstawową wiedzę:
- Podstawowa znajomość Pythona
- Podstawowa znajomość języka C# (WPF)
- Podstawowa wiedza o trygonometrii
- Wiedza o tym, jak skonfigurować MQTT na malinowym pi
Krok 2: Zdobycie niezbędnych materiałów
Wymagane materiały do tego projektu:
- Malina Pi
- Sensor Kinect v1.8 (Xbox 360)
- Robot Nao lub robot wirtualny (choregraf)
Krok 3: Jak to działa



Sensor kinect jest podłączony do komputera z uruchomioną aplikacją WPF. Aplikacja WPF wysyła dane do aplikacji Python (robot) przy użyciu MQTT. Pliki lokalne są zapisywane, jeśli użytkownik tak zdecyduje.
Szczegółowe wyjaśnienie:
Zanim rozpoczniemy nagrywanie, użytkownik musi wprowadzić adres IP brokera MQTT. Poza tym potrzebujemy również tematu, na który chcemy opublikować dane. Po naciśnięciu start aplikacja sprawdzi, czy można nawiązać połączenie z brokerem i przekaże nam informację zwrotną. Sprawdzenie, czy temat istnieje, nie jest możliwe, więc jesteś za niego w pełni odpowiedzialny. Gdy oba dane wejściowe będą prawidłowe, aplikacja rozpocznie wysyłanie danych (współrzędne x, y&z z każdego złącza) ze śledzonego szkieletu do tematu na brokerze MQTT.
Ponieważ robot jest połączony z tym samym brokerem MQTT i zasubskrybowany na ten sam temat (to też trzeba wpisać w aplikacji python) aplikacja python otrzyma teraz dane z aplikacji WPF. Korzystając z trygonometrii i algorytmów napisanych samodzielnie, przekształcamy współrzędne na kąty i radiany, których używamy do obracania silników wewnątrz robota w czasie rzeczywistym.
Gdy użytkownik skończy nagrywanie, naciska przycisk stop. Teraz użytkownik otrzymuje wyskakujące okienko z pytaniem, czy chce zapisać nagranie. Gdy użytkownik kliknie Anuluj, wszystko zostanie zresetowane (dane zostaną utracone) i można rozpocząć nowe nagranie. Jeśli użytkownik chce zapisać nagranie, powinien wpisać tytuł i nacisnąć „zapisz”. Po naciśnięciu 'zapisz' wszystkie zebrane dane są zapisywane w lokalnym pliku, używając tytułu wejściowego jako nazwy pliku. Plik jest również dodawany do widoku listy po prawej stronie ekranu. W ten sposób po dwukrotnym kliknięciu nowego wpisu w liście, plik jest odczytywany i wysyłany do brokera MQTT. W konsekwencji robot odtworzy nagranie.
Krok 4: Konfiguracja brokera MQTT

Do komunikacji pomiędzy kinectem (projekt WPF) a robotem (projekt Python) wykorzystaliśmy MQTT. MQTT składa się z brokera (komputer z linuxem, na którym działa oprogramowanie mqtt (np. Mosquitto)) oraz temat, na który klienci mogą się subskrybować (otrzymują wiadomość z tematu) i publikują (wysyłają wiadomość na ten temat).
Aby skonfigurować brokera MQTT, wystarczy pobrać cały obraz Jessie. To jest czysta instalacja dla twojego Raspberry Pi z brokerem MQTT. Temat to "/Sandro".
Krok 5: Instalowanie zestawu SDK Kinect w wersji 1.8
Aby sensor Kinect działał na Twoim komputerze, musisz zainstalować Microsoft Kinect SDK.
Możesz go pobrać tutaj:
www.microsoft.com/en-us/download/details.a…
Krok 6: Instalacja Pythona V2.7
Robot współpracuje z frameworkiem NaoQi, ten framework jest dostępny tylko dla pythona 2.7 (NIE 3.x), więc sprawdź jaką wersję pythona zainstalowałeś.
Możesz pobrać Pythona 2.7 tutaj:
www.python.org/downloads/release/python-27…
Krok 7: Kodowanie



Github:
Uwagi:
- Kodowanie za pomocą kinect: najpierw poszukujesz połączonego kinect. Po zapisaniu tego we właściwości włączyliśmy color- i skeletonstream na kinect. Colorstream to wideo na żywo, podczas gdy skeletonstream oznacza, że zostanie wyświetlony szkielet osoby przed kamerą. Colorstream nie jest tak naprawdę potrzebny, aby ten projekt działał, po prostu go włączyliśmy, ponieważ bitmapping ze szkieletowego strumienia do colorstreamu wygląda zgrabnie!
- W rzeczywistości to szkielet streamu robi robotę. Włączenie skeletonstream oznacza, że szkielet osoby jest śledzony. Z tego szkieletu otrzymujesz wszelkiego rodzaju informacje m.in. orientacje kości, wspólne informacje… Kluczem do naszego projektu była wspólna informacja. Korzystając ze współrzędnych x-y i z każdego ze stawów śledzonego szkieletu, wiedzieliśmy, że możemy wprawić robota w ruch. Tak więc co 0,8 sekundy (za pomocą timera) publikujemy współrzędne x, y&z każdego ze stawów brokerowi mqtt.
- Ponieważ projekt python ma subskrypcję na brokerze mqtt, możemy teraz uzyskać dostęp do danych w tym projekcie. Wewnątrz każdego przegubu robota znajdują się dwa silniki. Te silniki nie mogą być sterowane bezpośrednio za pomocą współrzędnych x, y&z. Używając trygonometrii i zdrowego rozsądku, przekonwertowaliśmy współrzędne x, y&z stawów na kąty niestabilne dla robotów.
Tak więc w zasadzie co 0,8 sekundy projekt WPF publikuje współrzędne x, y & z każdego ze stawów. W konsekwencji w projekcie Pythona współrzędne te są przekształcane na kąty, które są następnie przesyłane do odpowiednich silników robota.
Zalecana:
Zrób to sam -- Jak zrobić pająka, którym można sterować za pomocą smartfona za pomocą Arduino Uno: 6 kroków

Zrób to sam || Jak zrobić robota-pająka, którym można sterować za pomocą smartfona za pomocą Arduino Uno: Podczas tworzenia robota-pająka można nauczyć się wielu rzeczy o robotyce. Podobnie jak tworzenie robotów jest zarówno zabawne, jak i trudne. W tym filmie pokażemy, jak zrobić robota Spider, którym możemy sterować za pomocą naszego smartfona (Androi
Ramię robota Moslty wydrukowane w 3D, które naśladuje kontroler lalek: 11 kroków (ze zdjęciami)

Ramię robota wydrukowane w 3D, które naśladuje kontroler lalek: Jestem studentem inżynierii mechanicznej z Indii i to jest mój projekt na studiach licencjackich. Ten projekt koncentruje się na opracowaniu taniego ramienia robota, które jest w większości drukowane w 3D i ma 5 DOF z 2 palcami chwytak. Ramię robota jest sterowane za
Konwersja steppera na ruchy w grze: 4 kroki

Konwersja steppera na ruchy w grze: IntroTo urządzenie przekształca ruch z domowej roboty steppera (maszyny krokowej) na ruch w grze. Będzie działać w każdej grze, która odbiera ("w") jako ruch do przodu. Może działać również w grach VR, jeśli akceptują wprowadzanie z klawiatury. Prawdopodobnie wygrał
Ruchy kopiujące robota Nao za pomocą kamery Xbox Kinect: 4 kroki

Robot Nao kopiujący ruchy za pomocą kamery Kinect Xbox: W ramach projektu na naszej klasie informatyki w liceum (Porter Gaud), ja (Legare Walpole) i inny uczeń (Martin Lautenschlager) postanowiliśmy uzyskać humanoidalnego robota Nao, który naśladuje nasze ruchy kamera kinetyczna Xbox. Od miesięcy nie ma profesjonalisty
Ruchy diod LED reagujące na ruch: 7 kroków

Rzuty LED wrażliwe na ruch: Zaprojektowane do umieszczania / rzucania na poruszające się cele, te rzuty wykorzystują prymitywny czujnik ruchu