LCC 6310 Computation as an Expressive Medium Lecture 11.

Slides:



Advertisements
Similar presentations
Getting started with LEGO NXT Mindstorms software This is intended to be a short introduction to the LEGO Mindstorms software and programming the LEGO.
Advertisements

Robots Introduction Based on the lecture by Dr. Hadi Moradi University of Southern California.
Adaptive behavior in autonomous individuals Michael Vigorito Department of Psychology.
FIK2, FIR1 & FIR2. FIK2- What is an electromagnet? Electromagnets are magnets that have their magnetic field produced by electric current. The magnetic.
Visual Design Principles The recipe to creating good graphic content!
Building Line Following and Food Following Robots.
IAT 800 Braitenberg Vehicles. Oct 31, Fall 2006IAT 8002 Outline  Braitenberg vehicles –Concept behind vehicles –Introduce several vehicles –Look through.
Analysis vs. Design When you take a test in your math or physics course, there is one and only one answer! When you do a goal-driven design there may be:
The four basic principles of design
Summer 2011 Wednesday, 8/3. Biological Approaches to Understanding the Mind Connectionism is not the only approach to understanding the mind that draws.
Intro to Robots Insect Behaviours. Intro to Robots Designing Robot Behaviours Designing robot behaviours requires more imagination than knowledge. You.
Jennifer Goodall, Nick Webb, Katy DeCorah
LEGO Mindstorms NXT Programming We will be using the Common Palette for our Robots This is how you download your program onto the brick Drag and drop a.
Basic Robot Design. 3 Steps Design Build Program Drawing and thinking of ideas Using your design to make a robot Telling your robot what to do.
Exploration Discovery Sensor. What are your Senses? Draw yourself and label each of your “senses” Senses are parts of you that interact with what is around.
NCTM Conference April  Domain: Operations & Algebraic ThinkingOperations & Algebraic Thinking  K.OA.3  Decompose numbers less than or equal to.
By Joe Jodoin The Human Eye. Parts of the eye There are lots of parts of the eye so EYE will only talk about the main parts. Those parts are the cornea,
Sensor-Actuator Networks (Braitenburg Vehicles) “Experiments in Synthetic Psychology” OR Steps toward “[really] artifical life” Norm Badler Steve Lane.
SNAP CIRCUITS INSTRUCTIONS 1.Make sure ALL parts are in place before beginning 2.Follow the Projects in order, starting with #1 3.The BLACK numbers show.
What is RobotC?!?! Team 2425 Hydra. Overview What is RobotC What is RobotC used for What you need to program a robot How a robot program works Framework.
INF1090 Part Deux Photography- Photomanipulation.
By: Mariah Frink. I picked this picture because I love the brightness and contrast between the clouds and sky, against the green fields, flowers, driveway,
CS206Evolutionary Robotics “Cogito ergo sum.”. CS206Evolutionary Robotics “Cogito ergo sum.” “I think, therefore I am.” “Do I exist?” “There is something.
Artificial Intelligence Chapter 2 Stimulus-Response Agents
GIRLS Robotic Camp. Let’s Begin Meet and Greet – Camp leaders introduce themselves – Students introduce themselves.
Adapted for STLP Camp ‘09 Mobile Robots Why do robots need to move?
Why do robots need to move?
Computation as an Expressive Medium Lab 10½: Looking through the Braitenberg Vehicle code Jason Alderman.
Math Basics & Diagrams Foundations of Algebra Unit 1 Lesson 1.
The George Washington University Department of ECE ECE Intro: Electrical & Computer Engineering Dr. S. Ahmadi Class 3.
Creating Good Presentations. Planning a Presentation (Remember all the things you learned in speech class) PowerPoint as a Visual Aid (Remember all the.
ROBOTICS VOCAB AND FLOWCHARTING. ROBOTICS VOCABULARY Robot- a machine capable of carrying out a complex series of actions automatically, especially one.
LabVIEW Basics Review LabVIEW Robotics Fundamentals.
EEL 5666: Intelligent Machine Design Laboratory Final Presentation by Rob Hamersma April 12, 2005.
Media Aesthetics Contextualism in Applied Media Aesthetics.
2 3  A machine  Built to help us  Autonomous (not remote control)  If we want robots to do things for us, we have.
PowerPoint Basics Tutorial 3: Graphics In this tutorial we’ll be looking at graphics, and the various types of illustrations that can be included in a.
The George Washington University Department of ECE ECE 1010 Intro: Electrical & Computer Engineering –Introducing KIPR Link/Interface and Set-up –Continuation.
Inheritance Building one object from another. Background Object-oriented programming is normally described has offering three capabilities Encapsulation:
University of Windsor School of Computer Science Topics in Artificial Intelligence Fall 2008 Sept 11, 2008.
Negative Power or Negative Rotation makes robot go backwards. But if both are negative, the robot will go forward! Move Steering Block.
PowerPoint Basics Tutorial 3: Graphics In this tutorial we’ll be looking at graphics, and the various types of illustrations that can be included in a.
Braitenberg Vehicles. A little history… Valentino Braitenberg (born 1926) is a cyberneticist and former director at the Max Planck Institute for Biological.
Design Studies 20 ‘Show Off’ Project How to make a computer monitor In Google Sketchup By: Liam Jack.
1 Math CAMPPP 2011 Plenary Three Multiple Representations Fostering Student Conjectures Linking Important Math, Expectations, Learning Goals and Tasks.
ELECTROMAGNETIS M LECTURE#04 Instructor: Muhammad Mateen Yaqoob.
Braitenberg Vehicles. A little history… Valentino Braitenberg (born 1926) is a cyberneticist and former director at the Max Planck Institute for Biological.
CHAPTER 14 Classes, Objects, and Games XNA Game Studio 4.0.
1 RoboticsPresents KaaShiv InfoTech For Inplant Training / Internship, please download the "Inplant training registration form" from our website
Dr Nick Mitchell (Room CM 224)
Project Overview  Introduction  Frame Build  Motion  Power  Control  Sensors  Advanced Sensors  Open design challenges  Project evaluation.
1 RoboticsPresents KaaShiv InfoTech For Inplant Training / Internship, please download the "Inplant training registration form" from our website
BEGINNER FLL PROGRAMMING WORKSHOP BY DROIDS ROBOTICS & EV3LESSONS.
Introduction to Computer Science – Chapter 6 CSc 2010 Spring 2011 Marco Valero.
Casne.ncl.ac.uk Taking care of the CrumbleBot Please do NOT stress the robot's motors 1.Do NOT push the robot 2.Do NOT hold the.
1 Pertemuan 08 Using Strokes and Fills Matakuliah: U0344 / DESKTOP 1 Tahun: 2006.
Engineering Notebook - Part 4 Tumbler Research Section Overview of Build Lesson 1 Basic Vocabulary Motors / Batteries Name: Per #:
VEX IQ Curriculum Smart Machines Lesson 09 Lesson Materials:
Understanding Communication with a Robot? Activity (60 minutes)
Flash Interface, Commands and Functions
Braitenberg’s Vehicles
Braitenberg’s Vehicles
CISC 1003 Exploring Robotics
Building Line Following and Food Following Robots
Presented by Angel Nunez IDML Spring 2008 Dr. Arroyo Dr. Schwartz
Exploring Computer Science Lesson 6-5
Artificial Intelligence Chapter 2 Stimulus-Response Agents
Frida Kahlo Levels.
Lego MINDSTORMS EV3.
Getting started with LEGO EV3 Mindstorms software
Presentation transcript:

LCC 6310 Computation as an Expressive Medium Lecture 11

Outline Braitenberg vehicles Braitenberg vehicles Concept behind vehicles Introduce several vehicles Look through major code sections Talk about possible project ideas

Braitenberg Vehicles Valentino Braitenberg 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 We're interested in his vehicles as a simple autonomous agent framework we can play with Build ecosystems of interacting agents and sensory sources Dr. B’s homepage:

Vehicle Sensors Wheel and motor Wires Sensory source

Vehicle 1 Sensors (light sensors) connected directly to motor on same side What will happen when light is to side? Directly in front?

Vehicle 1: Coward Steers away from source Charges source directly in front Rests in darkness

Vehicle 2 Sensors connected directly to motor on opposite side What will happen when light is to side? Directly in front?

Vehicle 2: Aggressive Sensors connected directly to motor on opposite side Turns towards source and charges Charges source directly in front Rests in darkness

Vehicle 3 Sensors connected through inverter to same side What will happen when light is to side? Directly in front?

Vehicle 3: Love Sensors connected through inverter to same side Turns towards source and rests Move toward source and rest Moves in darkness - -

Vehicle 4 Sensors connected through inverter to opposite side What will happen when light is to side? Directly in front?

Vehicle 4: Explorer Sensors connected through inverter to opposite side Turns away from source Rotates away (unless exactly on target) Moves in darkness

Classes in code Classes Classes Vehicle (1) Includes logic for movement Wheel (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 Vehicle draws itself, plus wheel and sensor (1) (2)(3) (4)

Vehicles All vehicles are currently vehicles of the same type 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 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

Ground The ground (background) is a PImage - different sources change the pixels of the ground The ground (background) is a PImage - different sources change the pixels of the ground This is the mechanism for summing different sources together 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) 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 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!) Instead of PImage, we will make a 2D array for ground instead (drawing optional => MUCH FASTER on slower machines!)

Sources The only source currently implemented is light 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 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) getReading() is used by ground to sample a light source (to determine how much a light source effects a given pixel)

Extensions Make vehicles also be sources (vehicles start following each other, are repelled by each other, etc.) 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 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 complex sensor response curves (everything we’ve looked at so far is linear) Add more interactions between different types of vehicles Add more interactions between different types of vehicles

Project ideas Braitenberg vehicles provide a simple framework for exploring autonomous behavior in computational ecosystems Braitenberg vehicles provide a simple framework for exploring autonomous behavior in computational ecosystems Text machines – autonomous words and letters Text machines – autonomous words and letters Drawing machines – brush interacts with vehicles, spawns vehicles, vehicles interact with each other 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.) Ecosystem responds to data (sources represent web data, vehicles spawned in response to data, etc.) Miniature worlds – alien, aesthetically interesting worlds Miniature worlds – alien, aesthetically interesting worlds [Jason’s postscript: You’re making something that follows simple rules, interacting with its environment to give the illusion of life.]