The book provides an in-depth and uniform treatment of a mathematical model for reasoning robotic agents. The book also contains an introduction to a programming method and system based on this model. The mathematical model, known as the 'Fluent Calculus'', describes how to use classical first-order logic to set up symbolic models of dynamic worlds and to represent knowledge of actions and their effects. Robotic agents use this knowledge and their reasoning facilities to make decisions when following high-level, long-term strategies. The book covers the issues of reasoning about sensor input, acting under incomplete knowledge and uncertainty, planning, intelligent troubleshooting, and many other topics. The mathematical model is supplemented by a programming method which allows readers to design their own reasoning robotic agents. The usage of this method, called 'FLUX'', is illustrated by many example programs. The book includes the details of an implementation of FLUX using the standard programming language PROLOG, which allows readers to re-implement or to modify and extend the generic system. The design of autonomous agents, including robots, is one of the most exciting and challenging goals of Artificial Intelligence. Reasoning robotic agents constitute a link between knowledge representation and reasoning on the one hand, and agent programming and robot control on the other. The book provides a uniform mathematical model for the problem-driven, top-down design of rational agents, which use reasoning for decision making, planning, and troubleshooting. The implementation of the mathematical model by a general PROLOG program allows readers to practice the design of reasoning robotic agents. Since all implementation details are given, the generic system can be easily modified and extended.