Braitenberg-en ibilgailuak

1984. urtean, Valentino Braitenberg neurozientzialariak (1926-), Max Planck Institute for Biological Cybernetics erakundeko zuzendari zelarik, liburu labur bezain interesgarria argitaratu zuen: Vehicles: Experiments in Synthetic Psychology. Bertan, ingurunearekin elkarrekintzan diharduten sistemei buruz pentsarazten digu Braitenberg-ek. Erakutsi nahi duena zera da, portaera sinpleetatik abiatuta irits litekeela portaera konplexuagoetara, adimenduntzat onar genitzakeenetara, ingurune konplexuekin harremanetan jartzean.

Bere ideiak ilustratzeko, Braitenberg-ek izaki itxurako ibilgailuak aurkezten ditu, gradualki konplexutasun mailan irabazten doazenak, baina guztiak ere osagai mekaniko eta elektriko sinplez eginak. Ibilgailu horietako bakoitzak portaera adimendun bat imitatzen du, eta imitatzen duen portaeraren izena hartu. Azpimarragarria da ez zituela ibilgailu hauek eraiki, aitzitik, diseinatu eta haien portaera idatziz deskribatzera mugatu zen.

Braitenberg-ek erakusten duena zera da: oinarrizko mekanismoekin eraikiak izan arren, ibilgailuak portaera konplexuak erakusteko gai direla, kanpoko begirale batek portaera adimendun gisa deskribatuko lituzkeen portaerak, hain zuzen ere: lotsa, beldurra, erakarpena, zalantza. . . Bere ideiak eztabaida-iturri izan diren arren, ezin ukatuzkoa da Adimen Artifizialaren oinarrizko ikerketan izan duen eragina.

LEGO robotak erabiliz, ibilgailurik sinpleenetakoa inplementatuko dugu: 2 argi-sentsore eta 2 motor dauzkan ibilgailua. Sentsore eta motorren arteko lotura gurutzatua da, hau da, ezkerreko argi-sentsorea eskuineko motorrarekin konektatua dago, eta  eskuineko sentsorea aldiz ezkerreko motorrarekin

Nolakoa ote da ibilgailu honen portaera?

braitenberg-illust

Hona braitenberg.nxc programa:

// Braitenberg-2a.nxc
//
// 1 sentsorea eta A motorra robotaren ezker aldean
// 4 sentsorea eta C motorra robotaren eskuin aldean

// ALDAKETA INTERESGARRIA: INGURUNEKO ARGIA NEURTU ETA 
// HORTIK ABIATZEN DEN PROGRAMA

#define EZK_ARGI S1
#define ESK_ARGI S4
#define EZK_MOTOR OUT_A
#define ESK_MOTOR OUT_C

task main()
{

  // Sentsoreen irakurketak
  int eskuinArgia;
  int ezkerArgia;

  // Eskuinaldeko argi sentsoreanhasieratu
  SetSensorType(EZK_ARGI, SENSOR_TYPE_LIGHT_INACTIVE);
  SetSensorMode(EZK_ARGI, SENSOR_MODE_PERCENT);
  ResetSensor(EZK_ARGI);

  // Ezkerraldeko argi sentsorea hasieratu
  SetSensorType(ESK_ARGI, SENSOR_TYPE_LIGHT_INACTIVE);
  SetSensorMode(ESK_ARGI, SENSOR_MODE_PERCENT);
  ResetSensor(ESK_ARGI);

  while(true){
    // argi sentsoreak irakurri
    eskuinArgia = Sensor(ESK_ARGI);
    ezkerArgia = Sensor(EZK_ARGI);

    // Robota mugiarazi
    OnFwd(ESK_MOTOR, eskuinArgia);
    OnFwd(EZK_MOTOR, ezkerArgia);
  }

}

 

Utzi erantzuna

Zure e-posta helbidea ez da argitaratuko. Beharrezko eremuak * markatuta daude