University of Cambridge > > Computer Laboratory Programming Research Group Seminar > Programming Robotic Agents: A Multi-tasking Teleo-Reactive Approach

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

Add to your list(s) Download to your calendar using vCal

If you have a question about this talk, please contact Alan Mycroft.

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.

TeleoR can also be used to program pure communicating agent applications simply by having all rules with the {} robotic resource action. There will then be a task thread handling each conversation.

This talk is part of the Computer Laboratory Programming Research Group Seminar series.

Tell a friend about this talk:

This talk is included in these lists:

Note that ex-directory lists are not shown.


© 2006-2024, University of Cambridge. Contact Us | Help and Documentation | Privacy and Publicity