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ł

  1. jeżeli czarne pole to STOP
  2. jeżeli białe pole to obróć się w prawo
  3. jeżeli robot jest w odległości mniejszej niż 1/4 odległości granicznej od przeszkody to obróć o 1800
  4. jeżeli robot jest w odległości mniejszej niż 1/2 odległości granicznej od przeszkody to obróć w prawo o 900
  5. jeżeli robot jest w odległości mniejszej niż odległości granicznej od przeszkody to obróć w lewo o 900
  6. 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 :-
      nxt_light_sensor(Port,Value),
      Value == RGB_white,
      nxt_turn(Speed,+90).
start :-
      nxt_light_sensor(Port,Value),
      Value == RGB_black,
      nxt_go(0).
start :-
      ultrasonic_sensor(Value),
      Value =< N/4,
      nxt_turn(Speed,+180).
start :-
      ultrasonic_sensor(Value),
      Value =< N/2,
      nxt_turn(Speed,+90).
start :-
      ultrasonic_sensor(Value),
      Value =< N,
      nxt_turn(Speed,-90).
start :-
      nxt_go(1).

XTT

XTT

pl/miw/miw08_mindstormsdesign/grid.1211139085.txt.gz · ostatnio zmienione: 2019/06/27 15:59 (edycja zewnętrzna)
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0