Indholdsfortegnelse:
- Trin 1: Krav
- Trin 2: Hardwareopbygningen
- Trin 3: Softwaren, der flytter robotten
- Trin 4: Softwaren, der genkender menneskets bevægelse
- Trin 5: Kamera, lys, tastatur, bord, skærm
- Trin 6: Hentning af softwaren
Video: Chess Robot Raspberry Pi Lynxmotion AL5D Arm: 6 trin
2024 Forfatter: John Day | [email protected]. Sidst ændret: 2024-01-30 08:26
Byg denne skakrobot, og se den slå alle!
Det er ret let at bygge, hvis du kan følge instruktionerne om, hvordan du bygger armen, og hvis du har mindst et elementært kendskab til computerprogrammering og Linux.
Mennesket, der spiller hvidt, gør et træk. Dette registreres af det visuelle genkendelsessystem. Robotten overvejer derefter og foretager derefter sit træk. Og så videre …
Den måske nyeste ting i denne robot er koden til bevægelsesgenkendelse. Denne visionskode kan også bruges til skakrobotter bygget på mange andre måder (f.eks. Min skakrobot med LEGO build).
Fordi menneskets bevægelse genkendes af et vision -system, er der ikke behov for nogen særlig skakbræddehardware (såsom rørskifter eller hvad som helst).
Min kode er tilgængelig til personlig brug.
Trin 1: Krav
Al koden er skrevet i Python, som blandt andet kører på en Raspberry Pi.
Raspberry Pi er en lille, billig (omkring $ 40) single-board computer udviklet af Raspberry Pi Foundation. Den originale model blev langt mere populær end forventet og solgte til anvendelser som f.eks. Robotik
Min robot bruger en Raspberry Pi, og robotarmen er bygget af et sæt: Lynxmotion AL5D. Sættet leveres med et servokontrolkort. (Det link, jeg lige har givet, er til RobotShops amerikanske websted; klik på et af flagene øverst til højre på deres webstedssider for dit land, f.eks. Storbritannien).
Du skal også bruge et bord, et kamera, belysning, et tastatur, skærm og pegeudstyr (f.eks. Mus). Og selvfølgelig skakbrikker og et bræt. Jeg beskriver alle disse ting mere detaljeret i de efterfølgende trin.
Trin 2: Hardwareopbygningen
Som jeg tidligere har angivet, vil hjertet i visionskoden fungere med en række bygninger.
Denne build bruger et robotarmsæt fra Lynxmotion, AL5D. Inkluderet i sættet er et SSC-32U servokontrolkort, der bruges til at styre motorerne i armen.
Jeg valgte AL5D, fordi armen skal kunne foretage gentagne præcise bevægelser og ikke glide af. Griberen skal kunne komme mellem stykker, og armen skal kunne nå til den yderste side af brættet. Jeg havde stadig brug for at foretage nogle ændringer som beskrevet nedenfor.
Raspberry Pi jeg bruger er en Raspberry Pi 3 Model B+. Dette taler til SSC-32U-kortet via en USB-forbindelse.
EDIT: Raspberry Pi 4 er nu tilgængelig. Du skal bruge:
- En 15W USB-C strømforsyning-vi anbefaler den officielle Raspberry Pi USB-C strømforsyning
- Et microSD-kort indlæst med NOOBS, den software, der installerer operativsystemet (køb et forudindlæst SD-kort sammen med din Raspberry Pi, eller download NOOBS for at indlæse et kort selv)
- Et tastatur og en mus (se senere)
- Et kabel til tilslutning til en skærm via en Raspberry Pi 4s mikro -HDMI -port
Jeg havde brug for yderligere rækkevidde på robotarmen, så jeg lavede nogle mindre ændringer på den ved hjælp af yderligere Lynxmotion -dele, som kan købes fra RobotShop:
1. Erstattede 4,5 tommer røret med et 6 tommer et-Lynxmotion del AT-04, produktkode RB-Lyn-115.
2. Prøvede at bruge et ekstra sæt fjedre, men gik tilbage til et par, da jeg implementerede punkt 3 nedenfor
3. Forlæng højden ved hjælp af en 1 tommer afstandsstykke-Lynxmotion del HUB-16, produktkode RB-Lyn-336.
4. Forlænget griberens rækkevidde ved hjælp af ekstra griberpuder, der er fastgjort med nogle ekstra LEGO -stykker, jeg havde og elastikbånd (!) Dette fungerer meget godt, da det introducerer fleksibilitet ved løftning af brikker.
Disse ændringer kan ses på billedet ovenfor til højre.
Der er et kamera monteret over skakbrættet. Dette bruges til at bestemme menneskets bevægelse.
Trin 3: Softwaren, der flytter robotten
Al koden er skrevet i Python 2. Invers kinematik kode er nødvendig for at flytte de forskellige motorer korrekt, så skakbrikker kan flyttes. Jeg bruger bibliotekskode fra Lynxmotion, der understøtter flytning af motorerne i to dimensioner og har tilføjet det med min egen kode til 3 dimensioner, gribervinkel og griberkæbebevægelse.
Så vi har derefter kode, der vil flytte stykker, tage stykker, slot, support en passant og så videre.
Skakmotoren er Stockfish - som kan slå ethvert menneske! "Tørrfisk er en af de stærkeste skakmotorer i verden. Den er også meget stærkere end de bedste menneskelige skakmestre."
Koden til at køre skakmotoren, validere at et træk er gyldigt og så videre er ChessBoard.py
Jeg bruger en vis kode fra https://chess.fortherapy.co.uk til at kommunikere med det. Min kode (ovenfor) grænseflader derefter med det!
Trin 4: Softwaren, der genkender menneskets bevægelse
Jeg har beskrevet dette detaljeret i Instructable til min Chess Robot Lego build - så jeg behøver ikke at gentage det her!
Mine "sorte" stykker var oprindeligt brune, men jeg malede dem matsorte (med "tavlemaling"), hvilket får algoritmen til at fungere bedre under mere variable lysforhold.
Trin 5: Kamera, lys, tastatur, bord, skærm
Disse er de samme som i min Chess Robot Lego build, så jeg behøver ikke at gentage dem her.
Bortset fra at jeg denne gang brugte en anderledes og væsentligt bedre højttaler, en Lenrui Bluetooth -højttaler, som jeg forbinder til RPi via USB.
Tilgængelig fra amazon.com, amazon.co.uk og andre forretninger.
Jeg bruger nu også et andet kamera - et HP Webcam HD 2300, da jeg ikke kunne få det forrige kamera til at opføre sig pålideligt.
Algoritmerne fungerer bedst, hvis skakbrættet har en farve, der er langt fra farven på brikkerne! I min robot er brikkerne råhvide og brune, og skakbrættet er håndlavet i kort og er en lysegrøn med lille forskel mellem de "sorte" og "hvide" firkanter.
Algoritmerne har brug for en særlig orientering af kamera til bord. Kommenter venligst nedenfor, hvis du har et problem. Armen har begrænset rækkevidde, og derfor bør kvadratstørrelsen være 3,5 cm.
Trin 6: Hentning af softwaren
1. Tørrfisk
Hvis du kører Raspbian på din RPi, kan du bruge Stockfish 7 -motoren - det er gratis. Bare kør:
sudo apt-get installer tørfisk
2. ChessBoard.py Få dette herfra.
3. Kode baseret på https://chess.fortherapy.co.uk/home/a-wooden-chess… Leveres med min kode.
4. Python 2D Inverse Kinematics -bibliotek -
5. Min kode, som påberåber sig al koden ovenfor, og som får robotten til at foretage bevægelserne, og min visionskode. Få dette fra mig ved først at abonnere på min YouTube -kanal, derefter klikke på knappen "Favorit" nær toppen af denne instruks og derefter sende en kommentar til denne instruktør, så svarer jeg.
Anbefalede:
Rotary Encoder Controlled Robot Arm: 6 trin
Rotary Encoder Controlled Robot Arm: Jeg besøgte howtomechatronics.com og så den bluetooth kontrollerede robotarm der. Jeg kan ikke lide at bruge bluetooth, plus jeg så, at vi kan styre servo med roterende encoder, så jeg redesigner det, så jeg kan styre robotten arm brug roterende encoder og optag det
Pocket Sized Robot Arm MeArm V0.4: 20 trin (med billeder)
Pocket Sized Robot Arm MeArm V0.4: MeArm er en Pocket Sized Robot Arm. Det er et projekt startet i februar 2014, som har haft en fantastisk hurtig rejse til sin nuværende tilstand takket være det Open Development som et Open Hardware -projekt. Version 0.3 blev vist på Instructables tilbage
Spoken Word Chess Pieces: 7 trin (med billeder)
Spoken Word Chess Pieces: Jeg lavede nogle meget personlige skakbrikker ved hjælp af min stemme. Hvert stykke er baseret på formen på den lyd, jeg lavede, mens jeg sagde sit navn. Det er ikke et komplet sæt, da den anden side skal gøres på samme måde, men med min modstanders stemme
ARM ROBOT MEXICANO: 4 trin
ARM ROBOT MEXICANO: DESING ARM ROBOT WELD: s
Xbox 360 ROBOTIC ARM [ARDUINO]: AXIOM ARM: 4 trin
Xbox 360 ROBOTIC ARM [ARDUINO]: AXIOM ARM: