Khepera robots with argumentative reasoning E. Ferretti1, M. Errecalde1, A. García2 and G. Simari2 1 Universidad

Nacional de San Luis

2 Universidad

Nacional del Sur

Argentina

Index ! ! ! ! ! !

General motivation KheDeLP framework DeLP Contribution of our work Example Conclusions and Future work

Index ! ! ! ! ! !

General motivation KheDeLP framework DeLP Contribution of our work Example Conclusions and Future work

Index ! ! ! ! ! !

General motivation KheDeLP framework DeLP Contribution of our work Example Conclusions and Future work

Index ! ! ! ! ! !

General motivation KheDeLP framework DeLP Contribution of our work Example Conclusions and Future work

Index ! ! ! ! ! !

General motivation KheDeLP framework DeLP Contribution of our work Example Conclusions and Future work

Index ! ! ! ! ! !

General motivation KheDeLP framework DeLP Contribution of our work Example Conclusions and Future work

General motivations !

To develop deliberative agents to control the robots behavior.

!

To support knowledge representation and high-level reasoning.

!

To hide low-level robot-computer communication being able of concentrating on the high-level problem specification.

General motivations !

To develop deliberative agents to control the robots behavior.

!

To support knowledge representation and high-level reasoning.

!

To hide low-level robot-computer communication being able of concentrating on the high-level problem specification.

General motivations !

To develop deliberative agents to control the robots behavior.

!

To support knowledge representation and high-level reasoning.

!

To hide low-level robot-computer communication being able of concentrating on the high-level problem specification.

KheDeLP framework scheme stand-alone applications

agent module

Cognitive layer Sensorial / Effectorial layer interconnection layer low level communication layer Webots interface

KRobot class

Defeasible Logic Programming (DeLP) !

Facts " " "

!

Strict Rules: L0 ← L1, L2, …, Ln "

!

robot(khep1) box(box1) near(box1,khep1)

nearer_store(X,Y) ← near(X,store), far(Y,store)

Defeasible Rules: L0 ! L1, L2, …, Ln " "

choose(X) ! smaller(X,Y) ~choose(X) ! nearer_store(Y,X)

Defeasible Logic Programming (DeLP) !

Facts " " "

!

Strict Rules: L0 ← L1, L2, …, Ln "

!

robot(khep1) box(box1) near(box1,khep1)

nearer_store(X,Y) ← near(X,store), far(Y,store)

Defeasible Rules: L0 ! L1, L2, …, Ln " "

choose(X) ! smaller(X,Y) ~choose(X) ! nearer_store(Y,X)

Defeasible Logic Programming (DeLP) !

Facts " " "

!

Strict Rules: L0 ← L1, L2, …, Ln "

!

robot(khep1) box(box1) near(box1,khep1)

nearer_store(X,Y) ← near(X,store), far(Y,store)

Defeasible Rules: L0 ! L1, L2, …, Ln " "

choose(X) ! smaller(X,Y) ~choose(X) ! nearer_store(Y,X)

How DeLP works DeLP Program P

Defeasible rules Strict rules Facts DeLP Interpreter

User Query L ?- choose(box1) Possible Answers to Query L • YES, a warranted argument 〈A, L〉 exists • NO, a warranted argument 〈A, ∼L〉 exists • UNDECIDED, none of the above cases hold.

Contribution of our work !

The improvement of the cognitive layer consisted in integrating it an implementation of a DeLP interpreter that provides a reasoning service for a group of agents (DeLP-server).

!

We show how to program the robots’ behavior using argumentative reasoning.

Contribution of our work !

The improvement of the cognitive layer consisted in integrating it an implementation of a DeLP interpreter that provides a reasoning service for a group of agents (DeLP-server).

!

We show how to program the robots’ behavior using argumentative reasoning.

New Advantages !

First "

"

!

Before: The DeLP interpreter’s code was embedded into the framework. Now: DeLP-server runs as a standalone program that interacts with the robots using the TCP/IP protocol.

Second "

"

Before: The framework was able to interact with only one robot. Now: Multiple robots can be in operation within the framework, and one robot may be connected to several DeLP-servers.

New Advantages !

First "

"

!

Before: The DeLP interpreter’s code was embedded into the framework. Now: DeLP-server runs as a standalone program that interacts with the robots using the TCP/IP protocol.

Second "

"

