Praktikum: Mobile Roboter

Dozenten Goran Huskić, Cornelia Schulz, (Richard Hanten)
Sprechstunde während des Praktikums und n.V.
Zeit Mi. 14:00 - 18:00 Uhr (wöchentlich)
Umfang 6 LP
Beginn Mi., 19. Oktober 2016
Vorbesprechung und Einführung Mi., 19. Oktober 2016, 14:00 - 18:00 Uhr
Ort Sand 1, Raum A331 (kleines Roboterlabor)

PraktikumsroboterBeschreibung

Sie sammeln im Praktikum Mobile Roboter praktische Erfahrungen im Umgang mit mobilen Robotern und entwickeln Steuerungsalgorithmen für diese. Als Hardwareplattform werden ganz neue Roboter vom Type TurtleBot 2 (Aufbau Sommer 2016) eingesetzt. Die Software für die Roboter wird in C++ implementiert. Programm- und Treiberinfrastrutkuren werden durch das Robot Operating System (ROS Jade) realisiert. Das Praktikum bietet Ihnen Gelegenheit, Erfahrungen mit Sensoren, Aktuatoren und Regelung zu sammeln, sowie die Grundlagen von C++ zu lernen.

Das Praktikum findet in 2er-Teams statt, die jeweils für einen Roboter während des Semesters zugewiesen bekommen.

Voraussetzungen

Geeignet ab 5. Semester Bachelor oder im Master-Studium

Literatur

Eine Einführung in C++ für Java-Programmierer:
Von Java nach C++
Einführung zu ROS:
http://wiki.ros.org/ROS/Tutorials

Anmeldung

"; // Sollen Anmeldebuttons gezeigt werden? if (!isset($isActive)) { $isActive = ($_GET['isActive'] == 'yes'); } // Inkludiere Parameter include_once("globalSettings.php"); // Variablen $tableHead = "background-color:#f0ece1;"; $tableRowStyle = "height:28"; $rowHeight = "18"; $tableRow1st = "background-color:#f4f1f0"; $tableRow2nd = "background-color:#ffffff"; $anmeldenButton = ""; $anmeldenURL = "/php/wwwseminar/anmeldung.php"; // Beginne Tabelle // print "\n\n"; print "\n
\n\n"; // Ermittle, ob es sich um ein Praktikum handelt, und ob man sich anmelden kann // Suche nach dem Schlüsselwort "Praktikum" im Titel des Seminars $query = "SELECT titel,querycode FROM seminar WHERE seminarURL = '$url'"; $result = mysql_query($query); $titel = mysql_result($result, 0,"titel"); $querycode = mysql_result($result, 0, "querycode"); $isPraktikum = (stristr($titel,"praktikum")!==false); // Prüfe, ob Veranstaltung zum laufenden Semester gehört $semester = getSemester($url); // $isActive = ($semester == $currentSemester); // Liste aller Termine einer Veranstaltung abrufen $query = "SELECT * FROM termin LEFT JOIN referent USING (ID_termin) LEFT JOIN seminar USING (ID_seminar) LEFT JOIN betreuer USING (betreuer) WHERE (termin.datum > '$WAITDATE_SQL') AND (seminarURL = '$url') ORDER BY termin.datum, termin.ID_termin"; $result = mysql_query($query); $number = mysql_numrows($result); if ($number <= 0) { // wenn keine Termine gefunden print "

Themen werden so schnell wie möglich online gestellt.

"; // Liste aller Termine einer Veranstaltung abrufen $query = "SELECT * FROM seminar WHERE (seminarURL = '$url')"; $result = mysql_query($query); $number = mysql_numrows($result); if ($number <= 0) { // wenn kein Eintrag in DB vorhanden // Veranstaltung eintragen $querycode = getRandomString(8); $query = "INSERT INTO seminar (titel, seminarURL, querycode) VALUES ('Titel','$url','$querycode')"; $result = mysql_query($query); } } else { // wenn Termine gefunden $i = 0; $HTMLrowcount = 0; $ID_temin_old = -1; if ($isPraktikum) { // print " \n"; print " \n"; print " \n"; print " \n"; print " \n"; print " \n"; while ($i < $number): // Daten aus SQL-Abfrage-Ergebnis extrahieren $ID_termin = mysql_result($result, $i, "ID_termin"); $betreuer = mysql_result($result, $i, "betreuer"); $betreuerURL = mysql_result($result, $i, "betreuer.url"); $maxReferenten = mysql_result($result, $i, "maxReferenten"); $vorname = htmlentities(mysql_result($result, $i, "vorname")); $name = htmlentities(mysql_result($result, $i, "name")); if (($vorname > "") || ($name > "")) { $referent = $vorname . " " . $name; } elseif ($maxReferenten > 0 and $isActive) { $referent = "$anmeldenButton"; } else { $referent = ""; } // Wechselnder Hintergrund für gerade/ungerade Tabellenzeilen // $style = ++$HTMLrowcount % 2 ? 'tr-even' : 'tr-odd'; // Ausgabe einer Tabellenzeile // print " \n"; print " \n"; $ii = $i + 1; print " \n"; if ($betreuerURL != "") { print " \n"; } else { print " \n"; } print " \n"; print " \n"; $i++; endwhile; } else { // wenn kein Praktikum // print " \n"; print " \n"; print " \n"; print " \n"; print " \n"; print " \n"; print " \n"; while ($i < $number): // Daten aus SQL-Abfrage-Ergebnis extrahieren $datum = formatDate(mysql_result($result,$i,"datum")); $ID_termin = mysql_result($result,$i,"ID_termin"); $titel = mysql_result($result,$i,"titel"); $betreuer = mysql_result($result,$i,"betreuer"); $betreuerURL = mysql_result($result,$i,"betreuer.url"); $maxReferenten = mysql_result($result,$i,"maxReferenten"); $vorname = mysql_result($result,$i,"vorname"); $name = mysql_result($result,$i,"name"); if (($vorname > "") || ($name > "")) { $referent = $vorname . " " . $name; } elseif ($maxReferenten > 0 and $isActive) { $referent = "$anmeldenButton"; } else { $referent = ""; } // Wechselnder Hintergrund für gerade/ungerade Tabellenzeilen // $style = ++$HTMLrowcount % 2 ? 'tr-even' : 'tr-odd'; // Ausgabe einer Tabellenzeile // print " \n"; print " \n"; print " \n"; print " \n"; if ($betreuerURL != "") { print " \n"; } else { print " \n"; } print " \n"; print " \n"; $i++; endwhile; } } // Warteliste eines Seminars abrufen // Als Warteliste wird ein Termin mit einem speziellen Datum ($WAITDATE_SQL) für ein bestimmtes Seminar angenommen. $query = "SELECT * FROM termin LEFT JOIN referent USING (ID_termin) LEFT JOIN seminar USING (ID_seminar) LEFT JOIN betreuer USING (betreuer) WHERE (termin.datum<='$WAITDATE_SQL') AND (seminarURL = '$url') ORDER BY referent.datum DESC"; $result = mysql_query($query); $number = mysql_numrows($result); if ($number > 0) { // Wenn Warteliste gefunden (Info: Eine Warteliste kann auch leer sein, d.h. noch keinen Namen enthalten) $j = 0; // Muster für Befehl vor Serverumstellung im März 2008: // $titel = mysql_result($result,$j,"termin.titel"); $titel = mysql_result($result,$j,"titel"); $ID_termin = mysql_result($result,$j,"ID_termin"); $warteliste = ""; while ($j < $number): // Daten aus SQL-Abfrage-Ergebnis extrahieren $vorname = htmlentities(mysql_result($result,$j,"vorname")); $name = htmlentities(mysql_result($result,$j,"name")); if(($vorname > "") || ($name > "")) { $warteliste = "$vorname $name
\n" . $warteliste; }; $j++; endwhile; $warteliste .= $isActive ? "$anmeldenButton" : ""; // Wechselnder Hintergrund für gerade/ungerade Tabellenzeilen // $style = i % 2 ? 'tr-odd' : 'tr-even'; // Ausgabe einer Tabellenzeile // print " \n"; print " \n"; if (!$isPraktikum) { print " \n"; } print " \n"; print " \n"; print " \n"; print " \n"; } print "\n
PraktikumsplatzBetreuungTeilnehmer(in)
$ii$betreuer$betreuer$referent
DatumThemaBetreuungReferent(in)
$datum$titel$betreuer$betreuer$referent
 $titel $warteliste
\n"; if ($isActive) { if ($isPraktikum) { print "

Zur Reservierung eines Platzes tragen Sie sich bitte mit den Schaltflächen ganz rechts in der Tabelle ein.
Diese Anmeldung ersetzt nicht die offizielle Anmeldung über das Campus-System! Sie dient zur Vorreservierung der einzelnen Plätze bis zur Vorbesprechung, an der Sie persönlich anwesend sein müssen.

"; } else { print "

Zur Reservierung eines Themas tragen Sie sich bitte mit den Schaltflächen ganz rechts in der Termin-Tabelle ein.
Diese Anmeldung ersetzt nicht die offizielle Anmeldung über das Campus-System! Sie dient zur Vorreservierung der einzelnen Termine bis zur Vorbesprechung, an der Sie persönlich anwesend sein müssen.

"; } } $getquery = explode('=', $_GET["query"]); if ( ($getquery[0] === "getlist") && ($getquery[1] === $querycode) ) { print "

Liste aller Teilnehmer

\n"; print "\n\n\n"; print " \n"; print " \n"; print " \n"; print " \n"; print " \n"; print " \n"; print " \n"; print " \n"; print " \n"; $query = "SELECT * FROM termin LEFT JOIN referent USING (ID_termin) LEFT JOIN seminar USING (ID_seminar) LEFT JOIN betreuer USING (betreuer) WHERE seminarURL = '$url' ORDER BY referent.datum DESC"; $result = mysql_query($query); $number = mysql_numrows($result); for ($i = 0; $i < $number; ++$i) { // Daten aus SQL-Abfrage-Ergebnis extrahieren $name = htmlentities(mysql_result($result, $i, "name")); $vorname = htmlentities(mysql_result($result, $i, "vorname")); $semester = htmlentities(mysql_result($result, $i, "semester")); $matrikelnr = htmlentities(mysql_result($result, $i, "matrikelnr")); $studiengang = htmlentities(mysql_result($result, $i, "studiengang")); $email = htmlentities(mysql_result($result, $i, "email")); $betreuer = htmlentities(mysql_result($result, $i, "betreuer")); print " \n"; print " \n"; print " \n"; print " \n"; print " \n"; print " \n"; print " \n"; print " \n"; print " \n"; } print "\n
NameVornameMatr.-Nr.EmailStudiengangSem.Betreuer
$name$vorname$matrikelnr$email$studiengang$semester$betreuer
\n"; // print email list print "

Email-Liste

\n

"; for ($i = 0; $i < 1; ++$i) { $email = htmlentities(mysql_result($result, $i, "email")); print "$email"; } for ($i = 1; $i < $number; ++$i) { $email = htmlentities(mysql_result($result, $i, "email")); print ", $email"; } print "

"; } ?>


Diese Seite drucken