Programming Cognitive Robots

A cognitive robot is one that uses explicitly represented knowledge to make decisions about what to do. Programming a cognitive robot is about giving it enough knowledge about its world, its actions, and what needs to be done for it to be able to calculate in a practical way the actions it should take. This book presents a new programming language for this purpose, and illustrates its use on a number of examples. It then follows with three case studies that can form the basis for term projects in cognitive robotics: one in a simulated world of squirrels, one for a LEGO robot, and one in a real-time video game environment. While the book is intended primarily for undergraduate computer science students, it also includes three chapters on more advanced topics in cognitive robotics.

More details about the intent and scope can be found in the book Preface.

The book and all the necessary software described in it can be downloaded below, though without support or warranty of any kind. (See the copyright notice with the software.) A LEGO kit must be purchased separately for the LEGO project.

There is currently no plan to have this book printed by a publisher. (The market for such a product would indeed be small.) So please consider the PDF file here as the definitive version. On the negative side, the book has not been copy-edited or typeset by a professional, has never been used in an actual course, and has no answers for the exercises; on the positive side, all the material is free!

Best of luck!

Hector Levesque
March 2019