This thesis investigates the use of Beliefs-Desires-Intentions (BDI) for controlling autonomous mobile robots. Autonomous systems should ideally be designed for flexibility so that they can intelligently react to ever-changing environments and operational conditions. If they are given such flexibility, they can accept goals and set a path to achieve these goals in a self-responsible manner while displaying some form of intelligence. Developers of autonomous mobile robotics are interested in how to program mobile robots while guaranteeing reliability and resilience.In investigating the use of BDI for controlling autonomous mobile robots, the Agent in a Box framework was developed. This framework includes a general architecture for connecting a Jason agent to the environment using Robot Operating System (ROS). This connection is done in a way that is flexible to a variety of application domains that use different sensors and actuators.The Agent in a Box provides the needed customization to the agent's reasoner to ensure that the agent's behaviours are properly prioritized. Generic plans for behaviours that are common to a variety of mobile robots are also provided. These include plans for resource management and for navigation, which generates a route to a destination in the form of a plan which can be monitored and interrupted by the reasoner if needed. These components allow developers, for specific application domains, to focus on domain-specific code. Agents implemented using the Agent in a Box are rational, mission capable, safety conscious, fuel autonomous, and understandable.The Agent in a Box was used to demonstrate the capability of BDI agents to control robots in a variety of application domains through a set of case studies: a grid environment, a simulated autonomous car, and a prototype mail delivery robot. These case studies demonstrated that the agent was able to successfully control the robots in all of the application domains tested, including when it was run on a Raspberry Pi computer. By implementing the robots with the Agent in a Box, the development burden was reduced because the framework provided generic behaviours that could be used by each of the agents. The Agent in a Box was also found to enforce good software engineering practices, resulting in a noticeable improvement in runtime performance compared to other approaches that did not use the Agent in a Box. iv v Acknowledgements I would like to thank my supervisor, Babak Esfandiari, and the members of my evaluation committee for their time, effort, support, and advice.
• • •Thank you to my family, especially to my wife Catharina and my parents Jacqueline and Neil for all of the help and support. To my daughters, Gemma and Maeve, who were both born while I was working on this degree, thank you for being small and adorable, even if you did not make my progress on this thesis go any faster.
• • •I would also like to thank a number of colleagues who have provided help along the way.