1. KheDeLP: A Framework to Support. Defeasible Logic Programming for ... processor. ⢠512 KB RAM, 512 KB Flash memory
KheDeLP: A Framework to Support Defeasible Logic Programming for the Khepera Robots E. Ferretti1, M. Errecalde1, A. García2, and G. Simari2 1 Universidad
Nacional de San Luis
2 Universidad
Nacional del Sur
Argentina
1
Index ! ! ! ! ! ! !
Khepera 2 robot overview Webots simulator Motivation DeLP KheDeLP framework Motivating example Conclusions
2
Khepera 2 robot
• 60 mm diameter, 30 mm height, approx. 70 grams • eight infrared sensors to sense both ambient light levels and proximity to nearby objects • two DC motors
• on-board Motorola 68331 (25MHz) processor • 512 KB RAM, 512 KB Flash memory programmable via serial port • rechargeable NiMH batteries: aprox. 60 minutes of autonomy
3
Webots simulator
• It is a 3D realistic professional simulator that allows to build virtual worlds with objects and robots with different physical properties.
• It provides a considerable number of interfaces with real robots: " " " " "
Khepera Hemisson Lego Mindstorms Aibo etc.
4
Motivation ! ! !
To develop deliberative agents to control the robots coordination. 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.
5
Defeasible Logic Programming (DeLP) !
Facts # #
!
Strict Rules: L0 ← L1, L2, …, Ln #
!
target(white) ~target(black)
obstacle(X) ← ~target(X)
Defeasible Rules: L0 ! L1, L2, …, Ln # #
move_forward ! target_ahead ~move_forward ! target_ahead, obst_ahead 6
How DeLP works DeLP Program P
Defeasible rules Strict rules Facts DeLP Interpreter
User Query L ?- move_forward 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. 7
KheDeLP framework scheme stand-alone applications
agent module
Cognitive layer Sensorial / Effectorial layer interconnection layer low level communication layer Webots interface
KRobot class
8
Motivating example target(white) ~target(black) obstacle(X) ← ~target(X) move_forward ! target_ahead ~move_forward ! target_ahead, obst_ahead ~move_forward ! target_ahead, at_target target_ahead ! target(X), camera_detects(X) at_target ! target(X), prox_sensor_detects(X) turn ! obst_ahead turn ! target(X), ~camera_detects(X) obst_ahead ! obstacle(X), prox_sensor_detects(X) 9
Motivating example: situation 1
10
Motivating example: situation 1 !
!
Both the camera and the proximity sensors detect a white object. camera_detects(white) and prox_sensor_detects(white) succeed, and the following conflicting arguments can be obtained:
11
Motivating example: situation 2 ! !
Only camera_detects(white) holds. The argument A2 can not be constructed and therefore, the answer for move_forward will be YES, providing reasons for moving forward.
12
Motivating example: situation 2 ! !
Only camera_detects(white) holds. The argument A2 can not be constructed and therefore, the answer for move_forward will be YES, providing reasons for moving forward.
13
Motivating example: situation 3
14
Motivating example: situation 3 !
!
!
The target is ahead, but there is an obstacle to avoid. camera_detects(white) and prox_sensor_detects(black) hold. The argument A1 can be obtained but A2 can not.
15
Motivating example: situation 3 !
!
!
The target is ahead, but there is an obstacle to avoid. camera_detects(white) and prox_sensor_detects(black) hold. The argument A1 can be obtained but A2 can not.
16
Motivating example: situation 3 ! !
A3, a new proper defeater for A1, appears. A4 provides a warrant for turn.
17
Conclusions #include #include
Before …
int main(){ int i, sensor[6], delta, speed[2]; printf(" S0 S1 S2 S3 S4 S5 Delta L R "); while (TRUE) { /* read front 6 sensors */ for (i=0; i