Inhoudsopgave:

SCARA-robot: leren over voorwaartse en inverse kinematica!!! (Plot Twist Leer hoe u een realtime-interface maakt in ARDUINO met PROCESSING !!!!): 5 stappen (met afbeeldingen)
SCARA-robot: leren over voorwaartse en inverse kinematica!!! (Plot Twist Leer hoe u een realtime-interface maakt in ARDUINO met PROCESSING !!!!): 5 stappen (met afbeeldingen)

Video: SCARA-robot: leren over voorwaartse en inverse kinematica!!! (Plot Twist Leer hoe u een realtime-interface maakt in ARDUINO met PROCESSING !!!!): 5 stappen (met afbeeldingen)

Video: SCARA-robot: leren over voorwaartse en inverse kinematica!!! (Plot Twist Leer hoe u een realtime-interface maakt in ARDUINO met PROCESSING !!!!): 5 stappen (met afbeeldingen)
Video: Hoofdpijn. Oefeningen zijn gevaarlijk en veilig 2024, November
Anonim
Image
Image
SCARA-robot: leren over voorwaartse en inverse kinematica!!! (Plot Twist Leer hoe u een realtime interface maakt in ARDUINO met PROCESSING !!!!)
SCARA-robot: leren over voorwaartse en inverse kinematica!!! (Plot Twist Leer hoe u een realtime interface maakt in ARDUINO met PROCESSING !!!!)
SCARA-robot: leren over voorwaartse en inverse kinematica!!! (Plot Twist Leer hoe u een realtime interface maakt in ARDUINO met PROCESSING !!!!)
SCARA-robot: leren over voorwaartse en inverse kinematica!!! (Plot Twist Leer hoe u een realtime interface maakt in ARDUINO met PROCESSING !!!!)

Een SCARA-robot is een zeer populaire machine in de industriewereld. De naam staat voor zowel Selective Compliant Assembly Robot Arm als Selective Compliant Articulated Robot Arm. Het is in feite een robot met drie vrijheidsgraden, zijnde de eerste twee roterende verplaatsingen in het XY-vlak en de laatste beweging wordt uitgevoerd door een schuif in de Z-as aan het uiteinde van de arm. De twee vrijheidsgraden waren gepland om meer precisie te bieden; desalniettemin, vanwege de kwaliteit van de servo's die we kunnen gebruiken, had de ingebouwde arm niet zoveel mobiliteit als je zou verwachten vanwege zijn twee vrijheidsgraden. Het elektronische gedeelte is gemakkelijk te begrijpen. Het is wel moeilijk om te bouwen. Omdat de arm drie actuatoren nodig heeft, hebben we drie kanalen. In plaats van te programmeren met de gewone Arduino-interface, hebben we besloten om Processing te gebruiken, een software die erg lijkt op die van Arduino.

Benodigdheden

Stuklijsten: Om het prototype te bouwen zijn verschillende materialen gebruikt, in de volgende lijst worden al deze materialen genoemd:

  • 3 servomotoren MG 996R
  • 1 Arduino Uno
  • MDF (3 mm dikte)
  • Distributieriemen GT2 profiel (6 mm steek)
  • Epoxy
  • Bouten en moeren
  • 3 lagers:

Stap 1: Het prototype

het prototype
het prototype
het prototype
het prototype

De eerste stap was om het model in een CAD-software te maken, in dit geval is Solid Works een redelijk goede software ervoor, een andere optie kan Fusion 360 of andere CAD-software van uw voorkeur zijn. De foto's die bij stap 1 zijn bijgevoegd, waren het eerste prototype vanwege een verschillende fout die we moeten wijzigen, en we eindigen met de modelshow in de video en introductie.

Laser Cut werd gebruikt om het prototype te maken, ik heb geen video van het productieproces, maar ik heb de bestanden die ik heb gebruikt. Het belangrijkste onderdeel van dit project is de codering van de interface, zodat u uw eigen model kunt maken en onze code in uw eigen SCARA-robot kunt gebruiken

Stap 2: Motoraansluitingen

Motoraansluitingen
Motoraansluitingen

De elektronica is zo simpel als cornflakes. Sluit gewoon alles aan zoals op de afbeelding wordt getoond (in de hoofdcode komt het signaal dat naar de servo's wordt gestuurd van de pinnen (11, 10 en 11))

Stap 3: Undestand vooruit en inverts kinematica

Undestand Vooruit en Inverts Kinematics
Undestand Vooruit en Inverts Kinematics
Undestand Foward en Inverts Kinematics
Undestand Foward en Inverts Kinematics
Undestand Vooruit en Inverts Kinematics
Undestand Vooruit en Inverts Kinematics
Undestand Vooruit en Inverts Kinematics
Undestand Vooruit en Inverts Kinematics

Voorwaartse kinematica

De manier waarop de code voor de trajecten werkt, is als volgt: Nadat u deze modus hebt geselecteerd, moet u een vorm selecteren om te tekenen. U kunt kiezen tussen Lijn, Driehoek, Vierkant en Ellips. Afhankelijk van de selectie wordt een variabele gewijzigd die vervolgens fungeert als een 'case'-argument voor een select type dat later in de reeks wordt geprogrammeerd. Dankzij de flexibiliteit van Processing kunnen we communiceren met de interface met opdrachten die bekend zijn bij Windows en andere besturingssystemen, waardoor de positie van de cursor (muis) kan worden toegewezen aan een variabele in het programma, die via de verbinding met Arduino de servomotoren aanstuurt welke hoeken te rijden in welke volgorde.

Het algoritme voor tekenen kan worden gereduceerd in de pseudocode: ken waarde toe aan x1, y1 ken waarde toe aan x2, y2 bereken het verschil tussen x1 en x2 bereken het verschil tussen y1 en y2 bereken de punten waar de dons doorheen gaat (driehoek, vierkant, cirkel) (geometrie wordt gebruikt met deze twee punten) als (botondibujar == true) volledige reeks in het geval van opname, worden de variabelen die naar de servomotor worden gestuurd, opgeslagen in een array van 60 eenheden, die ons door op de 'record'-knop te drukken in staat stellen om sla de gegevens op die zijn verkregen met elke modus (handmatig, vooruit, omgekeerd, trajecten) en worden vervolgens gerepliceerd wanneer u op de startknop drukt met een eenvoudige wijziging van de variabele.

Inverse kinematica

Het probleem van de inverse kinematica bestaat uit het vinden van de benodigde input voor de robot om een punt op zijn werkruimte te bereiken. Gezien het mechanisme kan het aantal mogelijke oplossingen voor een gewenste positie een oneindig aantal zijn. De robot die we hebben gebouwd is een serieel mechanisme met twee vrijheidsgraden. Na een geometrische analyse zijn er twee oplossingen gevonden voor dit specifieke mechanisme. Afbeelding 13. Voorbeeld van inverse kinematica Waar: θ1 en θ2 zijn de invoerhoeken van de robot met twee DoF seriële mechanismen en X1 en X2 zijn de positie in het vlak van het gereedschap in de laatste arm. Van de foto hierboven:

Het bestaat ook en elleboog UP-configuratie, maar voor het doel van het programma dat is geschreven, werd alleen de elleboog DOWN-configuratie gebruikt. Zodra de invoerhoeken zijn gevonden, loopt die informatie op het directe kinematicaprogramma en wordt de gewenste positie bereikt met een fout van minder dan een centimeter vanwege de servo's en de riemen.

Stap 4: Handmatig, Traject en Leermodus

Handleiding, traject en leermodus
Handleiding, traject en leermodus
Handleiding, traject en leermodus
Handleiding, traject en leermodus
Handleiding, traject en leermodus
Handleiding, traject en leermodus

Handmatig

Voor deze modus hoef je alleen de mause in de interface te verplaatsen en de robot zal de aanwijzer van de interface volgen, je kunt dit programmeren in programmeren dat een geweldig platform is

Trajecten Voor dit model gebruiken we de bronnen van de inverse kinematica en maken de figuren op verzoek van de klant die een was: Rechte lijn Vierkant driehoek Cirkel De figuren kunnen op de interface worden getekend met de vormen die u wilt. Het traject gebruikt de inverse modus om elk punt van de lijnen van elk van de figuren te berekenen, zodat het gemakkelijk is om de figuren te volgen wanneer je op afspelen klikt nadat je de figuur hebt getekend die je als invoer in de interface hebt ingevoerd

Leermodus

De leermodus houdt rekening met alle andere modi die de handmatige, voorwaartse, inverse en trajecten zijn, zodat u elke gewenste beweging in de interface kunt maken en deze vervolgens kunt vervangen door dezelfde beweging als voorheen, maar langzaam als het reproduceert en probeert het meer te doen precies.

Stap 5: De code

De code
De code

Eigenlijk is de code nogal moeilijk uit te leggen, dus ik heb de code achtergelaten zodat je het kunt lezen. Als je er twijfels over hebt, kun je het in de opmerkingen stellen en ik zal het je uitleggen (ik zal deze stap bijwerken met een volledige uitleg van de code even geduld) voor het moment dat je me kunt e-mailen bij twijfel: [email protected]

Aanbevolen: