Stap 9: Twee dimensionale voorwaartse kinematica
Om de robot verf op het doek, moet wij om erachter te komen hoe maak je verplaatsen op een aanvaardbare manier, dat is, uit te breiden van de arm zodanig dat het penseeluiteinde is niet te ver weg, noch proberen te bereiken door middel van het doek. We verplaatsen de arm door het verzenden van pulsen (die overeenkomen met hoeken) naar de motoren, maar welke hoeken we kiezen en hoe weten we waar de arm en de borstel zijn? Deze vragen leiden tot de fascinerende wereld van kinematica. Volgens de de alwetende web entiteit Wikipedia:
Kinematica is de tak van de klassieke mechanica die de motie van punten, organen (objecten) en systemen van organen (groepen van objecten) zonder overweging van de oorzaken van de beweging beschrijft.
Nu zijn er twee soorten kinematica: inverse en vooruit. Inverse kinematica is het nuttiger voor twee als het stelt ons in staat om een bepaald punt, en vervolgens bepalen beweging van een lichaam (gewoon de arm in dit geval) nodig om te bereiken dat punt. Eenvoudig, juist? Helaas niet. Voor elk gegeven inverse kinematic (IK) vergelijking, kan er veel of geen oplossingen voor een bepaald probleem en de complexiteit van de vergelijking nogal wat toeneemt met elke extra vrijheidsgraad gegeven aan het systeem. IK vergelijkingen op te lossen vereist een sterke kennis van de lineaire algebra en er zijn verschillende manieren om de wiskunde te implementeren. Dit is een beetje overweldigend, dus we aan de beter verteerbaar voorwaartse kinematische aanpak vasthouden zullen. Voorwaartse bewegingen kan we bepalen de positie van de punten van het lichaam in de ruimte, gegeven aan de positie van de individuele gewrichten. Aangezien de hoekige positie van de motoren we definiëren kunnen, kunnen we bepalen waar in 3D-ruimte is de tip van het penseel.
Trigonometrie tijd!
Een ander voordeel van FK is moeten we alleen een goed begrip van de trigonometrie op te lossen de vergelijkingen. Voordat springen in volledige 3D-ruimte, laten we eens kijken bij het bepalen van de positie van een enkel punt, een enkele hoekige input gegeven. Om te beginnen, laten we trekken een punt A in de XY-oorsprong (0, 0). Punt A vertegenwoordigt de as van rotatie voor motor A (de schouder). De bok, die zich uitstrekt van motor A aan de de schacht van motor B is een vaste lengte, noemen we dit lijnsegment L1. Dus hoe vinden we de locatie van punt B, gegeven de hoek thetaA? Met behulp van L1 als de straal van een cirkel over punt A, vinden we de Cartesische coördinaten van punt B met (X gelijk is aan L1 x cos(thetaA) en Y gelijk aan L1 x sin(thetaY). We zullen willen werken in cartesische coördinaten ruimte omdat het doek uiteindelijk een bepaald aantal punten op een vliegtuig is. Gezien punt B en tabvolgorde, nu vinden we punt C. Voor de X-waarde van punt C, we L2 te vermenigvuldigen met de cosinus van (thetaA + tabvolgorde) en vervolgens deze waarde toevoegen aan de X-waarde van punt B. Voor de Y-waarde van punt C, zullen we vermenigvuldigen L2 door de sinus van (thetaA + tabvolgorde) en vervolgens ad dit aan de Y-waarde van punt B. Dit patroon wordt uitgebreid om te zoeken naar punt D (het uiteinde van het penseel), de vergelijking van het vinden van die in de derde grafiek wordt weergegeven.
De uiteindelijke afbeelding die u hierboven ziet is het grootste deel van mijn notities terwijl het beeldje zulks uiterlijk. Er zijn veel artikelen over kinematica online, echter deze vaak springen meteen in natuurkunde en complexere uitleg voor de berekening van deze gegevens. We maken een artistieke robot, niet een precieze assemblagelijn werk-bot, dus laten we dit eenvoudig houden!