Before: The framework was able to interact with only one robot. Now: Multiple robots can be in operation within the framework, and one robot may be connected to several DeLP-servers.

New Advantages !

Third "

"

!

Before: The robot’s perception had to update the program loaded in the DeLP interpreter. Now: DeLP-server temporarily binds the robot’s perception with the program it has stored, to answer the current query (contextual query).

Fourth "

"

Before: Two robots in the same environment but running in different frameworks had to independently get almost the same perception from the global camera (overhead). Now: Multiple robots share the same perception of the global camera.

New Advantages !

Third "

"

!

Before: The robot’s perception had to update the program loaded in the DeLP interpreter. Now: DeLP-server temporarily binds the robot’s perception with the program it has stored, to answer the current query (contextual query).

Fourth "

"

Before: Two robots in the same environment but running in different frameworks had to independently get almost the same perception from the global camera (overhead). Now: Multiple robots share the same perception of the global camera.

DeLP-server features !

A query for a DeLP-Server is a pair [Φ,Q] " "

!

!

Q is the literal that DeLP will try to warrant; Φ is the context for that query.

The context of a query can be any DeLPprogram. The answer returned for a query [Φ,Q] will depend on: " "

The DeLP-program stored in the DeLP-Server; The context Φ.

DeLP-server features !

A query for a DeLP-Server is a pair [Φ,Q] " "

!

!

Q is the literal that DeLP will try to warrant; Φ is the context for that query.

The context of a query can be any DeLPprogram. The answer returned for a query [Φ,Q] will depend on: " "

The DeLP-program stored in the DeLP-Server; The context Φ.

DeLP-server features !

A query for a DeLP-Server is a pair [Φ,Q] " "

!

!

Q is the literal that DeLP will try to warrant; Φ is the context for that query.

The context of a query can be any DeLPprogram. The answer returned for a query [Φ,Q] will depend on: " "

The DeLP-program stored in the DeLP-Server; The context Φ.

Our proposed methodology !

To have the robot’s knowledge represented as a DeLP-program stored in one or many DeLP-Servers.

!

To send the current state of the environment as contextual information in every query.

Our proposed methodology !

To have the robot’s knowledge represented as a DeLP-program stored in one or many DeLP-Servers.

!

To send the current state of the environment as contextual information in every query.

Example: description !

A robot has to transport to a particular place (store), scattered boxes of different sizes (small, medium and big).

!

To do this task, the robot has to deal with different kind of problems: " " "

perception of boxes and obstacles; navigation through the environment; making decisions about what to do next.

Example: description !

A robot has to transport to a particular place (store), scattered boxes of different sizes (small, medium and big).

!

To do this task, the robot has to deal with different kind of problems: " " "

perception of boxes and obstacles; navigation through the environment; making decisions about what to do next.

Example: description !

!

!

There is a global camera which provides the robot the necessary information to perform its activities. The robot is not able of measuring the state of its battery, so it cannot perform a globally optimized task. A greedy strategy is used to select the next box: " " "

The robot will prefer its nearer boxes; The boxes nearer to the store; The smaller boxes.

Example: description !

!

!

There is a global camera which provides the robot the necessary information to perform its activities. The robot is not able of measuring the state of its battery, so it cannot perform a globally optimized task. A greedy strategy is used to select the next box: " " "

The robot will prefer its nearer boxes; The boxes nearer to the store; The smaller boxes.

Example: description !

!

!

There is a global camera which provides the robot the necessary information to perform its activities. The robot is not able of measuring the state of its battery, so it cannot perform a globally optimized task. A greedy strategy is used to select the next box: " " "

The robot will prefer its nearer boxes; The boxes nearer to the store; The smaller boxes.

Example: environment

robot(khep1) self(khep1) box(box1) box(box2) box(box3) box(box4) small(box1) small(box2) medium(box3)

big(box4) near(box1, khep1) far(box2, khep1) far(box3, khep1) far(box4, khep1) far(box1, store) near(box2, store) near(box3, store) far(box4, store)

Example: a simple robot control cycle simple.pl :-use_module(KheDeLP). :-use_module(global_camera). behave:-sense(Current_context), decide_action(Current_context, Action), execute(Action), behave. decide_action(CC,Act):-answer(CC, choose(X), Answer, choose(Sbox)), ( Answer=yes, Act=goto(Sbox) ; Answer=no, Act=wait ; Answer=undecided, Act=goto(Sbox)).

