MADS-NET is a simple framework for implementing a network of distributed agents that can exchange information via ZeroMQ.
It is made by a main set of executables available in the MADS tools collection repo, which also provides installers for Linux, MacOS and Windows at https://git.new/mads.
The MADS tools collection includes a broker and a set of general purpose agents that can act as sources, filters, or sinks. The actual operations performed by agents can be customized either via scripting languages (using simple plugin interface), or by implementing dedicated plugins in C++.
The mads package command can install pre-compiled binaries of the most common plugins and custom agents, but you can also build and install plugins from source code.
The pre-build bianaries available via mads package are:
arduino.plugin: Interfacing with an Arduino via Serial port repoarduinoQ.plugin: Runs on an Arduino Uno Q and directly taps into its MCU repohdf5.plugin: Dumps data into a HDF5 file repomads-chat: Allows to chat with the MADS network repomads-fmu: Uses a Functional Mock-up Interface (FMU) as a filter repomads-python: Implements an agent in Python repoonnx-agent: Uses ONNX models as a filter or a source repor.plugin: Implements an agent in R reporerunner.plugin: Logs data to the Rerun.io viewer repotui.plugin: Terminal User Interface for sending metadata commands to MADS network repovalidator.plugin: Validates data traffic repo
Some other available plugins are:
- hpe2D_plugin: performs human pose estimation from a camera stream
- mqtt_plugin: acts as a bridge with an MQTT network via two agents:
mqtt2mads.plugin(source) andmads2mqtt.plugin(sink) - say_plugin: Text-to-speech of incoming messages
- ble_plugin: Bluetooth Low Energy source plugin
- lua_plugin: Interfacing Lua scripts to the MADS network (useful for prototyping and rapid development)
- rpio_plugin: source and sink agents for Raspberry Pi GPIO pins (using
libgpiodv1.6) - agents_status_plugin: a sink agent that tracks active agents and their status