Delprojekt 2: Inverskinematik och koordinatsystem
I delprojekt 2 ska varje grupp skapa ett system som kan:
- Styra gripklon på en robotarm till efterfrågad position på arbetsytan framför robotarmen genom att sätta lämpliga vinklar på lederna.
- Utifrån en kamerabild av arbetsytan tala om på vilka koordinater det finns legobitar.
- ”Plocka upp” legobitarna i lämplig (någorlunda snabb) ordning.
Delprojekt 2 görs i en för kursen utvecklad robotsimulator.
Robotsimulator
Tok-kortfattad instruktion
- Installera Blender (funkar extremt dåligt på Raspberry Pi — använd en annan dator). OBS: Det verkar vara poblem med v3.4 och senare, så använd v3.3 tillsvidare.
- Ladda ned robotsimulatorn och klientscriptet.
- Starta Blender från en terminal, för att kunna se eventuella felmeddelanden eller för att kunna se vad som skrivs ut med
print()
ellercapture()
. -
Öppna
robot.blend
i Blender, tryck på play-knappen i texteditorn. En text längst ner i mitten av Blender-fönstret kommer blinka att servern är igång. Det går inte att använda programmet till annat medan den kör. Vill man flytta till en ny vy i 3D-fönstret, så måste man stänga av den igen med ESC eller vänster musknapp. - Starta klienten separat, t.ex. från en annan terminal eller ett IDE på samma dator.
I 3D-fönstret
- Rotera med mitt-musknappen + drag.
- Panorera med skift + mitt-musknappen + drag.
- Zooma med scrollhjulet.
- Sätt kameran (för renderingen) till aktuell vy genom Ctrl+Alt+Num 0.
Om något slutar fungera, starta om Blender. (Enklast så.)
Tips för delprojekt 2
- Klientscriptet kommunicerar med robotarmen i Blender via en lokal nätverkssocket, som inte sällan i tysthet blockeras av brandväggar och antivirusprogram på Windows och Mac.
-
Ni kan använda
state()
från klientscriptet för att få ut gripklons position. Detta kan användas för att lista ut längderna på robotarmens olika leder! - Innan ni försöker lösa inverskinematiken (3D-position → vinklar), se till att ni först förstår framåtkinematiken (vinklar → 3D-position).
- Innan föreläsning 2 är det för svårt för er att använda bilder tagna annat än rakt ovanifrån, så börja med sådana.
- Legobitarna i robotsimulatorn kan behöva andra trösklingsintervall än de ni använde i projekt 1. Tappa inte bort värdena från projekt 1 — de behövs senare, i projekt 3!