Diplomarbeit - Labor für künstliche Intelligenz - Fachhochschule ...
Diplomarbeit - Labor für künstliche Intelligenz - Fachhochschule ... Diplomarbeit - Labor für künstliche Intelligenz - Fachhochschule ...
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
- Seite 13 und 14: 1.6 Zielsetzung 1 Einleitung Ziel d
- Seite 15 und 16: 2.1.1 Motoren 2 Grundbestandteile e
- Seite 17 und 18: 2 Grundbestandteile eines Robotes A
- Seite 19 und 20: 2 Grundbestandteile eines Robotes A
- Seite 21 und 22: 2.3.1 Aufbau (AKSEN-Board) 2 Grundb
- Seite 23 und 24: 2.5 Energieversorgung 2 Grundbestan
- Seite 25 und 26: 3 Roboterdesign Abbildung 3.1: Robo
- Seite 27 und 28: 4 Roboterprogrammierung Funktion Ku
- Seite 29 und 30: 4.3 Weltmodell-Architektur 4 Robote
- Seite 31 und 32: 4 Roboterprogrammierung Die Funktio
- Seite 33 und 34: 4 Roboterprogrammierung 4.6 Speziel
- Seite 35 und 36: 4.6.3 Verhaltensbefehle 4 Roboterpr
- Seite 37 und 38: 4 Roboterprogrammierung 1 int y_old
- Seite 39 und 40: 5 Tutorial Teil 1: Bauanleitung ein
- Seite 41 und 42: 5 Tutorial Teil 1: Bauanleitung ein
- Seite 43 und 44: 5 Tutorial Teil 1: Bauanleitung ein
- Seite 45 und 46: 5 Tutorial Teil 1: Bauanleitung ein
- Seite 47 und 48: 5 Tutorial Teil 1: Bauanleitung ein
- Seite 49 und 50: 5 Tutorial Teil 1: Bauanleitung ein
- Seite 51 und 52: 5 Tutorial Teil 1: Bauanleitung ein
- Seite 53 und 54: 5 Tutorial Teil 1: Bauanleitung ein
- Seite 55 und 56: 5 Tutorial Teil 1: Bauanleitung ein
- Seite 57 und 58: 5 Tutorial Teil 1: Bauanleitung ein
- Seite 59 und 60: 5 Tutorial Teil 1: Bauanleitung ein
- Seite 61 und 62: 5 Tutorial Teil 1: Bauanleitung ein
- Seite 63: 6 Tutorial Teil 2: Programmierung e
- Seite 67 und 68: 6.6 Linienverfolgung 6 Tutorial Tei
- Seite 69 und 70: 7 Zusammenfassung und Ausblick 7.1
- Seite 71 und 72: Literaturverzeichnis [AA99] Altenbu
- Seite 73 und 74: Abbildungsverzeichnis 1.1 Autonomie
- Seite 75 und 76: Tabellenverzeichnis 2.1 Sensorenüb
- Seite 77 und 78: A Fotos A.2 Weitere Fotos von ” E
- Seite 79 und 80: A Fotos Abbildung A.7: Linke Seite
- Seite 81 und 82: B Messwert-Tabellen B.1 Encoder-Ein
- Seite 83 und 84: B Messwert-Tabellen B.3 Sensorinter
- Seite 85 und 86: C Quellcode C.1 Testprogramm Sensor
- Seite 87 und 88: { C Quellcode int i,j; unsigned int
- Seite 89 und 90: } C Quellcode line[35]=(zeit%10) +4
- Seite 91 und 92: C Quellcode void start_follow_line(
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