Vision-based robot motion planning using a topology representing neural network Gebaseerd op onderzoek verricht door Prof. M. Zeller et al. (1997), verbonden aan het Beckman Institute for Advanced Science and Technology, University of Illonois. Allard Kamphuisen
Neurale netwerken: een overzicht - neuraal netwerk = statistisch rekenmodel - 2 componenten: neuronen, hebben een activatiewaarde, y i verbindingen,hebben een gewicht, w ji - netwerk heeft verschillende lagen: input laag, krijgt informatie van buitenaf output laag, krijgt informatie van input laag via verbindingen * - activatiefunctie: y j = y i w ji * dit kan nog via meerdere hidden lagen verlopen
Neurale netwerken: een overzicht input laag hidden laag output laag input patroon output patroon ykyk w kj w ji yjyj yiyi y j = y i w ji
Neurale netwerken: een overzicht Leren van neurale netwerken: - Voer de input van een datapunt in. * - Bereken de output. - Vergelijk netwerkoutput met gewenste output. - Pas gewichten lichtelijk aan om het verschil te verminderen. - Herhaal voor alle datapunten. * traindata = (input, output)
Neurale netwerken: een overzicht Voordelen: - goed omgaan met onzekerheid - zelfstandig leren (= generaliseren) Nadelen: - niet exact - netwerken kunnen erg complex worden geschikt voor vision based motion planning?
Vision-based robot motion planning Motivatie: - Workspace vaak onbekend waarneming cruciaal. - Interne representaties zijn duur gebruik de wereld. (“The world is its own best model.”) Probleem: Interne representaties nog steeds noodzakelijk. Hoe integreer en calibreer je de waarneming met deze representaties?
Zeller’s onderzoek: Integratie van waarneming in configuratieruimte - Perceptual Control Manifold (PCM) - Topology Representing Neural Networks - Diffusion-based search algorithm - Implementatie in robotarm Vision-based robot motion planning
De PCM ruimte: C-space = configuratieruimte S-space = sensorruimte PCM = CxS-space Voorbeelden S-space dimensies: * - toonhoogte - kleur - coördinaten van punt in een camera-image * S-dimensies kunnen het gevolg zijn van preprocessing.
Vision-based robot motion planning Opzet van 3-dof robotarm met 2 externe cameras - 3-dof robotarm met gripper en 2 externe cameras - C = (q1,q2,q3), S = (s1,s2,s3,s4) - S berekend m.b.v. preprocessing: (s1,s2) = (punt) positie gripper camera 1 (s3,s4) = (punt) positie gripper camera 2 - PCM = CxS = (q1,q2,q3,s1,s2,s3,s4)
Vision-based robot motion planning Voorbeeld PCM: Een 2-dof arm en een 3D-projectie in de PCM. De Perceptual Control Manifold werkt net als gewone C-space!
Topology Representing Network (TRN) Principe: - Grid-achtige benadering van PCM m.b.v. neurale netwerken. Neuraal netwerk: - inputlaag = dimensies (activatie = dimensiewaarde) - input = robotconfiguratie - outputlaag = nodes in grid (activatie = afstand tot robotconfiguratie) - gewichten = posities van nodes Edges = connecties tussen neuronen in outputlaag (in tabel) Leermethode: - Neural-gas vector quantization - Competitive Hebbian learning Vision-based robot motion planning
Topology Representing Network (TRN) Voorbeeld: 2-dimensionale PCM met 5 nodes: - inputlaag met 2 neuronen - outputlaag met 5 neuronen ( 5 nodes in grid) - 2 x 5 gewichten - robotconfiguratie = (0.6, 0.4) Inputlaag (d = 2) Outputlaag (k = 5) w kd Outputactivatie: k t = (d 1 w t1 +d 2 w t2 +d 3 w t3 +d 4 w t4 ) 2D-PCM met 5 grid-nodes d2 d1 (0.6,0.4) Input
Vision-based robot motion planning Topology Representing Network (TRN) Voorbeeld: 2-dimensionale PCM met 5 nodes: edges = waarden in tabel tussen neuronen k en l in outputlaag: c kl = 0, wanneer geen edge tussen k en l c kl = 1, wanneer wel edge tussen k en l In ons geval hebben connecties met waarde 1 ook een leeftijd 2D-PCM met 5 grid-nodes en verbindingen d1 (0.6,0.4) Connenctie-tabel met connectiewaarden (bold) en connectieleeftijd (italic)
Topology Representing Network (TRN) Leermethode: Hybride algoritme van neural-gas methode (nodes) en competitive Hebbian learning (edges). 1) gewichten (w 1 …w d ) van neuraal netwerk worden random ingesteld en alle connecties in de connectietabel op 0 gezet 2) for n random inputpatronen u (= robotconfiguraties) do - bepaal rank r van elk outputneuron gebaseerd op aktivatie (0 = aktiefst, 1 = daarna aktiefst, …, k = minst aktief) - pas gewichten aan: w i (t+1) = w i (t) + (r,t)·(u - w i ) waar: (r,t) = een functie die afneemt naarmate r en t toenemen - zet connectie c kl = 1 en leeftijd kl = 1 waar: k is neuron met r = 0, l is neuron met r = 1 - incrementeer leeftijd van alle connecties met 1 - zet connectiewaarde op 0 voor alle connecties met een leeftijd boven een bepaalde threshold Vision-based robot motion planning
a) Gewichten worden random tussen 0.45 en 0.55 ingesteld. Een 2D voorbeeld B) Netwerk begint te leren: - gewichten worden aangepast - connecties worden aangemaakt C) Netwerk is volleerd en benaderd de PCM. Vision-based robot motion planning calibreren waarneming = gewichten aanpassen
Vision-based robot motion planning PCM obstakel = TRN gebied zonder connecties Motion planning = pathsearch door TRN (diffusion based) Figuur: free space = gebied met connecties obstakel space = gebied zonder connecties motion plan = witgekleurde neuronen
Vision-based robot motion planning Toepassing: robotarm (SoftArm) - 3 dof: C-space = (q1, q2, q3) - 2 externe cameras die na preprocessing 4 dimensies opleveren (puntpositie gripper): S-space = (s1, s2, s3, s4) - PCM = (q1, q2, q3, s1, s2, s3, s4) - grid met 750 nodes - 1 rechthoekig obstakel - traindata: 5000 random robotconfiguraties TRN: 7 input neuronen 750 hidden neuronen 3 output neuronen * * output stuurt pneumatische arm: 1 neuron per joint (neuron aktivatie = hydraulische druk)
Vision-based robot motion planning Deel van getrainde TRN met motion plan Robot setup Tijd training: enkele minuten pathsearch: enkele seconden hertraining: tientallen seconden
Vision-based robot motion planning Uitvoering motion plan
Vision-based robot motion planning Nadelen: - Motion plan voor gripper; niet voor arm - Nauwe doorgangen kunnen worden overgeslagen - Smalle objecten kunnen over het hoofd gezien worden (andere connectie-genereer methode?) Mogelijke verbeteringen en uitbreidingen: - Motion plan ook voor gripper - Meer hidden neuronen: smoothere planning - Meer input en output neuronen: meer sensoren en/of dof - Real-time motion planning (aktieve update connectietabel?) - eye-in-hand cameras
Vragen?