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

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

ots.fh.brandenburg.de
von ots.fh.brandenburg.de Mehr von diesem Publisher
01.12.2012 Aufrufe

6 Tutorial Teil 2: Programmierung eines AMS Außerdem soll der Roboter so weit wie möglich auf einer geraden Linie fahren. Dazu werden die Encoderdate über einen PID-Regler verarbeitet und die Motoren entsprechend angesteuert. Vsoll links Vsoll rechts + ✲ ♠ ✲ Motor ✲ links ✻− ✈✛ PID-Regler differenz ❄+ ✲ ♠ ✲ Motor ✲ − rechts ✛ Encoder links Encoder rechts Abbildung 6.2: Synchronisieren der Räder für die Fahrt auf einer geraden Linie 6.3 Das Drehen + ❄ ♠ − ✻ Mit turn(90) soll der mobile Roboter eine Drehung von 90 Grad durchführen. Ähnlich wie bei dem Move-Befehl sind auch hier die Encoderdaten notwendig. Mit der folgenden Formel werden die Ticks berechnet. T icks = Radabstand · Gradsoll 360 6.4 Fahren im Quadrat · Segmentanzahl Raddurchmesser (6.2) Mit den neuen Skills soll ein Programm den Roboter dazu veranlassen in einem Quadrat zu fahren, d.h. viermal geradeaus fahren mit anschließender 90 o -Drehung. 1 #include 2 #include 3 #include 4 #include "arbs.h" 5 6 void AksenMain(void){ 7 8 int i; 9 init(); 10 57

6 Tutorial Teil 2: Programmierung eines AMS 11 for(i=0;i

6 Tutorial Teil 2: Programmierung eines AMS<br />

Außerdem soll der Roboter so weit wie möglich auf einer geraden Linie fahren. Dazu werden<br />

die Encoderdate über einen PID-Regler verarbeitet und die Motoren entsprechend<br />

angesteuert.<br />

Vsoll<br />

links<br />

Vsoll<br />

rechts<br />

+<br />

✲ ♠ ✲ Motor<br />

✲<br />

links<br />

✻−<br />

✈✛<br />

PID-Regler<br />

differenz<br />

❄+<br />

✲ ♠ ✲ Motor<br />

✲<br />

−<br />

rechts<br />

✛<br />

Encoder<br />

links<br />

Encoder<br />

rechts<br />

Abbildung 6.2: Synchronisieren der Räder <strong>für</strong> die Fahrt auf einer geraden Linie<br />

6.3 Das Drehen<br />

+ ❄<br />

♠<br />

− ✻<br />

Mit turn(90) soll der mobile Roboter eine Drehung von 90 Grad durchführen. Ähnlich<br />

wie bei dem Move-Befehl sind auch hier die Encoderdaten notwendig. Mit der folgenden<br />

Formel werden die Ticks berechnet.<br />

T icks = Radabstand · Gradsoll<br />

360<br />

6.4 Fahren im Quadrat<br />

· Segmentanzahl<br />

Raddurchmesser<br />

(6.2)<br />

Mit den neuen Skills soll ein Programm den Roboter dazu veranlassen in einem Quadrat<br />

zu fahren, d.h. viermal geradeaus fahren mit anschließender 90 o -Drehung.<br />

1 #include <br />

2 #include <br />

3 #include <br />

4 #include "arbs.h"<br />

5<br />

6 void AksenMain(void){<br />

7<br />

8 int i;<br />

9 init();<br />

10<br />

57

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!