Example: a simple robot control cycle simple.pl :-use_module(KheDeLP). :-use_module(global_camera). behave:-sense(Current_context), decide_action(Current_context, Action), execute(Action), behave. decide_action(CC,Act):-answer(CC, choose(X), Answer, choose(Sbox)), ( Answer=yes, Act=goto(Sbox) ; Answer=no, Act=wait ; Answer=undecided, Act=goto(Sbox)).

Example: a simple robot control cycle simple.pl :-use_module(KheDeLP). :-use_module(global_camera). behave:-sense(Current_context), decide_action(Current_context, Action), execute(Action), behave. decide_action(CC,Act):-answer(CC, choose(X), Answer, choose(Sbox)), ( Answer=yes, Act=goto(Sbox) ; Answer=no, Act=wait ; Answer=undecided, Act=goto(Sbox)).

Example: execution Ciao-Prolog 1.9 #351: Fri Jun 25 11:13:08 2004 ?-ensure_loaded(simple). behave. sense(Current_context)

Example: execution Ciao-Prolog 1.9 #351: Fri Jun 25 11:13:08 2004 ?-ensure_loaded(simple). behave. sense([robot(khep1), self(khep1), box(box1), box(box2), box(box3), box(box4), small(box1), small(box2), medium(box3), big(box4), near(box1, khep1), far(box2, khep1), far(box3, khep1), far(box4, khep1), far(box1, store), near(box2, store), near(box3, store), far(box4, store)]),

Example: execution Ciao-Prolog 1.9 #351: Fri Jun 25 11:13:08 2004 ?-ensure_loaded(simple). behave. sense([robot(khep1), self(khep1), box(box1), box(box2), box(box3), box(box4), small(box1), small(box2), medium(box3), big(box4), near(box1, khep1), far(box2, khep1), far(box3, khep1), far(box4, khep1), far(box1, store), near(box2, store), near(box3, store), far(box4, store)]),

decide_action(Current_context, Action)

Example: execution Ciao-Prolog 1.9 #351: Fri Jun 25 11:13:08 2004 ?-ensure_loaded(simple). behave. sense([robot(khep1), self(khep1), box(box1), box(box2), box(box3), box(box4), small(box1), small(box2), medium(box3), big(box4), near(box1, khep1), far(box2, khep1), far(box3, khep1), far(box4, khep1), far(box1, store), near(box2, store), near(box3, store), far(box4, store)]),

decide_action(Current_context, Action)

Example: execution Ciao-Prolog 1.9 #351: Fri Jun 25 11:13:08 2004 ?-ensure_loaded(simple). behave. sense([robot(khep1), self(khep1), box(box1), box(box2), box(box3), box(box4), small(box1), small(box2), medium(box3), big(box4), near(box1, khep1), far(box2, khep1), far(box3, khep1), far(box4, khep1), far(box1, store), near(box2, store), near(box3, store), far(box4, store)]), decide_action([robot(khep1), self(khep1), box(box1), box(box2), box(box3), box(box4), small(box1), small(box2), medium(box3), big(box4), near(box1, khep1), far(box2, khep1), far(box3, khep1), far(box4, khep1), far(box1, store), near(box2, store), near(box3, store), far(box4, store)], Action)

Example: execution Ciao-Prolog 1.9 #351: Fri Jun 25 11:13:08 2004 ?-ensure_loaded(simple). behave. sense([robot(khep1),…]), decide_action([robot(khep1), …], Action) answer([robot(khep1), self(khep1), box(box1), box(box2), box(box3), box(box4), small(box1), small(box2), medium(box3), big(box4), near(box1, khep1), far(box2, khep1), far(box3, khep1), far(box4, khep1), far(box1, store), near(box2, store), near(box3, store), far(box4, store)], choose(X), Answer, choose(Sbox)),

Example: argumentation

choose(box1)

smaller(box1,box3)

Example: argumentation ∼choose(box1) nearer_store(box2,box1) choose(box1)

∼choose(box1) smaller(box1,box3) nearer_store(box3,box1)

Example: argumentation ∼choose(box1) nearer_store(box2,box1)

choose(box1) nearer_robot(box1,box2)

choose(box1)

∼choose(box1)

choose(box1)

smaller(box1,box3) nearer_store(box3,box1)

nearer_robot(box1,box2)

