På hur många sätt kan det röra sig?
Frihetsgrader: Geometrin för rörelse
En frihetsgrad (DOF) är ett oberoende sätt ett föremål kan röra sig på. Att förstå frihetsgrader är det första steget för att förstå hur robotar interagerar med rummet.
Position i 3D-rum kräver 3 frihetsgrader: x (vänster/höger), y (framåt/bakåt), z (upp/ner). En punkt i rummet har 3 frihetsgrader.
Orientering lägger till 3 till: roll (rotation kring framåtaxeln), pitch (rotation kring sidaxeln), yaw (rotation kring den vertikala axeln). En stel kropp i rummet har 6 frihetsgrader: 3 position + 3 orientering.
Robotarmar & frihetsgrader:
- En 6-axlig artikulerad arm (som en industrirobot) har 6 leder, var och en lägger till 1 frihetsgrad. Med 6 frihetsgrader kan sluteffektorn nå vilken position och orientering som helst inom arbetsvolymen: den har full rumslig frihet.
- En 4-axlig SCARA-robot har 4 frihetsgrader: den kan positionera sig överallt i ett plan och rotera, men kan inte luta sitt verktyg. Bra för plocka-och-placera på plana ytor.
- En 3-axlig kartesisk/portalrobot har 3 frihetsgrader: den kan positionera sig överallt i en lådformad volym men kan inte orientera sitt verktyg alls. Bra för 3D-skrivare.
Mer än 6 frihetsgrader: En 7-axlig robot är redundant: den har fler frihetsgrader än vad som behövs för fullständig rumslig positionering. De extra frihetsgraderna låter den nå runt omkring hinder, som en mänsklig arm som når bakom något. Redundans är en geometrisk fördel.
Frihetsgrader & uppgiftskrav
En fabrik behöver en robot för tre olika uppgifter: (A) applicering av lim längs en 3D-krökt väg på en bilkarosseriepanel, (B) plocka chips från ett transportband & placera dem på ett plant kretskort, & (C) svetsa en komplex 3D-fog från flera vinklar.
Två riktningar för robotgeometri
Kinematik: Geometri i rörelse
Kinematik är studiet av rörelse utan att beakta krafter. Inom robotik är det ren geometri: förhållandet mellan ledvinklar och sluteffektorns position.
Framåtkinematik (FK): Given alla ledvinklar → beräkna sluteffektorns position & orientering. Det är den "lätta" riktningen.
För en 2-länkad plan arm: om led 1 är i vinkel θ₁ & led 2 är i vinkel θ₂, med länklängder L₁ & L₂, är sluteffektorn vid:
- x = L₁ cos(θ₁) + L₂ cos(θ₁ + θ₂)
- y = L₁ sin(θ₁) + L₂ sin(θ₁ + θ₂)
För en 6-axlig arm använder FK en kedja av homogena transformationsmatriser: varje led bidrar med en 4×4-matris som kodar rotation & translation. Multiplicera alla sex matriser tillsammans för att få sluteffektorns ställning. Det är mekaniskt men ger alltid ett unikt svar.
Inversa kinematik (IK): Given en önskad sluteffektorposition & orientering → beräkna de ledvinklar som uppnår det. Det är den "svåra" riktningen.
IK är svårt för att:
- Flera lösningar: En 6-axlig arm kan ofta nå samma punkt i flera konfigurationer (armbåge upp vs. armbåge ner, vrist vänd vs. inte vänd). Det kan finnas 8 eller fler giltiga lösningar.
- Ingen lösning: Om målet ligger utanför arbetsvolymen, fungerar ingen ledvinkelkombination.
- Singulariteter: Vid vissa ställningar, två ledaxlar stämmer överens och roboten förlorar en frihetsgrad: som gimbalkålla. Nära singulariteter kräver små kartesiska rörelser enorma ledhastigheter.
Inversa kinematik: Varför är det svårt?
Betrakta en enkel 2-länkad plan arm med L₁ = L₂ = 1 meter. Sluteffektorn behöver nå punkten (1.0, 1.0).
Avståndet från basen till målet är sqrt(1² + 1²) = sqrt(2) ≈ 1.414 m. Eftersom L₁ + L₂ = 2 m > 1.414 m är punkten nåbar.
Form av nåbarhet
Arbetsvolym: Den geometriska volymen en robot kan nå
Arbetsvolymen är uppsättningen av alla punkter sluteffektorn kan nå. Dess form beror helt & helt på robotens geometri.
Artikulerad arm (6-axlig): Arbetsvolymen är ungefär en ihålig sfär. Den yttre gränsen är vid maximal räckvidd (alla länkar utsträckta). Den inre gränsen existerar för att armen inte kan vika tillbaka på sig själv tillräckligt för att nå punkter för nära basen. Tvärsnitt ser ut som en munk (torus).
SCARA: Arbetsvolymen är en cylinder. Armen sveper horisontellt (genererar ett cirkulärt tvärsnitt) & Z-axeln rör sig vertikalt. Resultatet är en platt cylindrisk volym: bred räckvidd horisontellt, begränsad vertikalt.
Kartesisk/portalrobot: Arbetsvolymen är en rektangulär låda. Varje axel rör sig linjärt längs en dimension. Enkelt, förutsägbart, lätt att programmera: men skrymmande för att roboten måste vara så stor som arbetsvolymen.
Singulariteter i arbetsvolymen: Vid vissa ställningar förlorar roboten en frihetsgrad. En helt utsträckt artikulerad arm (vid den yttre gränsen av arbetsvolymen) är i en singularitet: den kan inte flytta sluteffektorn längre utåt. Vrist-singulariteter uppstår när två vristledaxlar stämmer överens. Vid en singularitet förlorar Jacobi-matrisen rang, & robotens effektiva frihetsgrad minskar tillfälligt.
Skicklig arbetsvolym vs. nåbar arbetsvolym: Den nåbara arbetsvolymen är där sluteffektorn kan nå i minst en orientering. Den skickliga arbetsvolymen är där den kan uppnå vilken godtycklig orientering som helst. Den skickliga arbetsvolymen är alltid en delmängd av den nåbara arbetsvolymen: och ofta mycket mindre.
Välja en robot efter arbetsvolym
En fabrikscell har tre stationer arrangerade i L-form. Station A är till vänster, Station B är direkt framåt, Station C är till höger & något höjd (300 mm högre). Roboten måste plocka delar från A, utföra en operation vid B, & placera färdiga delar vid C: allt från en enda monteringsposition.
Konfigurationsrymd: Robotens abstrakta geometri
Konfigurationsrymd: Där rörelseplanering lever
Konfigurationsrymd (C-space) är en av de mest kraftfulla geometriska abstraktionerna inom robotik. Istället för att tänka på robotens fysiska form representerar du hela dess tillstånd som en enda punkt i ett N-dimensionellt utrymme.
För en robot med N leder har C-space N dimensioner: en axel per ledvinkel. Varje möjlig pose av roboten är en enda punkt i C-space. En rörelse (sekvens av poser) är en kurva genom C-space.
Hinder i C-space: Ett fysiskt hinder i den verkliga världen blir en förbjuden region i C-space. Om man placerar roboten vid ledvinklar (θ₁, θ₂, ..., θN) skulle orsaka en kollision, den punkten är inne i ett C-space-hinder. Formen på C-space-hinder är komplex: en enkel låda i den verkliga världen blir en konstigt formad region i C-space.
Banplanering = att hitta en kollisionsfri kurva: Given en startkonfiguration (punkt i C-space) & en målkonfiguration (en annan punkt), hitta en kontinuerlig kurva som förbinder dem utan att gå in i någon förbjuden region.
Algoritmer:
- A* (gridbaserad): Diskretisera C-space i ett rutnät, sök efter kortaste väg. Fungerar väl i låga dimensioner (2-3 frihetsgrader) men gridstorlek växer exponentiellt med dimension.
- RRT (Rapidly-Exploring Random Tree): Bygga ett träd av slumpmässiga sampel i C-space, växande mot outforskade regioner. Fungerar i höga dimensioner (6+ frihetsgrader). Inte optimal men snabb vid att hitta genomförbara vägar.
- PRM (Probabilistic Roadmap): Pre-compute en graf av slumpmässiga kollisionsfria konfigurationer, sök sedan i grafen. Bra för upprepade frågor i samma miljö.
Den geometriska insikten: en 6-frihetsgradrobots banplaneringsproblem är ett problem att hitta en kurva genom 6D-rymden. Dimensionaliteten gör exakta lösningar omöjlig: probabilistiska metoder (RRT, PRM) är den praktiska metoden.
Tänkande i konfigurationsrymd
En 2-länkad plan arm (2 frihetsgrader) opererar i ett rum med ett enda rektangulärt hinder. Led 1 sträcker sig från 0° till 360°, led 2 sträcker sig från 0° till 360°. Konfigurationsrymden är en 2D-kvadrat: θ₁ på en axel, θ₂ på den andra.