Argo is a customized agent architecture built on the Jason framework that extends Jason’s standard agents by adding the ability to control microcontrollers. Argo agents interact with the physical environment, capturing information from the environment using sensors and acting by sending commands to the microcontroller to activate the actuators. Sensors’ information is automatically processed as perceptions in the agent’s belief base.
- Go to Argo-JCM Package
First, you need to deploy the Javino Blink example on your Arduino Board. Follow the steps below:
- Download the latest Javino Library.
- Import the library into your Arduino IDE.
- Create a new project with the Javino Blink example.
- Deploy the code on your Arduino Board.
To install Jason-CLI follow these instructions: Jason-CLI Installation.
In a terminal, execute the following command:
jason app create helloArgo --console
Download the Argo .jar into lib folder as folows:
wget https://github.com/chon-group/argo/raw/master/out/argo.jar -P helloArgo/lib/
Edit the project file helloArgo/helloArgo.mas2j as follows:
MAS helloArgo {
agents: bob agentArchClass jason.Argo;
aslSourcePath: "src/agt";
}
Edit the agent file helloArgo/src/agt/bob.asl as follows:
/* Initial beliefs and rules */
serialPort(ttyACM0).
/* Initial goals */
!start.
/* Plans */
+!start:
serialPort(Port) <-
.print("Ah, Mr. Anderson, I see you are as predictable in this world as you are in the other.");
argo.port(Port);
argo.percepts(open).
+ledStatus(on) <-
.print("Turning ON the Led in Arduino!");
argo.act(ledOff).
+ledStatus(off) <-
.print("Turning OFF the Led in Arduino!");
argo.act(ledOn).
+port(Port,Status):
Status = off | Status = timeout <-
argo.percepts(close);
.print("It's not over, Mr. Anderson! It's not over!").
sudo chmod 777 /dev/ttyACM0
jason helloArgo/helloArgo.mas2j
Argo is licensed under a Creative Commons Attribution 4.0 International License. The licensor cannot revoke these freedoms as long as you follow the license terms:
- Attribution — You must give appropriate credit like below:
Pantoja, C.E., Stabile, M.F., Lazarin, N.M., Sichman, J.S. (2016). ARGO: An Extended Jason Architecture that Facilitates Embedded Robotic Agents Programming. In: Baldoni, M., Müller, J., Nunes, I., Zalila-Wenkstern, R. (eds) Engineering Multi-Agent Systems. EMAS 2016. Lecture Notes in Computer Science(), vol 10093. Springer, Cham. https://doi.org/10.1007/978-3-319-50983-9_8
@InProceedings{10.1007/978-3-319-50983-9_8,
author="Pantoja, Carlos Eduardo and Stabile, M{\'a}rcio Fernando and Lazarin, Nilson Mori and Sichman, Jaime Sim{\~a}o",
editor="Baldoni, Matteo and M{\"u}ller, J{\"o}rg P. and Nunes, Ingrid and Zalila-Wenkstern, Rym",
title="{ARGO: An Extended Jason Architecture that Facilitates Embedded Robotic Agents Programming}",
booktitle="Engineering Multi-Agent Systems",
year="2016",
publisher="Springer International Publishing",
address="Cham",
pages="136--155",
isbn="978-3-319-50983-9"
}
Some papers that have used Argo agents to control Arduino microcontrollers