The robotic agents are programmed in two rule based languages: QuLog and TeleoR. They communicate using a logic based pub/sub and addressed message routing server, Pedro.
QuLog is a flexibly typed rule language for programming multi-threaded communicating agents. Its declarative subset of relation and function defining rules is used for encoding an agent’s dynamic beliefs and static knowledge. Its imperative rules are used for implementing an agent’s multi-threaded architecture, for updatinn the dynamic beliefs, and for inter-agent communication.
TeleoR is an application specific extension of QuLog for programming task threads that control robotic devices. It is a major extension of the T-R language proposed by Nils Nilsson., itself a descendant of generalised hierarchical triangular table action plans of the first cognitive robot Shakey.
TeleoR programs comprise sequences of guarded robotic action rules, G ~> A, clustered into parameterised procedures. G is a QuLog query to the agent’s dynamic beliefs. A is a robotic action, optionally paired with an agent action, or it is a call to a TeleoR procedure, including a recursive call.
The use of the languages is illustrated with three applications:
- Two communicating agents each controlling one mobile robot in co-operative bottle collecting. The agents have a joint goal of together collecting a given number of bottles. They communicate so each agent knows how many bottles both robots have collected, and to avoid the robots colliding with minimal divergence from each robot’s current path. They each stop their robot when the joint total is reached.
- A multi-tasking agent controlling a robotic arm and fairly sharing its use between multiple concurrent construction tasks. Colleagues at UNSW Sydney have ported a slightly more complex two arm controlling version of the agent program to a Baxter robot building towers of letter labeled blocks. See https://www.doc.ic.ac.uk/~klc/20160127-LABCOT-HIx4.mp4
- Three communicating agents each of which controls a track following robot navigating along a pre-computed, but constantly modified path through open doors to a destination room. The agents notify each other whenever their robot’s path changes, or whenever their robot sees that the open/closed status of some door in its current room has changed. The doors are exogenously opened and closed. The agent’s re-computate of the shortest path to a desired destination each time an agent’s beliefs about open/closed doors change as a result of a perception or a communication. See https://www.doc.ic.ac.uk/~klc/pathFollowers.mp4 for a short demo of a simulation.
(joint work with Peter Robinson, University of Queensland)