Example: execution Ciao-Prolog 1.9 #351: Fri Jun 25 11:13:08 2004 ?-ensure_loaded(simple). behave. sense([robot(khep1),…]), decide_action([robot(khep1), …], Action) answer([robot(khep1), …], choose(X), yes, choose(box1)), ( yes = yes, Act = goto(box1) ; ;…)

Example: execution Ciao-Prolog 1.9 #351: Fri Jun 25 11:13:08 2004 ?-ensure_loaded(simple). behave. sense([robot(khep1),…]), decide_action([robot(khep1), …], Action) answer([robot(khep1), …], choose(X), yes, choose(box1)), ( yes = yes, Act = goto(box1) ; ;…) execute(goto(box1))

Conclusions !

Programming the cognitive layer with DeLP-server allowed us: " "

"

"

!

Ease of updating of the DeLP interpreter’s code. To have multiple robots in operation within the framework, connected to one or many DeLP-servers. To perform contextual queries to facilitate working with the robots’ perceptions. To reduce overhead in the transmission of the images, because all the robots share the same perception of the global camera.

As the framework was developed in a modular way, other capabilities like learning and high-level planning can also be incorporated in the cognitive layer.

Conclusions !

Programming the cognitive layer with DeLP-server allowed us: " "

"

"

!

Ease of updating of the DeLP interpreter’s code. To have multiple robots in operation within the framework, connected to one or many DeLP-servers. To perform contextual queries to facilitate working with the robots’ perceptions. To reduce overhead in the transmission of the images, because all the robots share the same perception of the global camera.

As the framework was developed in a modular way, other capabilities like learning and high-level planning can also be incorporated in the cognitive layer.

Conclusions !

Programming the cognitive layer with DeLP-server allowed us: " "

"

"

!

Ease of updating of the DeLP interpreter’s code. To have multiple robots in operation within the framework, connected to one or many DeLP-servers. To perform contextual queries to facilitate working with the robots’ perceptions. To reduce overhead in the transmission of the images, because all the robots share the same perception of the global camera.

As the framework was developed in a modular way, other capabilities like learning and high-level planning can also be incorporated in the cognitive layer.

Conclusions !

Programming the cognitive layer with DeLP-server allowed us: " "

"

"

!

Ease of updating of the DeLP interpreter’s code. To have multiple robots in operation within the framework, connected to one or many DeLP-servers. To perform contextual queries to facilitate working with the robots’ perceptions. To reduce overhead in the transmission of the images, because all the robots share the same perception of the global camera.

As the framework was developed in a modular way, other capabilities like learning and high-level planning can also be incorporated in the cognitive layer.

Conclusions !

Programming the cognitive layer with DeLP-server allowed us: " "

"

"

!

Ease of updating of the DeLP interpreter’s code. To have multiple robots in operation within the framework, connected to one or many DeLP-servers. To perform contextual queries to facilitate working with the robots’ perceptions. To reduce overhead in the transmission of the images, because all the robots share the same perception of the global camera.

As the framework was developed in a modular way, other capabilities like learning and high-level planning can also be incorporated in the cognitive layer.

Future work !

! !

We are integrating a recognition module that interacts with a global camera, and which translates the perception of the camera to DeLP facts, incorporating them in the robot’s knowledge base. We are adapting an existing navigation system to control the robot trajectory. To extend the low-level communication layer to allow the communication among the robots.

Future work !

! !

We are integrating a recognition module that interacts with a global camera, and which translates the perception of the camera to DeLP facts, incorporating them in the robot’s knowledge base. We are adapting an existing navigation system to control the robot trajectory. To extend the low-level communication layer to allow the communication among the robots.

Future work !

! !

We are integrating a recognition module that interacts with a global camera, and which translates the perception of the camera to DeLP facts, incorporating them in the robot’s knowledge base. We are adapting an existing navigation system to control the robot trajectory. To extend the low-level communication layer to allow the communication among the robots.

Questions?

Thank You very much for your attention …

Khepera robots with argumentative reasoning

Now: DeLP-server temporarily binds the robot's perception with the program it has stored, to answer the current query. (contextual query). ▫ Fourth. ❑ Before: Two robots in the same environment but running in different frameworks had to independently get almost the same perception from the global camera (overhead).

261KB Sizes 1 Downloads 252 Views

Recommend Documents

No documents