Skip to content

Argo for JaCaMo provides a customized agent architecture that extends standard agents by adding the ability to control microcontrollers (Arduino) using Javino.

License

Notifications You must be signed in to change notification settings

chon-group/argo-jcm

Repository files navigation

Argo for JaCaMo

It's a JaCaMo Package that provides a customized agent architecture that extends standard agents by adding the ability to control microcontrollers (Arduino) using Javino.

Creating Hello Argo with JaCaMo

Dependencies

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. arduino
  • Deploy the code on your Arduino Board.

Creating a JaCaMo Project

To install JaCaMo-CLI follow these instructions: JaCaMo-CLI Installation.

In a terminal, execute the following command:

jacamo app create hello_argo --console

Including the Argo Package in the JaCaMo Project

Edit the project file hello-argo/hello_argo.jcm as follows:

mas hello_argo {
    agent bob: sample_agent.asl {
      ag-arch: jason.Argo
    }
    uses package: argo "com.github.chon-group:argo-jcm:1.1"
}

Edit the agent file hello-argo/src/agt/sample_agent.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!").

Running

sudo chmod 777 /dev/ttyACM0
jacamo hello-argo/hello-argo.jcm

Tutoria-argo-jcm

COPYRIGHT

Creative Commons License
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"
}

EXTRA

Some papers that have used Argo agents to control Arduino microcontrollers

About

Argo for JaCaMo provides a customized agent architecture that extends standard agents by adding the ability to control microcontrollers (Arduino) using Javino.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published