Pointillistisk målning robotarm (9 / 15 steg)
Steg 9: Två dimensionell framåt kinematik
För att göra roboten måla på duk, måste vi ta reda på hur man gör flytta på ett godtagbart sätt, som, sträcker armen så att penselspetsen är varken för långt bort eller försöker nå genom duken. Vi flytta armen genom att skicka pulser (som motsvarar vinklar) till motorerna, men vilka vinklar väljer vi och hur vet vi var arm och pensel är? Dessa frågor leda oss in i den fascinerande världen av kinematik. Enligt den entiteten allvetande webb Wikipedia:
Kinematik är grenen av klassisk mekanik som beskriver rörelse i punkter, system för organ (grupper av objekt) utan hänsyn till orsakerna till rörelse och organ (objekt).
Nu finns det två typer av kinematik: omvänd och framåt. Omvänd kinematik är den mer användbar för två som det tillåter oss att ha en given punkt, och sedan bestämma rörelse av en kropp (bara arm i detta fall) krävs för att nå denna punkt. Enkel, rätt? Tyvärr inte. Det kan finnas många eller inga lösningar på ett givet problem för någon given inverse kinematic (IK) ekvation, och komplexiteten i ekvationen ökar en hel del med varje extra grad av frihet får till systemet. Lösa IK ekvationer kräver en stark kunskap om linjär algebra och det finns flera olika sätt att genomföra matte också. Detta är lite överväldigande, så vi kommer hålla oss till den mer tilltalande framåt kinematisk strategin. Framåt kinematik tillåter oss att bestämma positionen för punkter i kroppen i rymden, med tanke på att placera enskilda lederna. Eftersom vi kan definiera motorerna kantiga ställning, kan vi bestämma var i 3D-rymden är spetsen på borsten.
Trigonometri tid!
En annan fördel med FK är vi behöver bara en god förståelse för trigonometri att lösa ekvationer. Innan hopp i full 3D rymden, låt oss se bestämma positionen för en enda punkt, med tanke på en enda kantiga ingång. Till att börja, låt oss dra en punkt A på XY beskärningen (0, 0). Punkt A representerar axeln av rotation för motor A (axeln). Fjäderben som sträcker sig från motor A till den axeln av motor B är fasta längder, kallar vi denna linjesegment L1. Så hur ska vi hitta platsen för punkt B, med tanke på den vinkel thetaA? Använda L1 som radien på en cirkel om punkt A, kan vi hitta den kartesiska koordinater i punkt B med (X är lika med L1 x cos(thetaA) och Y lika med L1 x sin(thetaY). Vi vill arbeta i Cartesian koordinerat rymden eftersom duken är i slutändan ett visst antal poäng på ett plan. Med tanke på punkt B och thetaB, kan vi nu hitta punkten C. Som X-värde i punkt C, vi multiplicera L2 med cosinus för (thetaA + thetaB) och sedan lägga till det här värdet till X-värde i punkt B. Som Y-värde i punkt C, ska vi multiplicera L2 med sine (thetaA + thetaB) och sedan ad detta till ett Y värde av punkt B. Detta mönster sträcker sig för att hitta punkt D (tipset av borsten), ekvationen för att hitta som visas i figuren tredje.
Den slutliga bilden som du ser ovan är den största delen av mina anteckningar samtidigt räkna detta ut. Det finns många artiklar om kinematik online, men dessa hoppa ofta direkt in i fysik och mer komplicerade förklaringar för beräkning av dessa data. Vi gör en konstnärlig robot, inte en exakt monteringslinje arbete-bot, så låt oss hålla det enkelt!