Package: agentMET4FOF
Multi-Agent System for IIoTagentMET4FOF is an implementation of a multi-agent system for agent-based 
analysis and processing of both static data sets and data streams with IIoT 
applications in mind. More on the motivation that drives the project can be found
in the sectionAbout.Key factsFOSS projectallows toquickly set up and run ametrologically enabled multi-agent systemhandle both static data sets and online data streamsconsider measurement uncertainties as well as metadata with the provided message systeminstallable as a Python package or ready-to-deploy Docker imagecomes bundled withseveral introductary and advanced tutorialsaccompanied byseveral use cases with close-to-industry IIoT applications in
our GitHub organisationcomprehensive and ever-growingdocumentationTable of content💫 Quickstart💬 About📈 The agentMET4FOF dashboard🤓 Tutorials📖 Documentation and screencasts💻 Installation🐝 Contributing💨 Coming soon🖋 Citation💎 Acknowledgement⚠ Disclaimer© License💫QuickstartagentMET4FOF comes bundled with severaltutorialsto get you started
as quick as possible. In your Python console execute the following to run the first
tutorial.>>>fromagentMET4FOF_tutorials.tutorial_1_generator_agentimportdemonstrate_generator_agent_use>>>generator_agent_network=demonstrate_generator_agent_use()StartingNameServer...
Broadcastserverrunningon0.0.0.0:9091
NSrunningon127.0.0.1:3333(127.0.0.1)URI=PYRO:Pyro.NameServer@127.0.0.1:3333|----------------------------------------------------------||||Youragentnetworkisstartingup.Openyourbrowserand||visittheagentMET4FOFdashboardonhttp://0.0.0.0:8050/||||----------------------------------------------------------|INFO[2021-02-0518:12:52.277759](SineGeneratorAgent_1):INITIALIZED
INFO[2021-02-0518:12:52.302862](MonitorAgent_1):INITIALIZED[2021-02-0518:12:52.324078](SineGeneratorAgent_1):Connectedoutputmodule:MonitorAgent_1
SETSTATE:Running[...]>>>generator_agent_network.shutdown()0NSshutdown.💬AboutSensor deployments in industrial applications usually form networks in all sorts of
environments. This requires a flexible framework for the implementation of the
corresponding data analysis. An excellent way to represent such networks is a
multi-agent system (MAS), where independent software modules (agents) encapsulate
properties and functionalities. agentMET4FOF is an interactive and flexible open-source
implementation of such a MAS. The software engineering process is driven by several
industry-oriented use cases with the aim of enabling IIoT applications. This leads
to a framework that is specialized in representing heterogeneous sensor networks.A special emphasis is put on supporting metrological treatment of sensor streaming
data. This includes the consideration of measurement uncertainties during data analysis
and processing as well as propagating metadata alongside the data itself.One of the many questions that drive us in the project is:How can metrological input be incorporated into an agent-based system for addressing
  uncertainty of machine learning in future manufacturing?FeaturesSome notable features of agentMET4FOF include :Modular agent classes for metrological data streams and analyticsA built-in buffering mechanism to decouple transmission, processing and visualization
of dataEasy connection among software agents to send and receive dataChoose backends between:Osbrainfor simulating as well as
handling real distributed systems running Python connected via a TCP network, andMesafor local simulations of
distributed systems, debugging and more high-performance executionInteractive and customisable dashboard from the get-go to:Visualize and change agent-network topologiesVisualize groups of cooperative agents asCoalitionsView and change the agents' parametersView the agents' outputs as plotly or matplotlib plots or generate and embed your
own imagesGeneric streams and agents that can be used as starting points in simulationsA sine generator with an associated agentA generator for a sine signal with jitter dynamically or with fixed lengthA white noise agentA metrologically enabled sine generator agent which also handles measurement uncertainties📈The agentMET4FOF dashboardagentMET4FOF comes bundled with our so calleddashboard. It is an optional component
of every agent network and provides a web browser based view. You can
observe the state of your agents, modify the connections between them and even add
more pre-made agents to your network all during run-time. The address to your
dashboard is printed to the console on every launch of an agent network.The following image is close to what you will find in your browser on execution of
tutorial 2. For details on the tutorials visit ourvideo tutorial series.🤓TutorialsAs mentioned above, agentMET4FOF comes bundled with severaltutorialsto
get you started as quick as possible. You will find tutorials on how to set up:a simple pipeline to plot a signala simple pipeline with signal postprocessingan advanced pipeline with multichannel signalsa simple metrological datastreampipelines to determine redundancy in sensor networksa pipeline to reduce noise and jitter in sensor readings… andmore!📖Documentation and screencastsExtendeddocumentation can be found on ReadTheDocs.Screencast seriesAdditionally, we provide somescreencasts based on agentMET4FOF 0.4.1 on the project homepagein the sectionTutorials for the multi-agent system agentMET4FOF.
You can self-register on the linked page and get started immediately. The video series
begins with our motivation for creating agentMET4FOF, guide you through the
installation of Python and other recommended software until you execute the tutorials
on your machine.Live online tutorial during early developmentIn an early development stage we held a live online tutorial based onagentMET4FOF 0.1.0which you candownload.If questions arise, or you feel something is missing, reach out tous.💻InstallationThere are different ways to run agentMET4FOF. Either:youinstall Pythonand our packageagentMET4FOFin a virtual Python
environment on your computer, oryouinstall Docker,start agentMET4FOF in
a containerandvisit the Jupyter Notebook server and the agentMET4FOF dashboard directly in
your browseror evendeploy it over a proper webserver.In thevideo tutorials serieswe guide you through every step of option 1. More detailed instructions on both
options you can find in theinstallation
section of the docs.🐝ContributingWhenever you are involved with agentMET4FOF, please respect ourCode of Conduct.
If you want to contribute back to the project, after reading our Code of Conduct,
take a look at our open developments in theproject board,pull requestsand searchthe issues. If you find something similar to
your ideas or troubles, let us know by leaving a comment or remark. If you have
something new to tell us, feel free to open a feature request or bug report in the
issues. If you want to contribute code or improve our documentation, please check ourcontributing guide.💨Coming soonImproved handling of metadataMore advanced signal processingFor a comprehensive overview of current development activities and upcoming tasks,
take a look at theproject board,issuesandpull requests.🖋CitationIf you publish results obtained with the help of agentMET4FOF, please cite the linked.💎AcknowledgementThis work was part of the Joint Research ProjectMetrology for the Factory of the
Future (Met4FoF), project number 17IND12of the European Metrology Programme for Innovation and Research (EMPIR). TheEMPIRis jointly funded by the EMPIR participating
countries within EURAMET and the European Union.⚠DisclaimerThis software is developed as a joint effort of several project partners namely:Institute for Manufacturing of the University of Cambridge (IfM)Physikalisch-Technische Bundesanstalt (PTB)Van Swinden Laboratory (VSL)National Physics Laboratory (NPL)under the lead of IfM. The software is made available "as is" free of cost. The
authors and their institutions assume no responsibility whatsoever for its use by
other parties, and makes no guarantees, expressed or implied, about its quality,
reliability, safety, suitability or any other characteristic. In no event will the
authors be liable for any direct, indirect or consequential damage arising in
connection with the use of this software.©LicenseagentMET4FOF is distributed under theLGPLv3 license.