Różnice

Różnice między wybraną wersją a wersją aktualną.

Odnośnik do tego porównania

Both sides previous revision Poprzednia wersja
Nowa wersja
Poprzednia wersja
pl:miw:miw08_mindstormsdesign:grid [2008/05/18 21:32]
miw
pl:miw:miw08_mindstormsdesign:grid [2019/06/27 15:50] (aktualna)
Linia 1: Linia 1:
 ====== Algorytmy omijania przeszkód ====== ====== Algorytmy omijania przeszkód ======
 Poniżej zestawiono kilka algorytmów omijania przeszkód. Algorytmy te w większości wykorzystują echosondę. Poniżej zestawiono kilka algorytmów omijania przeszkód. Algorytmy te w większości wykorzystują echosondę.
 +
 +
 +
 ===== Algorytm 1 ===== ===== Algorytm 1 =====
-Przed przystąpieniem do pracy należy przgotować planszę (plansza w postaci kwadratu złożona z 6x6 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.+{{ :​pl:​miw:​miw08_mindstormsdesign:​plansza.jpg?​150|plansza}} 
 +Przed przystąpieniem do pracy należy przgotować planszę (plansza w postaci kwadratu złożona z 6x6 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 (rys. czerwone pola). Plansza powinna mieć białe obramowanie. 
 +Na tak przygotowanej planszy, można postawić robota mobilnego w dowolnym punkcie. Robot powinien znaleźć czarne pole omijając po drodze ​przeszkody. 
 ==== Zapis słowny reguł ==== ==== Zapis słowny reguł ====
       - jeżeli czarne pole to STOP       - jeżeli czarne pole to STOP
Linia 10: Linia 16:
       - jeżeli robot jest w odległości mniejszej niż odległości granicznej od przeszkody to obróć w lewo o 90<​sup>​0</​sup>​       - jeżeli robot jest w odległości mniejszej niż odległości granicznej od przeszkody to obróć w lewo o 90<​sup>​0</​sup>​
       - jedź do przodu       - jedź do przodu
 +
  
 ==== Zapis regułowy ==== ==== Zapis regułowy ====
Linia 15: Linia 22:
 <code ada> <code ada>
 Rule: 1 Rule: 1
-if laser_value ​== '​black'​+if light_value ​== '​black'​
 then STOP then STOP
  
 Rule: 2 Rule: 2
-if laser_value ​== '​white'​+if light_value ​== '​white'​
 then turn = + 90 then turn = + 90
  
Linia 37: Linia 44:
 go = max go = max
 </​code>​ </​code>​
 +
  
  
Linia 51: Linia 59:
       nxt_turn(Speed,​+90).       nxt_turn(Speed,​+90).
 start :- start :-
-      ​ultrasonic_sensor(Value),+      ​nxt_ultrasonic_sensor(port,Value),
       Value =< N/4,       Value =< N/4,
       nxt_turn(Speed,​+180).       nxt_turn(Speed,​+180).
 start :- start :-
-      ​ultrasonic_sensor(Value),+      ​nxt_ultrasonic_sensor(port,Value),
       Value =< N/2,       Value =< N/2,
       nxt_turn(Speed,​+90).       nxt_turn(Speed,​+90).
 start :- start :-
-      ​ultrasonic_sensor(Value),+      ​nxt_ultrasonic_sensor(port,Value),
       Value =< N,       Value =< N,
       nxt_turn(Speed,​-90).       nxt_turn(Speed,​-90).
Linia 67: Linia 75:
  
  
-==== XTT ==== 
-{{:​pl:​miw:​miw08_mindstormsdesign:​alg11.png|XTT}} 
  
  
 +
 +
 +
 +
 +==== XTT ====
 +{{:​pl:​miw:​miw08_mindstormsdesign:​alg8.png|XTT}}
 +
 +UWAGI!!!FIXME
 +   - Na powyższym diagramie XTT wykorzystano zapętlenie reguł.
 +   - Czy akcję początku i końca programu (START i STOP) powinny być jakoś dodatkowo zaznaczone na XTT?
 +   - W diagramie na potrzeby algorytmu stworzono pusty przebieg (zaznaczony na czerwono). W programie wykrywane jest to jako błąd. Jednak uważam, że warto przemyśleć opcję wprowadzenia '​pustej reguły'​ w calu przekierowania strumienia np. do innej tablicy. Oczywiście zamiast tego pola można było wprowadzić regułę dopełniającą pozostałe reguły w tablicy.
 +   - Ponadto w tablicy związanej z action_robot wprowadziłem akcję od pustego warunku (czyli taki '​else'​). Program wyświetla to jako błąd. Uważam, że wprowadzenie formuły/​pola '​else'​ mogłoby by być przydatne. Oczywiścię nie jest to problem, gdyż tak jak w wcześniejszej uwadze, można sztucznie wprowadzić regułę/​pole,​ które mogłoby to uzupełnić.
  
pl/miw/miw08_mindstormsdesign/grid.1211139146.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