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, yi verbindingen,hebben een gewicht, wji - netwerk heeft verschillende lagen: input laag, krijgt informatie van buitenaf output laag, krijgt informatie van input laag via verbindingen* - activatiefunctie: yj = yiwji * dit kan nog via meerdere hidden lagen verlopen Neurale netwerken: een overzicht output patroon 0.1 0.9 yk output laag yj = yiwji wkj yj hidden laag wji input laag input patroon yi 0.3 0.6 0.4 0.8 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? Vision-based robot motion planning 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! Vision-based robot motion planning 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) Outputlaag (k = 5) 1 2 3 4 5 d2 wkd Inputlaag (d = 2) 2 1 3 (0.6,0.4) Input 0.6 0.4 Outputactivatie: kt = (d1wt1+d2wt2+d3wt3+d4wt4) 4 5 d1 2D-PCM met 5 grid-nodes 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: ckl = 0, wanneer geen edge tussen k en l ckl = 1, wanneer wel edge tussen k en l In ons geval hebben connecties met waarde 1 ook een leeftijd N 1 2 3 4 1 X 1 (10) 1 (8) 1 (6) 0 2 1 (2) X 3 1 (12) 1 (3) X 4 1 (9) 0 5 0 1 (13) 0 5 1 1 (7) 3 1 (5) 1 (14) 1 (4) X 2 (0.6,0.4) 1 (9) 1 (1) 1 (5) 1 (15) X Connenctie-tabel met connectiewaarden (bold) en connectieleeftijd (italic) 4 5 d1 2D-PCM met 5 grid-nodes en verbindingen Vision-based robot motion planning Topology Representing Network (TRN) Leermethode: Hybride algoritme van neural-gas methode (nodes) en competitive Hebbian learning (edges). 1) gewichten (w1…wd) 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: wi(t+1) = wi (t) + (r,t)·(u - wi) waar: (r,t) = een functie die afneemt naarmate r en t toenemen - zet connectie ckl = 1 en leeftijdkl = 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 Een 2D voorbeeld a) Gewichten worden random tussen 0.45 en 0.55 ingesteld. B) Netwerk begint te leren: - gewichten worden aangepast - connecties worden aangemaakt C) Netwerk is volleerd en benaderd de PCM. 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 Tijd training: enkele minuten pathsearch: enkele seconden hertraining: tientallen seconden Robot setup 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?