VIEWS: 2 PAGES: 18 POSTED ON: 12/12/2011
IAT 800 Braitenberg Vehicles Outline Braitenberg vehicles – Concept behind vehicles – Introduce several vehicles – Look through major code sections – Talk about possible project ideas Oct 31, Fall 2006 IAT 800 2 Braitenberg Vehicles Valentino Braitenberg – Vehicles: Experiments in Synthetic Psychology – Neuro-psychologist interested in how primitive neural structures can give rise to complex behavior – He developed a simple model of robots with sensors and motors to show how complex behavior can arise from simple mechanisms We're interested in his vehicles as a simple autonomous agent framework we can play with – Build ecosystems of interacting agents and sensory sources Oct 31, Fall 2006 IAT 800 3 Dr. B’s homepage: http://www.kyb.mpg.de/~braitenb Vehicle Sensory source Sensors Wires Wheel and motor Oct 31, Fall 2006 IAT 800 4 Vehicle 1 Sensors (light sensors) connected directly to motor on same side What will happen when light is to side? Directly in front? Oct 31, Fall 2006 IAT 800 5 Vehicle 1: Coward Charges source directly in front Steers away from source Rests in darkness Oct 31, Fall 2006 IAT 800 6 Vehicle 2 Sensors connected directly to motor on opposite side What will happen when light is to side? Directly in front? Oct 31, Fall 2006 IAT 800 7 Vehicle 2: Aggressive Sensors connected directly to motor on opposite side Charges source directly in front Rests in darkness Turns towards source and charges Oct 31, Fall 2006 IAT 800 8 Vehicle 3 Sensors connected through inverter to same side - What will happen when light is to side? - - Directly in front? - Oct 31, Fall 2006 IAT 800 9 Vehicle 3: Love Sensors connected through inverter to same side - - - Move toward source and rest - Turns towards source Moves in darkness and rests Oct 31, Fall 2006 IAT 800 10 Vehicle 4 Sensors connected through inverter to opposite side What will happen when light is to side? - - - - Directly in front? Oct 31, Fall 2006 IAT 800 11 Vehicle 4: Explorer Sensors connected through inverter to opposite side - - - - Rotates away (unless exactly on target) Turns away from source Moves in darkness Oct 31, Fall 2006 IAT 800 12 Classes in code (1) (4) Classes – Vehicle (1) • Includes logic for movement – Wheel (2) (3) (2) • The flapping things on the vehicle – Sensor (3) • The “eyes” on the vehicle – how much they glow indicates activation (+ inverter) – Source (4) • The light sources Vehicle draws itself, plus wheel and sensor Oct 31, Fall 2006 IAT 800 13 Vehicles All vehicles are currently vehicles of the same type – Initialized in setup() • Up/down arrow displays/hides vehicles – To create multiple types of vehicles, subclass Vehicle instead of commenting in and out different doSenseLogic() methods Draw() repeatedly calls move() and drawMe() methods on vehicle – To change the way the vehicle looks, change the drawMe() methods – move() contains call to doSenseLogic(), which contains the relationship between sensors and wheels Oct 31, Fall 2006 IAT 800 14 Ground The ground (background) is a PImage - different sources change the pixels of the ground This is the mechanism for summing different sources together – updateGround() sums light sources to produce background pixels Sensing takes place by asking the ground what the summed sense value is (rather than by directly asking the sources) Ground will need to be modified to handle multiple source types – Separate by color (r, g, b), but then can only have three – Better – lay multiple sensory grounds on top of each other • Transparency will make them all visible • Different sensor types will look at different grounds (sound, light sources, etc.) Instead of PImage, we will make a 2D array for ground instead (drawing optional => MUCH FASTER on slower machines!) Oct 31, Fall 2006 IAT 800 15 Sources The only source currently implemented is light sources – Strength determines brightness – Max_radius determines how far out influence extends Sources only draw the little circle in the middle – The light gradient around them is actually in the ground getReading() is used by ground to sample a light source (to determine how much a light source effects a given pixel) Oct 31, Fall 2006 IAT 800 16 Extensions Make vehicles also be sources (vehicles start following each other, are repelled by each other, etc.) Implement other sources (e.g. sound, smell…), other objects in the world Add more complex sensor response curves (everything we’ve looked at so far is linear) Add more interactions between different types of vehicles Oct 31, Fall 2006 IAT 800 17 Project ideas Braitenberg vehicles provide a simple framework for exploring autonomous behavior in computational ecosystems Text machines – autonomous words and letters Drawing machines – brush interacts with vehicles, spawns vehicles, vehicles interact with each other Ecosystem responds to data (sources represent web data, vehicles spawned in response to data, etc.) Miniature worlds – alien, aesthetically interesting worlds Oct 31, Fall 2006 IAT 800 18
"Expressive AI IAT 800 Braitenberg Vehicles"