Module 22382 (2010)

Syllabus page 2010/2011

06-22382
Robot Programming

Level 1/C

Nicholas Hawes
10 credits in Semester 2

Links | Outline | Aims | Outcomes | Prerequisites | Teaching | Assessment | Books | Detailed Syllabus


The Module Description is a strict subset of this Syllabus Page. (The University module description has not yet been checked against the School's.)

Relevant Links

See the Module Web Page for further information.


Outline

This module teaches basic AI and robotic programming skills through a series of team exercises using small, mostly prebuilt, robots. Regular exercises will give each team the skills to build up a robot capable of tackling a competitive, arena-based, task that includes a variety of AI-requiring sub-problems.


Aims

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

Learning Outcomes

On successful completion of this module, the student should be able to: Assessed by:
1implement and deploy Java programs on a robot using the tools provided Coursework
2apply AI and Java knowledge to implement some classic AI/robotics representations and techniques Coursework
3develop a modular robotic system over an extended period of time Coursework

Restrictions, Prerequisites and Corequisites

Restrictions:

None

Prerequisites:

None

Co-requisites:

None


Teaching

Teaching Methods:

Lectures, labs, group work.

Contact Hours:

18 taught lectures, 22 assisted labs


Assessment

  • Sessional: 100% coursework via regular group exercises, assessed via demonstration and code submission.
  • Supplementary (where allowed): By repeat only
  • Execises will increase in complexity over time. Early exercise will encourage the development of basic skills and techniques. Later exercises will require the application of these skills to solve more advanced problems.

Recommended Books

TitleAuthor(s)Publisher, Date
Maximum LEGO NXT: Building Robots with Java Brains (2nd Edition)Brian BagnallVariant Press., 2009
Artificial IntelligenceRob CallanPalgrave Macmillan, 2003
Artificial Intelligence: A Modern Approach (2nd Edition) S Russell & P NorvigPrentice Hall, 2003
Big Java (3rd Ed)Cay HorstmannJohn Wiley, 2008

Detailed Syllabus

  1. Basic knowledge
    • The NXT hardware.
    • The leJOS Java software.
    • Software Engineering for Robot Programming
  2. Dealing with sensors and motors
    • Motor control.
    • Event handling and polling.
    • The basic NXT sensors.
    • Colour-based vision and the NXTCam
  3. Sensor-based control
    • Feedback control
    • The Subsumption Architecture
  4. More advanced knowledge
    • Java collections: ArrayList, Stack and Queue
    • Sorting
    • Generic programming
  5. Search-based control
    • Uniformed search
    • Informed search
    • Adversarial search
  6. Navigation
    • Mapping and localisation
    • Probabilistic road maps

Last updated: 02 Sep 2010

Source file: /internal/modules/COMSCI/2010/xml/22382.xml

Links | Outline | Aims | Outcomes | Prerequisites | Teaching | Assessment | Books | Detailed Syllabus