agent-tk
WARNING auKsys/5 has been released as stable, but this documentation has not been fully updated with changes since auKsys/4. In case of questions or mistakes, you can use the support project.
WARNING this page documents an upcoming component, in early phases of development, subject to change and not ready for production.
agent-tk (agent-toolkit/task-knowledge) is a library to implement light weight task and knowledge base agent. It provides abstract interfaces to integrate knowledge and decision process. The decision process in agent-tk is based on the delegation system proposed in [1].
agent-tk is currently developed for providing support to the matks simulator, and it is planned to extend it for support IOT systems in the future.
Gitlab repository is at https://gitlab.com/auksys/agent_tk/.
Overview
The figure below provides an overview of an agent as defined in agent-tk:
On a high level, an agent is composed of three group of systems:
definitionscontains static metadata describing the agents, in particular, itscapabilities.resourcescontains dynamic information about the agent and its environment.knowledge baseis used to store information about the past and the current state of the world.agent-tkcan use a simple in-memory store or connect to an instance of kDB.statescontains a snapshot of the current state of the robot, such as position/velocity. Theplatformis sending update to thestates.resourcescontains the resources of the agent: sensors, actuators… This module allow to lock the resources to avoid concurrent use.
componentscontains active module involves in decision or in execution of task.executioncontains a queue of tasks to be executed by the agent. It interracts with the low-level platform.decisiontakes decision on the feasibility and cost of executing a given task. It use asimulatorto estimate the cost of a task.delegationmodule is used to distribute task among agent. This module can receivegoal/tstto execute from the agent or it received call for proposal (CFP) from other agents. Upon receiving a CFP, thedelegationmodule ask thedecisionmodule for a cost and feasability to execute a given CFP.
Interfacing with agent-tk (via MQTT)
The delegation system of agents-tk also uses the following topics:
delegation/send_cfpis used by the delegation module to broadcast a call for proposals by other agent.delegation/send_offeris used by the delegation module to answer a CFP with a cost proposal.delegation/send_proposal_acceptanceis used by the delegation module to select a proposal.delegation/send_execution_acceptanceis used by the delegation module to confirm that the proposal acceptance has been received and that the agent will execute the mission.delegation/cancel_acceptanceis used to cancel the acceptance, this is send if noexecution acceptanceis received.
The default way to send tasks to an agent-tk agent is using the delegation protocol. However, in case it is not desirable to interract directly with protocol, agent-tk provides a delegation server called agent-tk-delegation-server which uses a MQTT-based service call to start a delegation, using the following topic:
delegation_server/delegatesend a request to delegate a Goal or a TST. This rely on theMQTT v5 Request-Response Pattern, and requires that the correlation ID and response topics are set.
References
High-level Mission Specification and Planning for Collaborative Unmanned Aircraft Systems using Delegation. Doherty, Patrick and Heintz, Fredrik and Kvarnström, Jonas. Unmanned Systems. 2013. DOI: 10.1142/S2301385013500052
