Abstract:
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 http://youtu.be/f81U0iHNzB0.
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 starting the action may be achieved by modifying a previous action using the same resource (e.g. move(2.5) modifies move(3) by decreasing the speed).
Other executing resource actions are terminated. 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. This gives 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.
Bio:
Keith Clark (born 1943) is a Professor of Computer Science at Imperial College London. He has lectured in both mathematics and computer science.
Professor Clark earnt a Ph.D in 1980 from Queen Mary, University of London with thesis titled Predicate logic as a computational formalism. Since 1979, Keith Clark has had an academic position in the Department of Computing, Imperial College London, where he has been Professor of Computational Logic since 1987. Between 1987 and 1995, he was also Visiting Professor at Uppsala University. He is currently a Visiting Professor at Blekinge Institute of Technology (since 1997), and at the University of Queensland (since 1998). In 1980, he co-founded an Imperial College spin-off company, Logic Programming Associates, to develop and market Prolog systems for micro-computers (micro-Prolog) and to provide consultancy on expert systems and rule based applications.