According to Russell and Norvig in “Artificial Intelligence: A Modern Approach”, “An agent is anything that can be viewed as perceiving its environment through sensors and acting upon the environment through actuators.” Intelligent agents can be created with varying levels of complexity. Simple reflex agents incorporate a lookup table to determine the agent’s response to its environment. Model based agents also use a lookup table but are aware of the current state of their environment and can hence differentiate between states that appear alike. Goal based agents have a state that they strive to be in. This allows the agent to have some measure of its “happiness” with respect to achieving a goal. Utility based agents use a utility function to allow them to evaluate between varying degrees of “happiness”. States that are preferred over other states have a higher utility value. Learning agents explore their environment. The agent receives feedback from an outside source, allowing the agent to modify its performance. Thus, the agent learns new behaviors that push it toward the desired goal.

Low-cost, low platform robotics has been recognized as an invaluable tool for learning concepts in Artificial Intelligence. Students are able to create embodied agents that illustrate many AI concepts. Most platforms today can be programmed using variations of the common languages taught in most Computer Science curricula, such as C, C++, C#, VB.net, and JAVA, to name a few. Hence, students can implement many of the algorithms taught in most undergraduate AI courses using robotic agents. In the process of embodying agents, students learn basic robotic concepts and techniques as well.

The purpose of this project is to build and program intelligent robotic agents. Students, by creating and programming these intelligent agents, will be able to see the differences between different types of agents while experimenting with various AI concepts. Ultimately, students will create a learning agent that uses a neural network to learn path following behavior.
The overall goal of this project is to allow students to embody a robotic agent so that it exhibits behavior that would classify it as a lookup agent, a model based agent, a utility agent, and a learning agent. The major portion of this project implements a neural network into a robotic agent, allowing it to learn path following.

The desired pedagogical objectives for this project are to:
  • Enable students to see how AI concepts offer viable solutions to hard problems when incorporated in real world situations.
  • Understand the basic neural network back propagation algorithm.
  • Understand the difference between training a neural network and the trained neural network.
  • Learn basic robotics.
  • Realize the problems inherent in working "in the real world".
Students should have a background in discrete mathematics and algebra. Students should have also had a course in Data Structures. Students should be proficient in a programming language such as JAVA or C++ or some other language that can be used with the chosen robotic platform. Programming knowledge is needed so that students will be able to program the robots to implement the given deliverables. A review of the Interactive C programming environment, a free download from the Kiss Institute might be useful. Students can also refer to the robotics laboratory assignment, given Computer Science I students, at the College of Staten Island for some Interactive C basics.
Background information on Neural Networks can be found in most Artificial Intelligence texts:
  • Stuart Russell and Peter Norvig. Artificial Intelligence: A Modern Approach, 2nd edition. Prentice Hall, Upper Saddle River, NJ, USA, 2003. Chapter 20.
  • Tom Mitchell. Machine Learning. McGraw Hill, 1997. Chapter on Neural Networks.
To understand the concept of intelligent agents, students should be familiar with chapter 2 in Russell and Norvig (above). Chapters 3 and 4 describe the search algorithms used by robots to accomplish some of the project tasks. Chapter 25 offers a nice overview on robotics.

Two good reference sources for background information in robotics are:
  • Richard Siegwart and Illah R. Nourbakhsh. Introduction to Autonomous Mobile Robots. The MIT Press, 2004.
  • Fred G. Martin. Robotic Explorations A Hands-On Introduction to Engineering. Prentice Hall, 2001.
The detailed project description is available in the PDF file robotagents.pdf. You will need the free Adobe Acrobat Reader to view this file.
This project is customizable to accommodate different approaches to teaching and different implementations. Additional exercises are also included for students seeking more extended challenges.
A sample syllabus used at the College of Staten Island, CUNY when this project was assigned is available at:
Syllabus for AI Course at the College of Staten Island

Additional readings are included in the Background section above.