01.12.2012 Aufrufe

Diplomarbeit - Labor für künstliche Intelligenz - Fachhochschule ...

Diplomarbeit - Labor für künstliche Intelligenz - Fachhochschule ...

Diplomarbeit - Labor für künstliche Intelligenz - Fachhochschule ...

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

4 Roboterprogrammierung<br />

Die Funktionen gehören zur AKSEN-Bibliothek und können in den Tabellen 4.1, 4.2<br />

und 4.3 nachgeschlagen werden. Prozesse müssen entweder in einer Endlosschleife laufen<br />

oder beendet werden. Da der Main-Prozess keine weiteren Aufgaben zu erledigen hat,<br />

wird er in der Zeile 8 beendet.<br />

Der Prozess motor command in Zeile 2 ist dazu da, die globale Variable command zu<br />

überwachen und die Motoren, je nach Inhalt der Variablen, anzusteuern.<br />

1 int command;<br />

2<br />

3 void motor_command(void){<br />

4 while(1){<br />

5 switch(command){<br />

6 case Anweisung1: motor_pwm(0,10);<br />

7 motor_pwm(1,10);<br />

8 break;<br />

9 case Anweisung2: motor_pwm(0,10);<br />

10 motor_pwm(1,0);<br />

11 break;<br />

12 case Anweisung3: motor_pwm(0,0);<br />

13 motor_pwm(1,0);<br />

14 break;<br />

15 }<br />

16 }<br />

17 }<br />

Der Prozess arbitrate in Zeile 6 der Main-Funktion dient, wie aus dem Namen hervorgeht,<br />

zum Schlichten. Das bedeutet, Meldungen der anderen Prozesse zu empfangen und<br />

je nach Priorität einer konkreten Anweisung zuzuordnen.<br />

1 void arbitrate(void){<br />

2 while(1){<br />

3 if(verhalten1_flag == 1)command = command_Anweisung1;<br />

4 if(verhalten2_flag == 1)command = command_Anweisung2;<br />

5 if(verhalten3_flag == 1)command = command_Anweisung3;<br />

6 }<br />

7 }<br />

Die Verhaltensstruktur ist mit einer Folge von If-Anweisungen dargestellt. Je tiefer sich<br />

die Anweisung befindet, desto höher ist die Priorität. Die globale Variable command<br />

wird entsprechend überschrieben.<br />

24

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!