Business School Computing Division Colin Price CDIEU Computer Development Integrated Environment for Undergraduates CBP 2004 ICMCE
Computer Science Programming Operating Systems Microcontroller engineering Artificial Intelligence Programming CBP 2004 ICMCE
… from a Robotics perspective ROBOTS SIMULATED ROBOTS Microcontroller engineering Programming Operating Systems Artificial Intelligence CBP 2004 ICMCE
Why Study Robots now? MIT Kismet Honda Asimo 2003 Sojourner 1996 NavLab (CMU) CBP 2004 ICMCE
Moore’s Law - Computers and Brains CBP 2004 ICMCE Figure from ROBOT, Moravec, Oxford, 1998, Chapter 3: Power and Presence, page 68
Learning using Robots ? Robots are becoming commercially viable – need developers Serious promise of Artificial Intelligence – needs researchers Educational Aspects - Our findings Rapid learning of programming skills Need to understand and apply PHYSICS and MATHS Important analogy of living beings … the Self Important analogy of societies … communication CBP 2004 ICMCE
Human Robot Human Group Robot Group CBP 2004 ICMCE
CBP 2004 ICMCE
Human Qualities Affective Cognitive Psychomotoric Thinking Acting Emotions Knowing Feelings Behaving CBP 2004 ICMCE
Braitenberg Vehicles Program Robot Behaviour lamp LM Light Seeking if (leftEye == Bright) { RightMotor = 10; LeftMotor = 0; Sleep(1); } if (frontBumper == Hit){ RightMotor = -10; LeftMotor = -10; lamp LM Light Seeking Avoiding Sequential Programming RM CBP 2004 ICMCE
Subsumption (Brookes) Combining Behaviours Subsumption (Brookes) Wander s Seek Light Avoid Motors bumper eyes Behaviour Modules How to Combine ? CBP 2004 ICMCE
Programming Subsumption Multi-tasking if (frontBumper == Hit){ RightMotor = -10; LeftMotor = -10; Sleep(1); } Avoid bumper CPU if (leftEye == Bright) { RightMotor = 10; LeftMotor = 0; Sleep(1); } Seek Light eyes Wander concurrent tasks CBP 2004 ICMCE
Rod Brookes + Cogs CBP 2004 ICMCE
muROBOT multitasking operating system 400 bytes code memory RS 232 multitasking operating system 400 bytes code memory 1000 behaviour switches / sec industry standard chip students involved in design ! industry standard IDE program in C compatible Java Simulator CBP 2004 ICMCE
CDIEU Simulation Environment Java Simulation environment can run C-code each robot multithreaded Pedagogically interesting can run FSM architecture can run Associative Memory will be able to run LISP CBP 2004 ICMCE
Java Behaviour Routines public void arbitrate() { for(;;){ if(collide_flag == true) { motorIpL = collideOpL; motorIpR = collideOpR; } else if (searchlight_flag == true) { motorIpL = searchlightOpL; motorIpR = searchlightOpR; } else if (wander_flag == true) { motorIpL = wanderOpL; motorIpR = wanderOpR; } muMonDefer(); eyeLF motorIpL Wander Collide SearchLight eyeRF motorIpR public void wander() { forever { wander_flag = true; wanderOpL = 10; wanderOpR = 10; muMonDefer(); } Behaviour routines give motor drive Arbitrator Selects motor drive CBP 2004 ICMCE
Operating Systems Multitasking Same code as robots - C public Controller() { muMonCreateTask("collide"); muMonCreateTask("wander"); muMonCreateTask("arbitrate"); muMonStartScheduler(); } public void arbitrate() { for(;;){ if(collide_flag == true) { motorIpL = collideOpL; motorIpR = collideOpR; } else if (wander_flag == true) { motorIpL = wanderOpL; motorIpR = wanderOpR; muMonDefer(); public void collide() { for(;;) { if(body_touch == 1) collide_flag = true; body_touch = 0; collideOpL = -10; collideOpR = -10; muMonSleep(500); collide_flag = false; Operating Systems Multitasking Same code as robots - C Same structure as robot behaviours are tasks asynchronous inputs Shared variables, Mutexes CBP 2004 ICMCE
AI – Neural Nets Neural Net Controller (multi-layer) perceptron If the connections are not crossed, then it turns away from excitation – coward Ipsilateral excitation CBP 2004 ICMCE
AI - Genetic Algorithms if (frontBumper == Hit){ RightMotor = -10; LeftMotor = -10; Sleep(1); } How do we choose those numbers ? Trial and error ? Yes ! But get a computer to do it Select behaviours that work the best - natural selection. CBP 2004 ICMCE
AI – Deliberative / Planning Planning/ Deliberative Entire program in LISP Hybrid LISP + subsumption Teleoperated robots Behaviour 1 Behaviour 2 Behaviour 3 s Motors sensors CBP 2004 ICMCE
CBP 2004 ICMCE
Trials in Schools Ages 13 – 19 Program in C, Industry-standard chip Learn Programming via Braitenberg Solve whole industrial problem Design mechanical elements Design software control Lift, Furbie, Disco Lights, Aircraft ! CBP 2004 ICMCE
Why Learn to Program Robots ? Is this a good vehicle for experiencing programming : LISP, Java, C, Finite State Machines, Associative Memory ? Does it enable creativity in ANALYSIS of problems and SYNTHESIS of solutions ? Will Science Education shift in emphasis from real world to world of real robots and computer games ? Does thinking about robots encourage students to think about philosophical issues (Nature of mind and self) ? I hope you weren’t expecting the answers? Dr. Ir. Colin Price CBP 2004 ICMCE