matks
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.
matks
(multi-agent task and knowledge simulator) is a simulator for agents that simulate task and knowledge. It is intended to simulate large numbers of agents.
Gitlab repository is at https://gitlab.com/auksys/matks/.
Overview
The figure below provides an overview of an agent and the relation to different type of simulator:
A typical agent is composed of many different layers, from low-level interface to hardware through controlers
and drivers
to high-level decision layer with task planners
and deciders
. The Gazebo simulator is an example of low-level simulator, which simulates agents at a driver level. The output of the Gazebo
simulator is simulated sensor data and the input is control signals for the actuators. This type of simulation is computationally intensive and very useful to develop the low-level aspects of an agent. matks
is a middle-level simulator, it simulates the execution of a task and the generation of high-level knowledge. The main purpose of matks
is to enable the simulation of very large number of agents to be able to test and evaluate how high level algorithms scale with a large number of agents.
Interfacing with matks
matks
communicate through the following MQTT topics:
matks/positions
the positions (in longitude/latitude) of all the agents.matks/image
(experimental) send simulated images. The images are cropped from an orthographic images.
The delegation system of agents-tk
also uses the following topics:
delegation/send_cfp
is used by the delegation module to broadcast a call for proposals by other agent.delegation/send_offer
is used by the delegation module to answer a CFP with a cost proposal.delegation/send_proposal_acceptance
is used by the delegation module to select a proposal.delegation/send_execution_acceptance
is used by the delegation module to confirm that the proposal acceptance has been received and that the agent will execute the mission.delegation/cancel_acceptance
is used to cancel the acceptance, this is send if noexecution acceptance
is received.