Algorytmy (echosonda)

Poniżej znajdują się algorytmy sterowania wykorzystujące echosondę. Aby sprawdzić działanie algorytmów należy przygotować tor przeszkód.

Objechanie przeszkody

Zapis słowny

  1. jedź do przodu
  2. jeżeli przeszkoda zatrzymaj się (wskaźnik echosondy poniżej progu) idź do (3) inaczej wróć do (1)
  3. obróć się o 900 w prawo
  4. jeżeli przeszkoda zatrzymaj się (wskaźnik echosondy poniżej progu) idź do (3) inaczej idź do (5)
  5. zrób krok do przodu
  6. jeżeli przeszkoda idź do (3) inaczej idź wykonaj kolejny punkt
  7. obróć się o 900 w lewo i idź do (1)

Zapis regułowy

Rule: 1
if ultrasonic_Value > 50 and go ≠ 0
then go := 100 and go_cm := 0 and turn := 0
 
Rule: 2
if ultrasonic_Value > 50 and go = 0 and turn = 0
then go := 100 and go_cm := 0 and turn := 0
 
Rule: 3
if ultrasonic_Value > 50 and go = 0 and turn < 0
then go := 100 and go_cm := 0 and turn := 0
 
Rule: 4
if ultrasonic_Value > 50 and go = 0 and turn > 0
then go_cm := 10 and go := 0 and turn := 0
 
Rule: 5
if ultrasonic_Value ≤ 50 and go ≠ 0
then turn := 90 and go := 0 and go_cm := 0
 
Rule: 6
if ultrasonic_Value ≤ 50 and go = 0 and turn ≠ 0
then turn := 0 and go := 0 and go_cm := 10
 
Rule: 7
if ultrasonic_Value ≤ 50 and go = 0 and turn = 0 and go_cm = 0
then turn := 90 and go := 0 and go_cm := 0
 
Rule: 8
if ultrasonic_Value ≤ 50 and go = 0 and turn = 0 and go_cm ≠ 0
then turn := -90 and go := 0 and go_cm := 0

Implementacja w Prologu

state(go). // Knowladge Base => previous state updated in fly.. initial state would also be state(go)
 
start :-
      nxt_ultrasonic_sensor(port,Value)
      Value > 50,
      start_go.
 
start :-
      nxt_ultrasonic_sensor(port,Value)
      Value =< 50,
      start_turn.
 
start :-
      nxt_go(0).
 
start_go :-
      state(go),
      nxt_go(0).
 
start_go :-
      state(go_cm),
      nxt_go_cm(distance,speed).
 
start_turn :-
      state(go),
      nxt_turn_degrees(speed,90).
 
start_turn :-
      state(go_cm),
      nxt_turn_degrees(speed,-90).

XTT

XTT

pl/miw/miw08_mindstormsdesign/strona_1.txt · ostatnio zmienione: 2019/06/27 15:50 (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