robótica evolutiva - introducción a la robótica · pdf...

Click here to load reader

Post on 03-Sep-2019

4 views

Category:

Documents

0 download

Embed Size (px)

TRANSCRIPT

  • Robótica Evolutiva

    Introducción a la Robótica Inteligente

    Álvaro Gutiérrez 26 de abril de 2019

    [email protected]

    www.robolabo.etsit.upm.es

    N

  • Índice

    1 Robótica Evolutiva

    2 Un primer ejemplo

    3 IRSIM Obstáculos Luces Recolección

    4 Otros ejemplos

    5 Conclusiones

    N

  • 1 Robótica Evolutiva

    2 Un primer ejemplo

    3 IRSIM Obstáculos Luces Recolección

    4 Otros ejemplos

    5 Conclusiones

    N

  • Robótica Evolutiva

    I La Robótica Evolutiva (RE) es la generación de sistemas de control (y/o morfologías) para robots autónomos basados en el principio Darviniano de reproducción selectiva del más adecuado

    I Motivación: Es difícil diseñar sistemas autónomos usando técnicas ingenieriles porque la iteracción entre un robot autónomo y su entorno es compleja y difícil de predecir

    I En la robótica evolutiva definimos los componentes del sistema de control (sensores y actuadores) y un criterio de selección, y dejamos a la evolución artificial descubrir los individuos más adecuados mientras el robot interactúa con el entorno

    N

  • RE - Introducción

    N

  • RE - Red Neuronal

    S2 S3 S4 S5 S6 S8S7S1

    ijW

    M l M r

    N

  • RE - Codificación

    S2 S3 S4 S5 S6 S8S7S1

    ijW

    M l M r

    W W 12

    W 13

    W 14

    W 15

    W 16

    W 17

    W 18

    W 2111

    W 22

    W 23

    W 24

    W 25

    W 26

    W 27

    W 28

    N

  • RE - Metodología

    N

  • RE - Metodología

    N

  • RE - Operadores

    N

  • RE - Fitness

    N

  • 1 Robótica Evolutiva

    2 Un primer ejemplo

    3 IRSIM Obstáculos Luces Recolección

    4 Otros ejemplos

    5 Conclusiones

    N

  • Evitador de Obstáculos

    Automatic Creation of an Autonomous Agent: Genetic Evolution of a Neural Network Driven Robot (Floreano y Mondada, 1994)

    N

  • Evitador de Obstáculos

    I 8 Sensores de Infrarrojo I 2 Motores I Perceptrón I Neuronas: Sigmoide

    ni = ∑

    j

    ωjixi

    yi = 1

    1 + e−(ni−θi) I Cromosoma:

    I Pesos de la red I Sesgos

    S2 S3 S4 S5 S6 S8S7S1

    ijW

    M l M r

    N

  • Evitador de Obstáculos

    I 8 Sensores de Infrarrojo I 2 Motores I Perceptrón I Neuronas: Sigmoide

    ni = ∑

    j

    ωjixi

    yi = 1

    1 + e−(ni−θi) I Cromosoma:

    I Pesos de la red (16) I Sesgos (2)

    S2 S3 S4 S5 S6 S8S7S1

    ijW

    M l M r

    N

  • Evitador de Obstáculos

    I Función de Fitness

    I PROPUESTAS!!!! I Nolfi-Floreano: F = V(1−

    √ ∆v)(1− i)

    Wr,l ∈ [−0.5, 0.5] (Velocidad) V = |Wr|+ |Wl| (Máxima Velocidad) ∆v = |(Wr + 0.5)− (Wl + 0.5)| (Máximo Recto) i ∈ [0, 1] (Máximo IR)

    N

  • Evitador de Obstáculos

    I Función de Fitness

    I PROPUESTAS!!!!

    I Nolfi-Floreano: F = V(1− √

    ∆v)(1− i)

    Wr,l ∈ [−0.5, 0.5] (Velocidad) V = |Wr|+ |Wl| (Máxima Velocidad) ∆v = |(Wr + 0.5)− (Wl + 0.5)| (Máximo Recto) i ∈ [0, 1] (Máximo IR)

    N

  • Evitador de Obstáculos

    I Función de Fitness

    I PROPUESTAS!!!! I Nolfi-Floreano: F = V(1−

    √ ∆v)(1− i)

    Wr,l ∈ [−0.5, 0.5] (Velocidad) V = |Wr|+ |Wl| (Máxima Velocidad) ∆v = |(Wr + 0.5)− (Wl + 0.5)| (Máximo Recto) i ∈ [0, 1] (Máximo IR)

    N

  • Evitador de Obstáculos

    I 100 generaciones I 100 individuos I 100 seg. de evaluación I Mutación: pm = 0.05 I Crossover: pc = 1 I Elite: e = 5

    0 20 40 60 80 100

    0 .0

    0 .4

    0 .8

    1 .2

    Generations Evolution

    Generations

    F it n e s s

    Best Average

    Worst

    N

  • 1 Robótica Evolutiva

    2 Un primer ejemplo

    3 IRSIM Obstáculos Luces Recolección

    4 Otros ejemplos

    5 Conclusiones

    N

  • IRSIM

    ANN: Exp 21

    N 01 N 0 2 N

    0 3 N

    0 4

    N 11 N 1 210

    IR0 IR1 IR6 IR7

    VL VR

    I Identidad yi = xi I Sigmoide

    ni = ∑

    j

    ωjixi + Ii

    yi = 1

    1 + e−(ni−θi)

    CTRNN: Exp 24

    N 01 N 0 2 N

    0 3 N

    0 4

    N 11 N 1 210

    IR0 IR1 IR6 IR7

    VL VR

    I Identidad yi = xi I Sigmoide

    τiṅi = −ni + ∑

    j

    ωjixi + giIi

    yi = 1

    1 + e−βi(ni−θi) N

  • IRSIM

    ANN: Exp 21

    N 01 N 0 2 N

    0 3 N

    0 4

    N 11 N 1 210

    IR0 IR1 IR6 IR7

    VL VR

    I Parámetros Sigmoides: ω, θ

    CTRNN: Exp 24

    N 01 N 0 2 N

    0 3 N

    0 4

    N 11 N 1 210

    IR0 IR1 IR6 IR7

    VL VR

    I Parámetros Sigmoides: ω, g, θ, β, τ

    N

  • IRSIM

    ANN: Exp 21

    I experiments/testneuronexp.* I controllers/nndistributedcontroller.* I controllers/layercontroller.*

    CTRNN: Exp 24

    I experiments/ctrnnexp.* I controllers/ctrnndistributedcontroller.* I controllers/ctrnnlayercontroller.*

    N

  • IRSIM

    Fichero Configuración

    %%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%% MORPHOLOGY%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%% PROX. SENSORS (8 sensors: 0 OFF, 1 ON) = 1 1 0 0 0 0 1 1 CONTACT SENSORS (8 sensors: 0 OFF, 1 ON) = 1 1 1 1 1 1 1 1 LIGHT SENSORS (8 sensors: 0 OFF, 1 ON) = 1 1 1 1 1 1 1 1 BLUE LIGHT SENSORS (8 sensors: 0 OFF, 1 ON) = 1 1 1 1 1 1 1 1 RED LIGHT SENSORS (8 sensors: 0 OFF, 1 ON) = 1 1 1 1 1 1 1 1 GROUND SENSORS (3 sensors: 0 OFF, 1 ON) = 1 1 1

    N

  • IRSIM

    Fichero Configuración

    %%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%% GENETIC%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%% CHROMOSOME LENGTH = 10 POPULATION SIZE = 20 NUMBER OF GENERATIONS = 101 EVALUATION TIME = 100 DO CROSSOVER ( 0 No, 1 Yes ) = 1 NUMBER OF CROSSOVERS ( Always 1 ) = 1 CROSSOVER DISTANCE ( Always 1 ) = 1 MUTATION RATE = 0.02 NUMBER OF ELITES = 1 FITNESS FUNCTION = 1 SAMPLES PER CHORMOSOME = 1 RANDOM POS/ORIEN (0 NO, 1 YES) = 0 RANDOM INIT AREA X = 1.2 RANDOM INIT AREA Y = 1.2

    N

  • IRSIM

    Fichero Configuración

    %%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%% NEURAL%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%% WEIGTH UPPER BOUND = 5.0 WEIGTH LOWER BOUND = -5.0 NUMBER OF LAYERS= 2 SENSOR TO LAYER 0 ( NONE 0, C. 1, P. 2, L. 3, BAT. 4, GM 5, G 6, BL 7, RL 8, BBAT 9, RBAT 10) = 2 SENSOR TO LAYER 0 ( NONE 0, C. 1, P. 2, L. 3, BAT. 4, GM 5, G 6, BL 7, RL 8, BBAT 9, RBAT 10) = 0 ACTIVATION FUNCTION LAYER 0 ( 0 IDENTITY, 1 SIGMOID, 2 STEP, 3 LINEAR, 4 PROGRAM ) = 0 ACTIVATION FUNCTION LAYER 1 ( 0 IDENTITY, 1 SIGMOID, 2 STEP, 3 LINEAR, 4 PROGRAM ) = 1 NUMBER OF OUTPUTs LAYER 0 = 4 NUMBER OF OUTPUTs LAYER 1 = 2 RELATION LAYER 0 = 0 1 RELATION LAYER 1 = 0 0

    N

  • IRSIM

    ANN: Exp 21

    I Evolución I ./irsim -E 21 -p -e

    I Ejecución I ./irsim -E 21 -p -c

    CTRNN: Exp 24

    I Evolución I ./irsim -E 24 -p -e

    I Ejecución I ./irsim -E 24 -p -c

    N

  • IRSIM

    Datos

    I Evolución: I En el directorio geneticDatatFiles

    I bestX.log: El mejor individuo de la generación X I currentbest: El mejor individuo de todo el proceso I fitness.log: Histórico de la evolución de la fitness I generationX.log: Fichero con todos los individuos de la

    generación X I maxgeneration: La última generación ejecutada

    I Ejecución I En el directorio outputFiles

    I layerXoutput: Fichero con el tiempo, entradas sensoriales, pesos y salidas de cada capa

    I robotPosition: Fichero con el tiempo, coordenadaX, coordenadaY y Orientación del robot

    I robotWheels: Fichero con el tiempo, velocidad de la rueda izquierda y velocidad de la rueda derecha

    N

  • IRSIM

    Fitness

    I 0: None I 1: Avoid experiments

    I

    fitnessfunctions/avoidcollisionsfitnessfunction.* I 2: Garbage experiments

    I fitnessfunctions/garbagefitnessfunction.* I 4: VUESTRA FITNESS

    I fitnessfunctions/irifitnessfunction.* I 5: Light Experiments

    I fitnessfunctions/lightfitnessfunction.*

    N

  • IRSIM

    Varios

    I Reiniciar generación: Modificar variable g_bRestartEvolution. Reinicia la simulación desde la que indique el fichero maxgeneration

    I Tipo Mutación: I Aleatoria: En el fichero populations/standardgapopulation.cpp, lineas 302 y 327:

    I fGene = Random2::nextDouble(); I Gausiana sobre el valor del gen actual: En el fichero populations/standardgapopulation.cpp, lineas 302 y 327:

    I fGene = fGene + Random2::nextGaussian(0,0.1);

    N

  • 1 Robótica Evolutiva

    2 Un primer ejemplo

    3 IRSIM Obstáculos Luces Recolección

    4 Otros ejemplos

    5 Conclusiones

    N

  • Ejemplo evitación de obstáculos

    ANN: Exp 21

    N 01 N 0 2 N

    0 3 N

    0 4

    N 11 N 1 210

    IR0 IR1 IR6 IR7

    VL VR

    I Nolfi-Floreano: F = V(1−

    √ ∆v)(1− i)

    I Exp1: I Cromosoma:

    10 I