Innehållsförteckning:
- Steg 1: Grundläggande kunskap
- Steg 2: Skaffa nödvändiga material
- Steg 3: Hur det fungerar
- Steg 4: Konfigurera MQTT -mäklaren
- Steg 5: Installera Kinect SDK V1.8
- Steg 6: Installera Python V2.7
- Steg 7: Kodning
Video: Nao -robot som efterliknar rörelser med Kinect: 7 steg
2024 Författare: John Day | [email protected]. Senast ändrad: 2024-01-30 12:46
I denna instruktiva förklarar jag för dig hur vi låter en Nao -robot efterlikna våra rörelser med en kinect -sensor. Själva målet med projektet är ett pedagogiskt syfte: en lärare har förmågan att spela in vissa uppsättningar rörelser (t.ex. en dans) och kan använda dessa inspelningar för att låta barnen i klassrummet efterlikna roboten. Genom att gå igenom hela detta instruerbara steg för steg bör du kunna återskapa det här projektet fullt ut.
Detta är ett skolrelaterat projekt (NMCT @ Howest, Kortrijk).
Steg 1: Grundläggande kunskap
För att återskapa detta projekt måste du ha grundläggande kunskaper:
- Grundläggande pythonkunskap
- Grundläggande C# -kunskap (WPF)
- Grundläggande kunskaper om trigonometri
- Kunskap om hur man ställer in MQTT på en hallon pi
Steg 2: Skaffa nödvändiga material
Nödvändigt material för detta projekt:
- Raspberry Pi
- Kinect Sensor v1.8 (Xbox 360)
- Nao -robot eller virutal robot (Choregraph)
Steg 3: Hur det fungerar
En kinect -sensor är ansluten till en dator som kör WPF -applikationen. WPF -applikationen skickar data till Python -applikationen (roboten) med MQTT. Lokala filer sparas om användaren väljer det.
Detaljerad förklaring:
Innan vi börjar spela in måste användaren ange ip-adressen till MQTT-mäklaren. Förutom det behöver vi också ämnet som vi vill publicera data om. Efter att ha tryckt på start kommer appen att kontrollera om en anslutning kan upprättas med mäklaren och det kommer att ge oss feedback. Det är inte möjligt att kontrollera om det finns ett ämne, så du är fullt ansvarig för det här. När båda ingångarna är OK kommer applikationen att börja skicka data (x, y & z -koordinater från varje led) från skelettet som spåras till ämnet på MQTT -mäklaren.
Eftersom roboten är ansluten till samma MQTT -mäklare och prenumererar på samma ämne (detta måste också anges i python -applikationen) kommer python -applikationen nu att ta emot data från WPF -applikationen. Med hjälp av trigonometri och självskrivna algoritmer konverterar vi koordinaterna till vinklar och radianer, som vi använder för att rotera motorerna inuti roboten i realtid.
När användaren är klar med inspelningen trycker han på stoppknappen. Nu får användaren en popup som frågar om han vill spara inspelningen. När användaren träffar avbryts, återställs allt (data går förlorade) och en ny inspelning kan startas. Om användaren vill spara inspelningen ska han ange en titel och klicka på "spara". När du trycker på "spara" skrivs all förvärvad data till en lokal fil med titelinmatningen som filnamn. Filen läggs också till i listvyn på höger sida av skärmen. På detta sätt, efter att du dubbelklickat på den nya posten i listvyn, läses filen och skickas till MQTT -mäklaren. Följaktligen spelar roboten inspelningen.
Steg 4: Konfigurera MQTT -mäklaren
För kommunikationen mellan kinect (WPF -projektet) och roboten (Python -projektet) använde vi MQTT. MQTT består av en mäklare (en Linux -dator som mqtt -programvaran (t.ex. Mosquitto)) körs och ett ämne som klienter kan prenumerera på (de får ett meddelande från ämnet) och publicera (de lägger upp ett meddelande om ämnet).
För att installera MQTT -mäklaren laddar du bara ner hela den här jessie -bilden. Detta är en ren installation för dig Raspberry Pi med en MQTT -mäklare på den. Ämnet är "/Sandro".
Steg 5: Installera Kinect SDK V1.8
För att kinect ska fungera på din dator måste du installera Microsoft Kinect SDK.
Du kan ladda ner den här:
www.microsoft.com/en-us/download/details.a…
Steg 6: Installera Python V2.7
Roboten fungerar med NaoQi -ramverket, denna ram är endast tillgänglig för python 2.7 (INTE 3.x), så kontrollera vilken version av python du har installerat.
Du kan ladda ner python 2.7 här:
www.python.org/downloads/release/python-27…
Steg 7: Kodning
Github:
Anmärkningar:
- Kodning med kinect: först letar du efter den anslutna kinecten. Efter att ha sparat detta inne i en fastighet aktiverade vi färg- och skelettström på kinect. Colorstream är livevideon, medan skeletonstream betyder att ett skelett av personen framför kameran kommer att visas. Colorstream är verkligen inte nödvändigt för att få det här projektet att fungera, vi har bara aktiverat det eftersom bitmapping av skelettströmmen till färgströmmen ser snygg ut!
- I verkligheten är det verkligen skelettströmmen som gör jobbet. Aktivering av skeletonstream innebär att personens skelett spåras. Från detta skelett får du all slags information, t.ex. benorientering, gemensam information, … Nyckeln till vårt projekt var den gemensamma informationen. Med hjälp av xy & z-koordinaterna för var och en av lederna från det spårade skelettet visste vi att vi kunde få roboten att röra sig. Så, var.
- Eftersom python -projektet har en prenumeration på mqtt -mäklaren kan vi nu få tillgång till data i detta projekt. Inuti varje led i roboten finns två motorer. Dessa motorer kan inte bara styras med hjälp av x, y & z -koordinaterna direkt. Så, med hjälp av trigonometri och lite sunt förnuft, konverterade vi x, y & z -koordinaterna för lederna till vinklar som är understable till robotar.
Så i princip var.8 sekund publicerar WPF -projektet x, y & z -koordinater för var och en av lederna. Följaktligen omvandlas dessa koordianter inuti pythonprojektet till vinklar, som sedan skickas till motsvarande motorer i roboten.
Rekommenderad:
Renegade-i (programmerbar IC-testare som känns som den riktiga saken): 3 steg (med bilder)
Renegade-i (programmerbar IC-testare som känns som den verkliga saken): MILLIONS DOLLAR DREAM. Har du någonsin drömt om att ha din egen IC-testare hemma? Inte bara en pryl som kan testa IC, utan en "programmerbar" maskin som känns som en av flaggskeppsprodukterna för de största aktörerna i semikon -testindustrin, lyckas
Moslty 3D-tryckt robotarm som efterliknar marionettkontroller: 11 steg (med bilder)
Moslty 3D-tryckt robotarm som efterliknar marionettkontroller: Jag är en mekanisk ingenjörsstudent från Indien och detta är My Undergrad-examensarbete.Detta projekt är inriktat på att utveckla en billig robotarm som mestadels är 3D-tryckt och har 5 DOF: er med en 2-fingrad gripare. Robotarmen styrs med
En Raspberry Pi NAS som verkligen ser ut som en NAS: 13 steg (med bilder)
En Raspberry Pi NAS som verkligen ser ut som en NAS: Varför en Raspberry Pi NAS Tja, jag har letat efter en vacker men ändå platsbesparande Raspberry Pi NAS från internet och jag hittade ingenting. Jag hittade någon NAS -design med en Raspberry Pi som limmades på en träbaserad men det är inte vad jag vill. Jag vill
Lägg till trådlös laddning till vilken telefon som helst: Använd LG-V20 som exempel: 10 steg (med bilder)
Lägg till trådlös laddning till vilken telefon som helst: Använd LG-V20 som exempel: Om du är som jag och planerar att behålla din telefon i mer än 2 år måste telefonen ha ett utbytbart batteri, eftersom batteriet bara räcker i cirka 2 år, och Och trådlös laddning så att du inte sliter ut laddningsporten. Nu är det enkelt
Hur man efterliknar en TV -fjärrkontroll eller annat med Arduino Irlib: 3 steg (med bilder)
Hur man efterliknar en TV -fjärrkontroll eller annat med Arduino Irlib: Introduktion Hej alla och välkommen till min första Instructable.Idag lär vi oss, som titeln säger, att emulera en TV -fjärrkontroll eller något liknande som fungerar med infraröda signaler med Arduino (vilken modell som helst) .Problemet var: Hur kan jag överföra koder till en