To jest stara wersja strony!
Algorytmy omijania przeszkód
Poniżej zestawiono kilka algorytmów omijania przeszkód. Algorytmy te w większości wykorzystują echosondę.
Algorytm 1
Przed przystąpieniem do pracy należy przgotować planszę (plansza w postaci kwadratu złożona z 6×6 kwadratów o powierzchni mieszczącej robot mobilny). Zadaniem robota powinno być znalezienie czarnego kwadratu na planszy. Utrudnienie będzie polegać na tym, że w różnych miejscach na planszy pojawią się stojące przeszkody.
Zapis słowny reguł
jeżeli czarne pole to STOP
jeżeli białe pole to obróć się w prawo
jeżeli robot jest w odległości mniejszej niż 1/4 odległości granicznej od przeszkody to obróć o 1800
jeżeli robot jest w odległości mniejszej niż 1/2 odległości granicznej od przeszkody to obróć w prawo o 900
jeżeli robot jest w odległości mniejszej niż odległości granicznej od przeszkody to obróć w lewo o 900
jedź do przodu
Zapis regułowy
W poniższych regułach przyjęto, że reguły wykonują się w kolejności od 1 do 6. Jeżeli, któraś z reguł „zadziała”, to wówczas następuje powrót do ponownego sprawdzenia reguł od 1 do 6.
Rule: 1
if laser_value == 'black'
then STOP
Rule: 2
if laser_value == 'white'
then turn = + 90
Rule: 3
if ultrasonic_value < N/4
then turn = 180
Rule: 4
if ultrasonic_value < N/2
then turn = 90
Rule: 5
if ultrasonic_value < N
then turn = - 90
Rule: 6
go = max
Implementacja w Prologu
start :-
ultrasonic_sensor(Value),
Value > number,
go(0,speed,force).
start :-
ultrasonic_sensor(Value),
Value =< number,
turn(90,speed).
start :-
go(0,0,0).
XTT