Prírodou inšpirované algoritmyštudijné materiály pre projekt mobilnej triedy umelej inteligencie |
||
Ovládanie senzorov
Existuje veľa prípadov, keď pohyb robota potrebujeme zmeniť podľa informácie od senzorov, ktoré snímajú okamžitý stav okolitého sveta.
Roboty sú štandardne vybavené jedným senzorom vzdialenosti. Tento meria vzdialenosť najbližšieho objektu priamo pred robotom a vyhodnotí ju ako reálne číslo v intervale 0-1.
Informácia o senzorickej výbave robota je uchovávaná v atribúte s názvom sensors.
pb_sensors ==> ** [0]
Táto informácia hovorí že, robot má jeden senzor umiestnený 0 stupňov od priameho smerovania.
pb_sensor_inputs ==> ** [0.388612] Senzorový lúč môžeme zobraziť zvýšením hodnoty premennej display_level prostredníctvom ovládacieho panela alebo: 3 -> pb_display_level; Roboty sa dajú vybaviť aj farebnými senzormi. Tieto môžu byť nakonfigurované tak, aby vnímali farbu najbližšieho objektu v senzorovom lúči. Príklad: [[10][10 col1][-10][-10 col1]] -> pb_sensors; Vstupný senzorový vektor robota bude obsahovať striedavo dve hodnoty vzdialenosti a dve hodnoty farieb. pb_sensor_inputs ==> ** [0.410506 0.008 0.348626 0.008] Pre zistenie hodnoty internej reprezentácie farby použijeme procedúru pb_colour_code pb_colour_code("red") ==> ** 0.043 Ak by sme chceli vytvoriť komplexné senzorické vnímanie okolitého sveta, stálo by to veľa písania. Život si môžeme uľahčiť použitím procedúry 'pb_make_sensors'. Táto vytvorí kruhové usporiadanie senzorov. Príklad: pb_make_sensors([[30][30 col1]],5,10) ==> ** [[30] [30 col1] [20] [20 col1] [10] [10 col1] [0] [0 col1] [-10] [-10 col1]] Druhý argument je počet senzorov, tretí je veľkosť uhla medzi dvoma susednými senzormi. |
||
Kontakt: Marek Bundzel |