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 …