https://www.cs.toronto.edu/~hector/pcr.html
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.
* The book: Programming Cognitive Robots, as a PDF file (203
pages).
* The software and documentation: ergo-archive, as a ZIP file
(182119 bytes). There is also a github repository for this code
here.
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