Module 06-22382 (2012)
|Nicholas Hawes||Semester 2||10 credits|
Co-ordinator: Nicholas Hawes
Reviewer: Jeremy Wyatt
The Module Description is a strict subset of this Syllabus Page.
The aims of this module are to:
- present some of the core problems in building and programming intelligent robots (design trade-offs, choices of sensors etc.)
- illustrate how problems can be decomposed
- demonstrate how Java can be used to implement AI algorithms (e.g. informed search) and robot control paradigms (e.g. feeback controllers, the subsumption architecture)
- present good programming and debugging practice in Java in an applied setting
On successful completion of this module, the student should be able to:
- implement and deploy Java programs on a robot using the tools provided
- apply AI and Java knowledge to implement some classic AI/robotics representations and techniques
- develop a modular robotic system over an extended period of time
Lectures, labs, group work.
- Sessional: 100% coursework via regular group exercises, assessed via demonstration and code submission.
- Supplementary: By repeat only
- Basic knowledge
- The NXT hardware.
- The leJOS Java software.
- Software Engineering for Robot Programming
- Dealing with sensors and motors
- Motor control.
- Event handling and polling.
- The basic NXT sensors.
- Colour-based vision and the NXTCam
- Sensor-based control
- Feedback control
- The Subsumption Architecture
- More advanced knowledge
- Java collections: ArrayList, Stack and Queue
- Generic programming
- Search-based control
- Uniformed search
- Informed search
- Adversarial search
- Mapping and localisation
- Probabilistic road maps
Programmes containing this module
- BEng Computer Science/Software Engineering 
- BEng Computer Science/Software Engineering with an Industrial Year 
- BSc Artificial Intelligence & Computer Science 
- BSc Artificial Intelligence & Computer Science with an Industrial Year 
- BSc Computer Science 
- BSc Computer Science with an Industrial Year 
- BSc Computer Science with Study Abroad 
- MEng Computer Science/Software Engineering 
- MEng Computer Science/Software Engineering with an Industrial Year