TARTARUS

Unleash the power of Tartarus!

Enter the realm of Tartarus and discover how real mobile agents can control the Cyber and Physical worlds.



Coming soon...

TarPy: Tartarus for Python Programmers

Tartarus Mobile Agents over the Internet

Overture

As per Greek mythology Tartarus refers to an oubliette or dungeon, possibly like Hades, where the evil and wicked were sent to be tormented. The name has also been used to refer to a primordial force or deity [Source: Wiki].

In our world, Tartarus refers to an open source Multi-Agent Platform which can take in your problems and churn out solutions. Tartarus is the new open source version of Typhon built on SWI-Prolog, at the Robotics Lab., Dept. of Computer Science and Engg., Indian Institute of Technology Guwahati.

Introduction

Written in SWI-Prolog, Tartarus, facilitates users to create overlay sort of network of nodes comprising either a single PC/laptop/embedded system or several such devices connected as a LAN (wired/wireless) and then program both static and mobile agents. Agents in Tartarus are basically programs written in Prolog. They can be programmed to perform tasks autonomously at select nodes and even migrate to others in the network they inhabit. Such agents can even be programmed to clone (copy and multiply) on-the-fly and then move around the network and execute tasks concurrently, providing a distributed and decentralized processing environment. These agents can also carry programs as payloads. Payloads could be written in Prolog or Python and executed at desired nodes. One could try out using other languages as well. Agents can communicate amongst one another and also with programs at a node. As of now, Tartarus can be run on Windows, Ubuntu and Raspbian operating systems.

Tartarus can run on the Raspberry Pi. It can be used to sense the sensors on-board and also control the actuators (motors, relays, etc.) connected to the board.

***Tartarus - Some salient features***

* Multi-threading: Tartarus allows for threaded execution of agents so that they all function concurrently. These threads are managed by its core engine thereby ridding the developers of comprehending the complexities of implementing mutual exclusion.

* Heterogeneity: Tartarus supports both Windows, Ubuntu and Raspbian and can thus be installed in most hardware which run these operating systems. Agents running on top of any of these operating systems can communicate with one another providing cross platform interchange.

* Hardware-in-the-loop: Tartarus can be ported on embedded boards such as the Raspberry Pi. It also comes with an interface for the LEGO MINDSTORM NXT robots. These special interfaces allow developers to access and control the underlying hardware, thus making it easier for a developer to build applications with hardware-in-the-loop.

* Distributed & Decentralized Control: Multi-Agent Systems (MAS) provide for ideal solutions for applications that demand distributed computations and communications among heterogeneous entities. Tartarus agents can share information between nodes, migrate amongst them and even execute the code at a destination/remote node. Mobile agents within it can cater to the implementation of decentralized control.

* Mobility & Cloning: Agents can also be mobile and can migrate from one node to another in a network they inhabit. They can also clone as and when required contributing to a degree of parallelism in the network.

* Payloads: A mobile agent within Tartarus can carry a set of programs/data as payload to be either executed at the destination node or be downloaded for use at some node. Agents can also be programmed to either upload/download/offload these payloads at specific nodes or based on an event. Changing a payload can thus facilitate the altering of the behaviour of an agent even in run time.

* Security: Security implemented for the agents in Tartarus. Mobile agents can enter a node only if they possess a key (provided to them a priori). This key should match with the one in the platform installed at the node; else entry is rejected. Developers can put in a bit of effort to provide for a more sophisticated security arrangement based on their application.

*Text to Speech: The users can turn on the feature of text to speech in the current version of tartarus.

*Agent Hoptime: The agents hoptime in real time from one node of Tartarus to other is also made available in the current version of Tartarus, which gives the users information to analyse the hoptimes of agents across nodes.

Check out a video on Tartarus here.

# What has Tartarus been used for, so far?

Agents provide for distributed, centralized/decentralized and concurrent executions across a network.

They can execute asynchronously and autonomously. At the Robotics Lab. we have used it for a range of application scenarios which include –

Networked Robot control, IoT based control, Indoor Localization, Synchronization, VANETs, Asynchronous Intelligence Sharing across a network, Decentralized Clonal Controller, On-the-fly-Programming, Green Corridors for urban traffic, IoT for Railways, Algorithm selection, Mutual Exclusions in Real Robots, Emulation of Bio-inspired mechanisms such as Pheromoning, Stigmergy, Clonal Selection, Idiotypic Networks, Genetic Algorithms, …

(For more information do refer to the list of papers at the link: Click here!

# How can Tartarus help in other areas?

A fairly stable version of Tartarus is now also available for the Raspberry Pi. We will be making the same available shortly. This version designated Agents-on-Pi (AgPi) also provides an interface to sensors and actuators on-board the Pi making it easier to program for autonomous decision making. This facilitates rapid prototyping of an intelligent Internet of Things (IoT).

With data distributed across several nodes, agents (both static and mobile) can be programmed to process them in a decentralized and concurrent manner. Mobile agents can be made to move from one node to another and autonomously control the flow of information between such data islands. Bio-inspired (optimizing) algorithms, which are mostly decentralized and distributed, can be emulated, in almost the way Mother Nature does. By injecting new programs via agents, the behavior of a system can also be changed on-the-fly.

Thinking aloud, it could be interesting to develop a network wherein the nodes programmed to behave like atoms/molecules in a liquid act concurrently. This could aid in the study of the ways in which a more complex protein molecule develops using mobile agents enacting as portions of the protein chain. Molecule formation could thus be investigated within a network.

Simulations could be given up for emulations in Tartarus based networks to churn better and more realistic data in decentralized and distributed scenarios.

We leave it to you to think louder (!) and get back to the Tartarus team, if required, with the problems you need to tackle. We shall do our best to aid you in making this demon help you find a solution.

Some Works realized using Tartarus

Here are few of the tasks accomplished using Tartarus:

1. Robo Soccer

In this work, a group of robots is engaged in a soccer game wherein Tartarus is being run within each of the robots.

2. Puppy Dance

Here, few robots designed as “Puppies” dance in synchronisation. Agents move through each of them and maintain the synchronisation of steps.

3. Immuno Inspired Behavior Adaptation in Multi Robot Systems

Here, a group of robots strive to place the colored objects into their respective bins. Upon changing the color of the bins and the rules, the system learns to adapt to the dynamically changed conditions as well.

3. Synchronisation of Tasks among Multi-Robot Systems

In this work, a task switching algorithm has been implemented; where a group of robots is supposed to execute a sequence of tasks and the next task is started only when a particular task in the sequence is completed by all the robots. Tartarus agents move through each of the robots and ensure synchrony.

4. On an Immuno Inspired Distributed, Embodied Action Evolution cum Selection Algorithm

Here, a complex task is solved by decomposing it into simpler tasks using an immuno-inspired algorithm. The repertoire of the solutions to the tasks of every robot is shared with other robots in the vicinity via agents on Tartarus.

5. Sequential execution of tasks in a sequential manner

Group of robots execute their respective tasks in a sequential manner. Agents moving through each of the robots ensure the sequence.

6. Task Allocation in multiple robots

Here, task allocation across multiple robots is being achieved using nomadic soft agents with multiple competing instances of tasks. Box pushing is considered as the task here.

7. Cyber Physical System in Tartarus

A Cyber Physical System (CPS) implemented with Agents on Tartarus

8. Multi Agent Sequential Tasking in a group of Robots

In a group of robots, each robot executes a set of tasks in sequential manner where the tasks are pipelined for better utilization of the resources.

For more information visit our Robotics Lab. pages at www.iitg.ac.in/cse/robotics