PRIMORIS      Contacts      FAQs      INSTICC Portal

Keynote Lecture


Rule Control of Teleo-Reactive, Multi-tasking, Communicating Robotic Agents

Keith Clark
Imperial College London
United Kingdom

Brief Bio

Keith Clark has first degrees in both Mathematics and Philosophy and a PhD in Computational Logic. He started teaching computer science at Queen Mary College, London in 1969. With a colleague at QMC he developed a new course on automata theory more suited to CS students. This was based on novel approach to AT proposed by Rabin and Scott. The course notes became a book, published in 1975, that also included topics such as program verification, program structure normal forms, and the semantics of normal form programs as sets of recursively defined functions.
In 1975 he moved to Imperial College to join Bob Kowalski in setting up the IC Logic Programming group which became the Logic and AI section of the Computing Department. He is now an Emeritus Professor in Computational Logic at Imperial, an Honorary Professor at UQ Brisbane and UNSW Sydney. He is a Visiting Professor at Stanford University and several other universities.

His early research at Imperial was primarily in the theory and practice of logic programming. His most cited paper is from this period: ”Negation as Failure" (1978), with over 2700 citations.

Inspired by Hoare’s CSP, with a student Steve Gregory in 1980 he introduced the concepts of committed choice non-determinism and stream communicating and-parallelism into logic programming for declarative systems and concurrent process programming. This was the computational paradigm later adopted by the ill fated 10 year Japanese Fifth Generation Research Project. The project did not succeed in developing parallel AI computers because the committed choice non-determinism, and other restrictions, made it ill suited for the transparent programming of AI applications involving search or reasoning.

Post 1990, his research emphasis has been on the design, implementation and application of rule based programming languages with a strong declarative component. The languages are designed to facilitate the development of multi-agent and cognitive robotic applications. They are tested and revised by developing such applications in collaboration with agent and robotic groups at Imperial, UQ and UNSW.

He has consulted for the Japanese Fifth Generation Project, Hewlett Packard, IBM, ICL, Fujitsu and two start-ups, one in Sweden and one in California. The former was developing specialised processors and a declarative language for their programming for aircraft control. The latter was investigation agent implementation of flexible and dynamic re-scheduling of manufacturing processes.

(joint work with Peter Robinson, University of Queensland)

We describe a multi-threaded robotic agent architecture in which multiple compatible tasks, sharing one or more external robotic resources, can be executed concurrently without: starvation, interference or deadlock.  Each task progressively achieves sub-goals of the task goal. There is parallel use of disjoint sets of resources whenever possible.

The agents are programmed in two rule based languages: TeleoR and QuLog. The roots of TeleoR go back to the conditional action plans of the first cognitive robot, SRI’s Shakey. These lead to Nilsson’s Teleo-Reactive robotic agent language T-R. TeleoR is a major extension of T-R

QuLog is a flexibly typed multi-threaded logic+function+action rule language. Its declarative subset is used for encoding the agent’s dynamic beliefs and static knowledge. Its action rules are used for programming agent threads and inter-agent communication. The guards of TeleoR robotic action rules are QuLog queries to the agent’s dynamic beliefs using its knowledge rules.

Because of the structure and distinctive operation semantics of a TeleoR program, the agent will respond to help or hindrance without the need to re-plan a task behaviour. If helped it skips the actions it would normally do to achieve the task sub-goal achieved by the help. If hindered, it attempts to re-achieve the last sub-goal it had reached, or to achieve the task goal by another sub-goal route. This flexible behaviour makes TeleoR well suited to human/robot co-operative tasks.

We introduce the use of TeleoR and QuLog, and the multi-threaded agent architecture, with two robot control applications:

  • A multi-tasking agent controlling two independent robotic arms in multiple construction tasks. Colleagues at UNSW Sydney have ported this to a Baxter robot, See
  • Single task communicating agents each separately controlling a track following robot navigating through doorways that are exogenously opened and closed to a destination room. This is done without risk of collision and with continuous recompilation of the shortest path through doorways believed to be open. See
  • In the second application communication is as important as perception. The agents re-compute 
  • Their doorway route immediately they see or are informed by another agent that a doorway 
  • They intended to use is closed. They keep one another informed re their room location and
  • Path following intention, information used for avoidance behaviour.