Skip to main content

Programming Robotic Agents: A Multi-tasking Teleo-Reactive Approach

Keith Clark ( Imperial College, London )

This talk will present a multi-threaded and multi-tasking robotic agent architecture in which the concurrently executing tasks, which can be alternating use of several robotic resources, are programmed in TeleoR.  This a major extension of Nilsson’s Teleo-Reactive Procedures language (TR) for robotic agents.  The architecture is for mid to high level control. TeleoR programmed tasks are robust and opportunistic, redoing or skipping robotic resource actions as appropriate.  This makes them well suited to robot/robot or human/robot co-operative tasks. TeleoR’s  most important extension of TR is the concept and use of task atomic procedures to control the deadlock and starvation free use of the robotic resources by an agent’s concurrent tasks. This use is illustrated in a simulation video at

More Details 

A TeleoR program comprises sequences of Guard ~> Action rules grouped into procedures. The Action is either:
  • a set of robotic resource actions to be executed in parallel, or {} do nothing
  • a call to an TeleoR procedure - a programmed action, 
  • a repeatable sequence of time limited durative robotic actions or procedure calls. 
with optional associated
  • message send actions to other robotic agents or humans
  • atomic updates of the agent’s beliefs
In each called procedure the first rule with an inferable Guard is fired and its action started.  If this a robotic resource action its effect may be to modify a previous actions using the same resources.  The primitive resource actions may be relatively complex, such as moving a jointed robot arm.
The Guard  inference uses facts and rules rules of typed declarative language sitting in the agent’s deductive BeliefStore to give an application specific interpretation of rapidly changing percepts and more slowly changing told facts, the dynamic component of the BeliefStore.  The percepts are  abstractions of sense data and may have involved lower level analysis such as image processing. 
A percept handler thread within the agent frequently atomically updates the BeliefStore. Another thread converts received messages into new beliefs giving a minimum three thread architecture.
On each BeliefStore update the rule firings of all called procedures are re-considered. This may cause several nested procedure calls to be terminated and replaced by a new nested sequence because of the firing of a different rule in some call. It is what gives the language its elastic behaviour. Compiler analysis ensures that only rule firings that may be changed by an update are re-checked. 

Speaker bio

Keith Clark has been associated with the Department of Computing, Imperial College, since 1975. He has been a Professor of Computational Logic since 1987. He is now Emeritus at Imperial, a Visiting Professor at the University of Queensland and at Royal Holloway College, London.

His early research at Imperial was in the theory and pragmatics of logic programming of which the most notable outputs were: the "Negation as Failure" paper giving a declarative semantics to Prolog’s not operator; IC-Prolog, an entirely declarative logic programming language developed with Frank McCabe and Steve Gregory. It had a separate layer of control annotations on the logic allowing an algorithm=logic+control approach to programming, as advocated by Robert Kowalski.

In 1980, with Frank McCabe, he set up Logic Programming Associates to develop Prolog systems for personal computers. The company is still operating but mostly doing consultancy work.

He then moved into the area of concurrent logic programming and was a consultant for and reviewer of the Japanese Fifth Generation Project in the 1980s. He has also consulted for ICL Labs, Hewlett Packard Labs, IBM Labs, Fujitsu Labs and two start-ups, Carlstedt Electronic, Sweden and Starview Technology, USA.

Since 1990 his interests have moved to more general multi-threaded programming languages, still with a declarative emphasis, and their use for multi-agent systems and cognitive robotics applications.

Selected papers can be down-loaded from the web page:

Share this: