Entwicklung autonomer mobiler Systeme day by day Sommersemester 2019
(EN google-translate)
(PL google-translate)
1 -- Donnerstag 21.03.2019
83_AV (Einführung)83_AV/02_Architekturen
2 -- Donnerstag 28.03.2019
Arbeiten an der Kutsche
Entwicklungsumgebung: Processing
Sie in Processing Basisbeispiele zu:
|
Gruppenaufgaben:
|
3 -- Donnerstag 04.04.2019
Gemeinsam wird folgendes umgesetzt:
|
public class Antrieb { private Serial seriell = null; // 012345678901 private byte[] puffer = "#+0000+0000$".getBytes(); private PApplet pap; public Antrieb(PApplet pap) { this.pap = pap; try { seriell = new Serial(pap, "/dev/ttyACM0", 9600); } catch(Exception e) { println("Fehler in Klasse Antrieb: Arduino ist nicht verfügbar!"); } setzeAntrieb(0, 0); //0...9999 nutzbar: 3300...4500 } void setzeAntrieb(int links, int rechts) { if(links>9999) links=9999; if(links<0) links=0; if(rechts>9999) rechts=9999; if(rechts<0) rechts=0; puffer[5] = (byte)(48+links%10); links/=10; puffer[4] = (byte)(48+links%10); links/=10; puffer[3] = (byte)(48+links%10); links/=10; puffer[2] = (byte)(48+links%10); puffer[10] = (byte)(48+rechts%10); rechts/=10; puffer[9] = (byte)(48+rechts%10); rechts/=10; puffer[8] = (byte)(48+rechts%10); rechts/=10; puffer[7] = (byte)(48+rechts%10); if(seriell!=null) seriell.write(puffer); } }
Code 0-1: Antriebsmodul
import processing.video.*; Capture cam; int VGABREITE = 640; int VGAHOEHE = 480; void setup() { size(1280, 960); cam = new Capture(this, 640, 480); // cam = new Capture(this, cameras[0]); cam.start(); } void draw() { background(255); if (cam.available() == true) { cam.read(); cam.updatePixels(); } image(cam, 0, 0); int x = VGABREITE/2; int y = VGAHOEHE/2; int index = y*VGABREITE + x; int pixelfarbe = cam.pixels[index]; int ROT = (int)red(pixelfarbe); int GRUEN = (int)green(pixelfarbe); int BLAU = (int)blue(pixelfarbe); fill(0); textSize(40); text("R="+ROT+" G="+GRUEN+" B="+BLAU,50,50); int ECHTESROT = ROT - GRUEN - BLAU; if(ECHTESROT<0) ECHTESROT = 0; text("ECHTESROT="+ECHTESROT,450,550); }
Code 0-2: Kamerabeispiel
Gruppenaufgaben:
|
4 -- Donnerstag 11.04.2019
Geplant: Linienfahrt ODER Ansteuerung Laserrotationssensor
Das Sicherheitskonzept muß reaktiviert werden:
|
#include "Arduino.h" class Totmann { private: const int totmannPin = 11; unsigned long totmannzeit = 1000; unsigned long previousMillisSerial; unsigned long previousMillisButton; int buttonState = 0; public: Totmann(long totmannzeit) { this->totmannzeit = totmannzeit; } void start() { previousMillisButton = millis(); previousMillisSerial = millis(); } void auffrischenButton() { buttonState= digitalRead(totmannPin); // Knopf auslesen if(buttonState == HIGH) { previousMillisButton = millis(); } } void auffrischenSerial() { previousMillisSerial = millis(); } bool buttonOK() { if((millis()-previousMillisButton)>totmannzeit) { return false; } else { return true; } } bool serialOK() { if((millis()-previousMillisSerial)>totmannzeit) { return false; } else { return true; } } };
Code 0-3: Totmann-Klasse aus MotorAnsteuernSeriell_OOP2 (Arduino-Projekt).
Vorbereitungen für die Fahrt:
|
5 -- Donnerstag 18.04.2019
Geplant: Linienfahrt ODER Ansteuerung Laserrotationssensor
6 -- Donnerstag 25.04.2019
Theoretische Einheit im Raum IWZ141.
Theoretische Konzepte für die Softwareentwicklung an der Elektrokutsche
Programmiergrundlagen:
|
AutonomesFahrzeug001.zip
AutonomesFahrzeug002.zip
AutonomesFahrzeug003.zip
AutonomesFahrzeug004_PI.zip
7 -- Donnerstag 02.05.2019
|
8 -- Donnerstag 09.05.2019
Optionen:
|
9 -- Donnerstag 16.05.2019
Beteiligung am Tag der offenen Tür als Teilprüfung zum Fach AV
Studierende erarbeiten in Gruppen einen bestimmten Stand bei Elektrokutsche und präsentieren diesen am Tag der offenen Tür am Freitag den 24.05. von 10 bis 12 im Audimax.
Die Aufgabe:
|
Hinweise:
|
Beurteilungskriterien und Bereiche, die eingehend bearbeitet werden sollten:
|
|
OSC_SENDER_AUF_KUTSCHE.zip
***** NEU ***** NEW ***** NEU ******
10 -- Donnerstag 23.05.2019
|
11 -- Donnerstag 30.05.2019
vorlesungsfrei (Feiertag)
12 -- Donnerstag 06.06.2019
Nachbesprechung zum Tag der offenen Tür / Ergänzungen:
|
Kantenfilter2.zip -- horizontale Kantenfilterung
Kantenfilter3.zip -- horizontale und vertikale Kantenfilterung
13 -- Donnerstag 13.06.2019
Findet nicht statt: Wurde bereits vorgeholt am Mittwoch den 22.05.2019 / Bei Bedarf Arbeiten an der Kutsche
14 -- Donnerstag 20.06.2019
Findet nicht statt: Wurde bereits vorgeholt am Mittwoch den 22.05.2019 / Bei Bedarf Arbeiten an der Kutsche
15 -- Donnerstag 27.06.2019
Letzter gemeinsamer Termin: Ergänzende Präsentationen zur Elektrokutsche und LIDAR, sowie Vortrag zu einer Hausarbeit.