Skip to content
This repository has been archived by the owner on Oct 17, 2024. It is now read-only.
/ argo-jcm Public archive

Latest commit

 

History

History
109 lines (84 loc) · 4.15 KB

README.md

File metadata and controls

109 lines (84 loc) · 4.15 KB

Argo for JaCaMo

In this tutorial you will learn how to import the Argo BDI-agent Architecture in a JaCaMo project and execute a Blink Project (hello world).

Dependencies:

  1. JaCaMo Framework already installed.

  2. An IoT device using a serial communication channel, programmed using the Javino Blink Example.

    Arduino SimulIDE
    Blink tutorial with Arduino Board Blink tutorial with SimulIDE

Instructions:

  1. In a terminal command, create a Multiagent System Project, using the command below:

    jacamo app create jacamoWithArgo --console
    
  2. Include the Argo Package in the JaCaMo Project. Edit the project file jacamoWithArgo/jacamoWithArgo.jcm as follows:

    mas jacamoWithArgo {
    	agent bob: sample_agent.asl {
    	ag-arch: jason.Argo
    	}
    	uses package: argo "com.github.chon-group:Argo:+"
    }
    
  3. Change the file jacamoWithArgo/src/agt/sample_agent.asl including the content below:

    /* Initial beliefs and rules */
    serialPort(ttyACM0).            /* physical Arduino Board in /dev/ttyACM0  */
    //serialPort(ttyUSB0).          /* physical Arduino Board in /dev/ttyUSB0  */
    //serialPort(ttyEmulatedPort0). /* simulated arduino with simulIDE         */
    
    /* 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!").
    
    
  4. Execute the Multiagent System

    jacamo jacamoWithArgo/jacamoWithArgo.mas2j
    

The expected output:

Examples and Others

See the Argo Wiki Page

COPYRIGHT

Creative Commons License
The Argo Jacamo Package 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:

Lazarin, N.M., Pantoja, C.E., Viterbo, J. (2024). Dealing with the Unpredictability of Physical Resources in Real-World Multi-agent Systems. In: Rocha, A.P., Steels, L., van den Herik, J. (eds) Agents and Artificial Intelligence. ICAART 2023. Lecture Notes in Computer Science(), vol 14546. Springer, Cham. https://doi.org/10.1007/978-3-031-55326-4_3

BibTeX Citation
@InProceedings{argoJCMPackage,
	doi="10.1007/978-3-031-55326-4_3"
	author="Lazarin, Nilson Mori
	and Pantoja, Carlos Eduardo
	and Viterbo, Jos{\'e}",
	editor="Rocha, Ana Paula
	and Steels, Luc
	and van den Herik, Jaap",
	title="Dealing with the Unpredictability of Physical Resources in Real-World Multi-agent Systems",
	booktitle="Agents and Artificial Intelligence",
	year="2024",
	publisher="Springer Nature Switzerland",
	address="Cham",
	pages="48--71",
	isbn="978-3-031-55326-4"
}