Inhoudsopgave:
- Stap 1: Overzicht en ontwerpproces
- Stap 2: Benodigde materialen
- Stap 3: Digitaal vervaardigde onderdelen
- Stap 4: De koppelingen voorbereiden
- Stap 5: De servobeugels voorbereiden
- Stap 6: Montage van de poten
- Stap 7: Het lichaam monteren
- Stap 8: Alles samenbrengen
- Stap 9: bedrading en circuit
- Stap 10: Eerste installatie
- Stap 11: Een beetje over de kinematica
- Stap 12: Programmeren van de viervoeter
- Stap 13: Eindresultaten: tijd om te experimenteren
Video: 3D-geprinte Arduino Powered Quadruped Robot - Ajarnpa
2024 Auteur: John Day | [email protected]. Laatst gewijzigd: 2024-01-30 11:14
Fusion 360-projecten »
Uit de vorige Instructables kun je waarschijnlijk zien dat ik een diepe interesse heb voor robotprojecten. Na de vorige Instructable waar ik een robotachtige tweevoeter bouwde, besloot ik om te proberen een viervoetige robot te maken die dieren zoals honden en katten kon imiteren. In deze Instructable zal ik je het ontwerp en de montage van de robotachtige viervoeter laten zien.
Het primaire doel bij het bouwen van dit project was om het systeem zo robuust mogelijk te maken, zodat ik tijdens het experimenteren met verschillende loop- en hardloopgangen me niet constant zorgen hoefde te maken over het falen van de hardware. Hierdoor kon ik de hardware tot het uiterste drijven en experimenteren met complexe gangen en bewegingen. Een secundair doel was om de viervoeter relatief goedkoop te maken met behulp van gemakkelijk verkrijgbare hobby-onderdelen en 3D-printen die snelle prototyping mogelijk maakten. Deze twee doelen bieden samen een solide basis om verschillende experimenten uit te voeren, waardoor men de viervoeter kan ontwikkelen voor meer specifieke vereisten zoals navigatie, het vermijden van obstakels en dynamische voortbeweging.
Bekijk de video hierboven bijgevoegd om een korte demo van het project te zien. Ga verder om je eigen Arduino Powered Quadruped Robot te maken en laat een stem achter in de "Make it Move Contest" als je het project leuk vond.
Stap 1: Overzicht en ontwerpproces
De viervoeter is ontworpen in de gratis te gebruiken Fusion 360 3D-modelleringssoftware van Autodesk. Ik begon met het importeren van de servomotoren in het ontwerp en bouwde de benen en het lichaam eromheen. Ik ontwierp beugels voor de servomotor die een tweede draaipunt biedt diametraal tegenover de as van de servomotor. Het hebben van dubbele assen aan beide uiteinden van de motor geeft structurele stabiliteit aan het ontwerp en elimineert het scheeftrekken dat kan optreden wanneer de poten worden gemaakt om enige belasting op te nemen. De schakels waren ontworpen om een lager vast te houden, terwijl de beugels een bout voor de as gebruikten. Nadat de schakels met een moer op de assen waren gemonteerd, zou het lager een soepel en robuust draaipunt bieden aan de andere kant van de as van de servomotor.
Een ander doel bij het ontwerpen van de viervoeter was om het model zo compact mogelijk te houden om maximaal gebruik te maken van het koppel van de servomotoren. De afmetingen van de schakels zijn gemaakt om een groot bewegingsbereik te bereiken terwijl de totale lengte tot een minimum wordt beperkt. Door ze te kort te maken, zouden de beugels botsen, waardoor het bewegingsbereik wordt verminderd, en als ze te lang zouden zijn, zou er onnodig koppel op de actuatoren worden uitgeoefend. Ten slotte ontwierp ik het lichaam van de robot waarop de Arduino en andere elektronische componenten zouden worden gemonteerd. Ik heb ook extra bevestigingspunten op het bovenpaneel gelaten om het project schaalbaar te maken voor verdere verbeteringen. Eens kon sensoren toevoegen, zoals afstandssensoren, camera's of andere geactiveerde mechanismen zoals robotgrijpers.
Opmerking: De onderdelen zijn inbegrepen in een van de volgende stappen.
Stap 2: Benodigde materialen
Hier is de lijst met alle componenten en onderdelen die nodig zijn om je eigen Arduino Powered Quadruped Robot te maken. Alle onderdelen moeten algemeen verkrijgbaar zijn en gemakkelijk te vinden zijn in plaatselijke bouwmarkten of online.
ELEKTRONICA:
Arduino Uno x 1
Towerpro MG995 servomotor x 12
Arduino Sensor Shield (ik raad de V5-versie aan, maar ik had de V4-versie)
Doorverbindingsdraden (10 stuks)
MPU6050 IMU (optioneel)
Ultrasone sensor (optioneel)
HARDWARE:
Kogellagers (8x19x7mm, 12 stuks)
M4 moeren en bouten
3D-printerfilament (voor het geval u geen 3D-printer bezit, moet er een 3D-printer in een lokale werkruimte zijn of kunnen de afdrukken voor vrij goedkoop online worden gedaan)
Acrylplaten (4 mm)
GEREEDSCHAP
3D-printer
Lasersnijder
De belangrijkste kostenpost van dit project zijn de 12 servomotoren. Ik raad aan om voor de middenklasse tot hoge versie te gaan in plaats van de goedkope plastic exemplaren te gebruiken, omdat ze de neiging hebben om gemakkelijk te breken. Exclusief de tools bedragen de totale kosten van dit project ongeveer $ 60.
Stap 3: Digitaal vervaardigde onderdelen
De onderdelen die nodig waren voor dit project moesten op maat worden ontworpen, daarom hebben we de kracht van digitaal gefabriceerde onderdelen en CAD gebruikt om ze te bouwen. De meeste onderdelen zijn 3D-geprint, afgezien van een paar die met een laser uit 4 mm acryl zijn gesneden. De prints zijn gemaakt met 40% vulling, 2 omtrekken, 0,4 mm mondstuk en een laaghoogte van 0,1 mm met PLA. Sommige onderdelen hebben wel steunen nodig omdat ze een complexe vorm hebben met uitsteeksels, maar de steunen zijn gemakkelijk toegankelijk en kunnen met een aantal frezen worden verwijderd. U kunt de kleur van uw keuze van het filament kiezen. Hieronder vindt u de volledige lijst met onderdelen en de STL's om uw eigen versie te printen en de 2D-ontwerpen voor de lasergesneden onderdelen.
Opmerking: vanaf hier wordt naar de onderdelen verwezen met de namen in de volgende lijst.
3D geprinte onderdelen:
- heup servo beugel x 2"
- hip servo beugel spiegel x 2"
- knie servo beugel x 2"
- knie servo beugel spiegel x 2"
- lagerhouder x 2
- lager houder spiegel x 2
- been x 4
- servo hoorn link x 4"
- dragende verbinding x 4"
- arduino houder x 1
- afstandssensor houder x 1
- L-steun x 4
- lagerbus x 4
- servohoorn afstandhouder x 24
Lasergesneden onderdelen:
- servohouderpaneel x 2"
- bovenpaneel x 1
In totaal zijn er 30 onderdelen die 3D geprint moeten worden exclusief de verschillende spacers, en 33 digitaal gefabriceerde onderdelen in totaal. De totale afdruktijd is ongeveer 30 uur.
Stap 4: De koppelingen voorbereiden
U kunt de montage beginnen door in het begin enkele onderdelen op te stellen, waardoor het uiteindelijke montageproces beter beheersbaar wordt. Je kunt beginnen met de link. Om de lagerverbinding te maken, schuurt u het binnenoppervlak van de gaten voor het lager lichtjes en duwt u het lager vervolgens aan beide uiteinden in het gat. Zorg ervoor dat u het lager naar binnen duwt totdat één kant gelijk ligt. Om de servohoornverbinding te bouwen, pak je twee cirkelvormige servohoorns en de bijbehorende schroeven. Plaats de hoorns op de 3D-print en lijn de twee gaten uit, schroef vervolgens de hoorn op de 3D-print door de schroef vanaf de 3D-printzijde te bevestigen. Ik moest een aantal 3D-geprinte servohoornafstandhouders gebruiken, omdat de meegeleverde schroeven een beetje lang waren en het servomotorlichaam zouden kruisen terwijl het draaide. Zodra de schakels zijn gebouwd, kunt u beginnen met het opzetten van de verschillende houders en beugels.
Herhaal dit voor alle 4 de links van beide typen.
Stap 5: De servobeugels voorbereiden
Om de knieservobeugel in te stellen, steekt u eenvoudig een bout van 4 mm door het gat en zet u deze vast met een moer. Dit zal fungeren als de secundaire as voor de motor. Steek vanaf de heupservobeugel twee bouten door de twee gaten en zet ze vast met nog twee moeren. Pak vervolgens nog een cirkelvormige servohoorn en bevestig deze aan het iets verhoogde gedeelte van de beugel met behulp van de twee schroeven die bij de hoorns zijn geleverd. Nogmaals, ik zou aanraden om de servohoornafstandhouder te gebruiken, zodat de schroeven niet in de opening voor de servo uitsteken. Pak ten slotte het lagerhouderdeel vast en duw een lager in het gat. Mogelijk moet u het binnenoppervlak licht schuren voor een goede pasvorm. Duw vervolgens een lagerdruk in het lager zodat het lagerhouderstuk buigt.
Raadpleeg de afbeeldingen hierboven bij het maken van de beugels. Herhaal dit proces voor de rest van de haakjes. De gespiegelde zijn vergelijkbaar, alleen is alles gespiegeld.
Stap 6: Montage van de poten
Zodra alle schakels en beugels zijn gemonteerd, kunt u beginnen met het bouwen van de vier poten van de robot. Begin met het bevestigen van de servo's op de beugels met behulp van 4 x M4-bouten en moeren. Zorg ervoor dat u de as van de servo uitlijnt met de uitstekende bout aan de andere kant.
Koppel vervolgens de heupservo met de knieservo met behulp van het servohoorn-schakelstuk. Gebruik nog geen schroef om de hoorn op de as van de servomotor te bevestigen, omdat we de positie later mogelijk moeten aanpassen. Monteer aan de andere kant de lagerschakel met de twee lagers op de uitstekende bouten met behulp van moeren.
Herhaal dit proces voor de rest van de drie poten en de 4 poten voor de viervoeter zijn klaar!
Stap 7: Het lichaam monteren
Vervolgens kunnen we ons concentreren op het bouwen van het lichaam van de robot. Het lichaam herbergt vier servomotoren die de benen hun 3e vrijheidsgraad geven. Begin met het gebruik van 4 x M4-bouten en buts om de servo op het lasergesneden servohouderpaneel te bevestigen.
Opmerking: zorg ervoor dat de servo zo is bevestigd dat de as zich aan de buitenkant van het stuk bevindt, zoals te zien is op de bovenstaande afbeeldingen. Herhaal dit proces voor de rest van de drie servomotoren, rekening houdend met de oriëntatie.
Bevestig vervolgens L-steunen aan beide zijden van het paneel met behulp van twee M4 bouten en moeren. Met dit stuk kunnen we het servohouderpaneel stevig aan het bovenpaneel bevestigen. Herhaal dit proces met nog twee L-steunen en het tweede servohouderpaneel met de tweede set servomotoren.
Zodra de L-steunen op hun plaats zitten, gebruikt u meer M4 moeren en bouten om het servohouderpaneel aan het bovenpaneel te bevestigen. Begin met de buitenste set moeren en bouten (naar voren en naar achteren). De centrale moeren en bouten houden ook het arduino-houderstuk vast. Gebruik vier moeren en bouten om de arduino-houder vanaf de bovenkant op het bovenpaneel te bevestigen en lijn de bouten uit zodat ze ook door de L-steungaten gaan. Raadpleeg de afbeeldingen hierboven bijgevoegd voor verduidelijking. Schuif tenslotte vier moeren in de sleuven op de servohouderpanelen en gebruik bouten om de servohouderpanelen aan het bovenpaneel te bevestigen.
Stap 8: Alles samenbrengen
Zodra de poten en het lichaam zijn gemonteerd, kunt u beginnen met het assemblageproces. Monteer de vier poten op de vier servo's met behulp van de servohoorns die aan de heupservobeugel waren bevestigd. Gebruik ten slotte de lagerhouderstukken om de tegenoverliggende as van de heupbeugel te ondersteunen. Steek de as door het lager en gebruik een bout om deze op zijn plaats te bevestigen. Bevestig de lagerhouders aan het bovenpaneel met behulp van twee M4 bouten en moeren.
Hiermee is de hardware montage van de quad klaar.
Stap 9: bedrading en circuit
Ik besloot een sensorafscherming te gebruiken die aansluitingen voor servomotoren bood. Ik zou aanraden om het sensor shield v5 te gebruiken, omdat het een ingebouwde externe voedingspoort heeft. Degene die ik gebruikte had deze optie echter niet. Toen ik het sensorschild van naderbij bekeek, merkte ik dat het sensorschild stroom trok van de Arduino's onboard 5v-pin (wat een vreselijk idee is als het gaat om krachtige servomotoren, omdat je het risico loopt de Arduino te beschadigen). De oplossing voor dit probleem was om de 5v-pin op het sensorschild uit de weg te buigen, zodat deze geen verbinding zou maken met de 5v-pin van de Arduino. Op deze manier kunnen we nu externe stroom leveren via de 5v-pin zonder de Arduino te beschadigen.
De aansluitingen van de signaalpinnen van de 12 servomotoren zijn aangegeven in onderstaande tabel.
Opmerking: Hip1Servo verwijst naar de servo die aan het lichaam is bevestigd. Hip2Servo verwijst naar de servo die aan het been is bevestigd.
Been 1 (vooruit links):
- Hip1Servo >> 2
- Hip2Servo >> 3
- KnieServo >> 4
Been 2 (vooruit rechts):
- Hip1Servo >> 5
- Hip2Servo >> 6
- KnieServo >> 7
Been 3 (linksachter):
- Hip1Servo >> 8
- Hip2Servo >> 9
- KnieServo >> 10
Poot 4 (rechtsachter):
- Hip1Servo >> 11
- Hip2Servo >> 12
- KnieServo >> 13
Stap 10: Eerste installatie
Voordat we beginnen met het programmeren van complexe gangen en andere bewegingen, moeten we de nulpunten van elke servo instellen. Dit geeft de robot een referentiepunt dat hij gebruikt om de verschillende bewegingen uit te voeren.
Om schade aan de robot te voorkomen, kunt u de servohoornschakels verwijderen. Upload vervolgens de code die hieronder is bijgevoegd. Deze code plaatst elk van de servo's op 90 graden. Zodra de servo's de 90-gradenpositie hebben bereikt, kunt u de schakels opnieuw bevestigen, zodat de poten perfect recht zijn en de servo die aan het lichaam is bevestigd, loodrecht op het bovenpaneel van de viervoeter staat.
Op dit punt kunnen sommige verbindingen, vanwege het ontwerp van de servohoorns, nog steeds niet perfect recht zijn. De oplossing hiervoor is om de zeroPositions-array op de 4e regel van de code aan te passen. Elk nummer vertegenwoordigt de nulpositie van de bijbehorende servo (de volgorde is hetzelfde als de volgorde waarin je de servo op de Arduino hebt aangesloten). Pas deze waarden een beetje aan tot de benen perfect recht zijn.
Opmerking: dit zijn de waarden die ik gebruik, hoewel deze waarden mogelijk niet voor u werken:
int nulPosities[12] = {93, 102, 85, 83, 90, 85, 92, 82, 85, 90, 85, 90};
Stap 11: Een beetje over de kinematica
Om de viervoeter nuttige acties zoals rennen, lopen en andere bewegingen te laten uitvoeren, moeten de servo's worden geprogrammeerd in de vorm van bewegingspaden. Bewegingspaden zijn paden waarlangs de eindeffector (in dit geval de voeten) zich voortbeweegt. Er zijn twee manieren om dit te bereiken:
- Een benadering zou zijn om de verbindingshoeken van de verschillende motoren op een brute manier te voeden. Deze aanpak kan tijdrovend, vervelend en ook vol fouten zijn, aangezien de beoordeling puur visueel is. In plaats daarvan is er een slimmere manier om de gewenste resultaten te bereiken.
- De tweede benadering draait om het invoeren van de coördinaten van de eindeffector in plaats van alle gewrichtshoeken. Dit is wat bekend staat als inverse kinematica. De gebruiker voert coördinaten in en de gewrichtshoeken worden aangepast om de eindeffector op de opgegeven coördinaten te positioneren. Deze methode kan worden beschouwd als een zwarte doos die een coördinaat invoert en de verbindingshoeken uitvoert. Voor degenen die geïnteresseerd zijn in hoe de trigonometrische vergelijkingen van deze zwarte doos zijn ontwikkeld, kunnen het bovenstaande diagram bekijken. Voor degenen die niet geïnteresseerd zijn, de vergelijkingen zijn al geprogrammeerd en kunnen worden gebruikt met behulp van de pos-functie die als invoer x, y, z neemt, wat de cartesische locatie is van de eindeffector en drie hoeken uitvoert die overeenkomen met de motoren.
Het programma met deze functies vindt u in de volgende stap.
Stap 12: Programmeren van de viervoeter
Zodra de bedrading en initialisatie is voltooid, kunt u de robot programmeren en coole bewegingspaden genereren, zodat de robot interessante taken uitvoert. Voordat u verder gaat, wijzigt u de 4e regel in de bijgevoegde code naar de waarden die u in de initialisatiestap had ingesteld. Na het uploaden van het programma zou de robot moeten beginnen te lopen. Als je merkt dat sommige verbindingen omgekeerd zijn, kun je eenvoudig de corresponderende richtingswaarde in de richtingsreeks in regel 5 wijzigen (als het 1 is, maak het dan -1 en als het -1 is, maak het dan 1).
Stap 13: Eindresultaten: tijd om te experimenteren
De viervoeter kan stappen zetten die variëren van 5 tot 2 cm lang. Ook de snelheid kan gevarieerd worden terwijl de gang in balans blijft. Deze viervoeter biedt een robuust platform om te experimenteren met verschillende andere gangen en andere doelen, zoals springen of complete taken. Ik zou je aanraden om te proberen de bewegingspaden van de benen te veranderen om je eigen gangen te creëren en te ontdekken hoe verschillende gangen de prestaties van de robot beïnvloeden. Ik heb ook meerdere bevestigingspunten aan de bovenkant van de robot gelaten voor extra sensoren, zoals afstandsmeetsensoren voor het vermijden van obstakels of IMU voor dynamische gangen op oneffen terrein. Men zou ook kunnen experimenteren met een extra grijparm die aan de bovenkant van de robot is gemonteerd, aangezien de robot extreem stabiel en robuust is en niet gemakkelijk zal kantelen.
Ik hoop dat je genoten hebt van deze Instructable en het heeft je geïnspireerd om je eigen te bouwen.
Als je het project leuk vond, steun het dan door een stem uit te brengen in de "Make it Move-wedstrijd".
Veel plezier met maken!
Tweede prijs in de Make it Move-wedstrijd 2020
Aanbevolen:
Linux Powered USB TableClock: 10 stappen
Linux Powered USB TableClock: Linux Power USB Tafelklok is Raspbian Lite Linux powered tafelklok. Het is gemaakt om vooral te worden gebruikt door nachtbrakers zoals ik die snel de tijd willen zien, maar het is een te helder LCD-scherm om de tijd op een mobiele telefoon te controleren. Het ziet er cool uit op mijn setup
[DIY] Spider Robot (Quad Robot, Quadruped): 14 stappen (met afbeeldingen)
[DIY] Spider Robot (Quad Robot, Quadruped): Als je extra ondersteuning van mij nodig hebt, is het beter dat je een geschikte donatie aan mij doet: http://paypal.me/RegisHsu2019-10-10 update:De nieuwe compiler veroorzaakt het berekeningsprobleem met zwevende getallen. Ik heb de code al aangepast. 2017-03-26
Balance Box Game - Arduino Powered: 4 stappen (met afbeeldingen)
Balance Box Game - Arduino Powered: Het Balance Box-spel is gemaakt voor een uitdagingsevenement, het moet waterpas door een hindernisbaan of over een bepaalde afstand worden gedragen om de uitdaging te winnen. Een Arduino wordt gebruikt om de hoek van de box en activeer een alarm zodra de ingestelde hoek
Arduino Quadruped: 8 stappen
Arduino Quadruped: op Arduino gebaseerde quadruped !!!,Quadruped staat voor vierbenige bot, die er in feite uitziet als een vierbenige spin, dus laat ons leren hoe de spin loopt en probeer het te repliceren met arduino
[Arduino Robot] Hoe maak je een Motion Capture-robot - Duimen Robot - Servomotor - Broncode: 26 stappen (met afbeeldingen)
[Arduino Robot] Hoe maak je een Motion Capture-robot | Duimen Robot | Servomotor | Broncode: Thumbs Robot. Gebruikt een potentiometer van MG90S servomotor. Het is erg leuk en makkelijk! De code is heel eenvoudig. Het is slechts ongeveer 30 lijnen. Het ziet eruit als een motion-capture.Laat een vraag of feedback achter! [Instructie] Broncode https://github.c