Projekt Roboterwettbewerb
Dozenten |
Gerald Rauscher,
Goran Huskić
|
Sprechstunde |
während des Projekts und n.V. |
Zeit |
Mi. 14:00 - 18:00 Uhr (wöchentlich) |
Umfang |
4 SWS |
Beginn |
Mi., 15. April 2015 |
Vorbesprechung und Einführung |
Mi., 15. April 2015, 14:00 - 18:00 Uhr |
Ort |
Sand 1, Raum A331 (kleines Roboterlabor) |
Turnus |
einmalig |
Beschreibung
Im Sommersemester 2015 gibt es einmalig ein Fortsetzungsangebot zum Praktikum Mobile Roboter. In diesem Kurs werden projektartige Aufgaben für einen Robotterwetbewerb, den DLR SpaceBot Cup, erarbeitet. Ziel des Projekts ist es ein Robotersystem zu entwickeln, dass möglichst autonom eine Planetenoberfläche erkunden und Objekte bergen kann.
Um das Projektziel zu erreichen, bearbeiten die Teilnehmer einzelne Arbeitspakete. Zu den Arbeitspaketen gehören typische Robotik Aufgaben wie Exploration, Kartierung, Pfadplanung, Objekterkennung, Roboterarmmanipulation und Vieles mehr. In diesem Kurs lernen die Teilnehmer Projektbezogenes Arbeiten in einem Team. Zudem vertiefen sie ihre praktische Erfahrung und theoretisches Wissen in Softwareentwicklung und Robotik.
Am Ende des Semesters bekommen die Teilnehmer eine individuelle Bewertung ihrer Arbeitsweise und Ihrer Ergebnisse. Aus dieser Bewertung wird die Note abgeleitet.
Die Teilnehmer des Kurses haben zusätzlich die Möglichkeit das komplette System beim DLR SpaceBot Cup im November 2015 in Bonn zu demonstrieren. .
Voraussetzungen
- Geeignet ab 5. Semester Bachelor oder im Master-Studium
- Praktikum Mobile Roboter
- Erfahrung mit C++ Programmierung
- Erfahrung mit Robotik und dem Robot Operating System (ROS)
Literatur
Robot Operating System :
ROS
Anmeldung
/****************************************************************
* zeigeTeilnehmer
*
* Eingabeparameter: $seminar = ID des Seminars
*
* Zeigt alle Termine eines Seminares an.
* Noch offene Termine weisen eine "Anmelden"-Schaltfläche auf,
* bereits vergebene Temine zeigen den Namen des Referenten.
*
* 2000-03-15 S. Wiest WSI-RA University of Tuebingen
* 2005-10-27 A. Sung Anpassung für die neue Serverumgebung
* 2011-03-10 A. Masselli Überarbeitung: - neues CD der Uni
* - RA wird KS
* - CC der Email an Betreuer
* - Kommentare
* - Zeichenkodierung
* - Einfrieren älterer Veranstaltungen (Deaktivieren der Anmeldefunktion)
* - Identifikation der Veranstaltungen über URL der WWW-Seite
****************************************************************/
// Eingabeparameter für die neue php-Version aus den superglobals auslesen
if (!isset($url)) {
$url = $_GET['url'];
}
echo "";
// 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 " Praktikumsplatz | \n";
print " Betreuung | \n";
print " Teilnehmer(in) | \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 " $ii | \n";
if ($betreuerURL != "") {
print " $betreuer | \n";
} else {
print " $betreuer | \n";
}
print " $referent | \n";
print "
\n";
$i++;
endwhile;
}
else { // wenn kein Praktikum
// print " \n";
print "
\n";
print " Datum | \n";
print " Thema | \n";
print " Betreuung | \n";
print " Referent(in) | \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 " $datum | \n";
print " $titel | \n";
if ($betreuerURL != "") {
print " $betreuer | \n";
} else {
print " $betreuer | \n";
}
print " $referent | \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 " $titel | \n";
print " | \n";
print " $warteliste | \n";
print "
\n";
}
print "\n
\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 " Name | \n";
print " Vorname | \n";
print " Matr.-Nr. | \n";
print " Email | \n";
print " Studiengang | \n";
print " Sem. | \n";
print " Betreuer | \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 " $name | \n";
print " $vorname | \n";
print " $matrikelnr | \n";
print " $email | \n";
print " $studiengang | \n";
print " $semester | \n";
print " $betreuer | \n";
print "
\n";
}
print "\n
\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