Op 8 augustus 2016 17:38:11 schreef GJ_:
Ah, we hebben het over verschillende dingen. Een beetje ascontroller heeft een update rate van maximaal 2ms om een beetje een nette beweging te kunnen maken.
Misschien ben ik een beetje eigenwijs. Maar ik denk dat de "grote spelers" dat ook zijn. En dus eea "botte bijl" oplossen waar dat niet nodig is. Dingen in de echte wereld zijn inherent "glad". Een tweedegraads benadering voor b.v. een cirkel ziet er al aardig uit. Een derdegraads benadering helemaal. (een cirkel is tweedegraads, maar ik bedoel: x(t) = fx(t), y(t)= fy(t). )
Stel ik heb een vereenvoudigde robot. Twee assen. De eerste arm is 5 lang, de tweede vier. Nu kan ik alle punten bereiken die buiten cirkel straal 1 en binnen cirkel straal negen liggen.
Als we nu alpha de hoek van de eerste arm noemen, en beta de hoek van de tweede arm (t.o.v. het assenstelsel. In werkelijkheid zal je de motor op beta-alpha moeten instellen of zo (tenzij je een constructie hebt met een overbrenging waardoor 1) de motor niet op het bewegende deel zit, en 2) de beta gewoon direct naar de motor gestuurd kan worden).
Eindpunt van de eerste arm is dan ep1 = (5 . sin (alpha), 5 . sin (alpha))
Eindpunt van de tweede arm is dan ep2= ep1+ (5 . sin (beta), 5 . sin (beta))
Stel ik wil nu in 2s van (-8.5,2) naar (8.5,2).
Dan moet ik dus eerst alpha en beta bepalen op een aantal punten op de gewenste rechte lijn. Ik zeg dat als je voor alpha en beta derdemachts functies van t neemt die in vier segmenten deze beweging van de armen voorschrijven, je een heel redelijke benadering krijgt van een rechte lijn.
Ik heb nu even geen zin in de rest van de wiskunde om het helemaal door te rekenen.
Let wel: Ik heb niet gezegd dat de arduino al die sinussen en zo kan uitrekenen, wel dat ie ze kan uitvoeren.