Seminar: Advanced Topics in Mobile Robotics

Dozenten Ran Liu, Konstantin Schauwecker, Shaowu Yang, Gerald Rauscher
Sprechstunde nach Vereinbarung
Zeit wird in der Vorbesprechung vereinbart
Umfang 2 SWS, 4 LP
Beginn 15. April 2013
Vorbesprechung 15. April 2013, 16 Uhr
Ort Sand 1, Raum A302
Turnus regelmäßig

Beschreibung

Rahmen

Alle Teilnehmer stellen ihre Arbeiten in je einem Vortrag (45 min. Dauer + 10 min. Diskussion) sowie einer schriftlichen Ausarbeitung (12-15 Seiten) vor.

Themen

"; // 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 "

"; } ?>

Literaturempfehlungen:

[1] D. Fox. Adapting the sample size in particle filters through KLD-sampling. International Journal of Robotics Research, vol. 22, no. 12, pp. 985-1004, 2003.
[2] S. Thrun, W. Burgard, and D. Fox. Probabilistic Robotics. MIT Press, 2005.
[3] J. Liu and M. West. Combined parameter and state estimation in simulation-based filtering. In Arnaud Doucet, Nando de Freitas, and Neil Gordon, editors, Sequential Monte Carlo Methods in Practice, chapter 10. 2001.
[4] D. Hahnel, W. Burgard, D. Fox, K. Fishkin, and M. Philipose. Mapping and localization with RFID technology. In Proc. of the 2004 IEEE Int. Conf. on Robotics and Automation (ICRA 2004), USA, 2004, pp. 1015-1020.
[5] P. Vorst and A. Zell. Semi-autonomous learning of an RFID sensor model for mobile robot self-localization. In European Robotics Symposium 2008, ser. Springer Tracts in Advanced Robotics, vol. 44/2008. Springer Berlin/Heidelberg, February 2008, pp. 273-282.
[6] D. Joho, C. Plagemann, and W. Burgard. Modeling RFID signal strength and tag detection for localization and mapping. In Proc. of the 2009 IEEE Int. Conf. on Robotics and Automation (ICRA 2009), Kobe, Japan, May 2009, pp. 3160-3165.
[7] Ran Liu, Artur Koch, and Andreas Zell. Mapping UHF RFID Tags with a Mobile Robot using 3D Sensor Model. submitted to 2013 IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS 2013), Big Sight, Tokyo, Japan.
[8] T. Deyle, H. Nguyen, M. Reynolds, and C. Kemp. Rf vision: RFID receive signal strength indicator (RSSI) images for sensor fusion and mobile manipulation. In Proc. of the 2009 IEEE/RSJ Int. Conf. on Intelligent Robots and Systems (IROS 2009), St. Louis, MO, October 11-15 2009, pp. 5553-5560.
[9] D. Forsyth, J. Ponce, Computer vision: A modern approach (2nd Edition), Chaptor 5.
[10] Zhang, Z. (1999). Flexible camera calibration by viewing a plane from unknown orientations. In Computer Vision, 1999. The Proceedings of the Seventh IEEE International Conference on (Vol. 1, pp. 666-673).
[11] Bouguet, Jean-Yves. "Camera calibration toolbox for matlab." (2004). http://www.vision.caltech.edu/bouguetj/calib_doc.
[12] Horaud, Radu, and Fadi Dornaika. "Hand-eye calibration." The international journal of robotics research 14.3 (1995): 195-210.
[13] D.G. Lowe, "Distinctive image features from scale-invariant keypoints", International Journal of Computer Vision, 60(2), pp. 91-110, 2004.
[14] E. Rosten and T. Drummond, "Machine learning for high-speed corner detection", In Proc. 9th European Conference on Computer Vision (ECCV'06), Graz,May 2006.
[15] M. Calonder, V. Lepetit, C. Strecha, and P. Fua, "BRIEF: Binary robust independent elementary features", In European Conference on Computer Vision, 2010.
[16] E. Rublee, V. Rabaud, K. Konolige, G. Bradski, "ORB: an effcient alternative to SIFT or SURF", 2011 IEEE International Conference on Computer Vision (ICCV), Nov. 2011.
[17] H. Durrant-Whyte and T. Bailey, "Simultaneous localization and mapping (SLAM): Part I. The essential algorithms", Robot. Automat. Mag., vol. 13, no. 2, pp. 99-110, 2006.
[18] A. Davison, "Real-time simultaneous localisation and mapping with a single camera", in Proc. Int. Conf. Computer Vision, 2003, pp. 1403-1410.
[19] G. Klein and D. Murray, "Parallel tracking and mapping for small AR workspaces", in International Symposium on Mixed and Augmented Reality, pp. 225-234, Nov. 2007.
[20]Meier, Lorenz, et al. "PIXHAWK: A micro aerial vehicle design for autonomous flight using onboard computer vision." Autonomous Robots 33.1-2 (2012): 21-39.
[21]Weiss, Stephan, Davide Scaramuzza, and Roland Siegwart. "Monocular‐SLAM–based navigation for autonomous micro helicopters in GPS‐denied environments." Journal of Field Robotics 28.6 (2011): 854-874.
[22]Scaramuzza, D., et al. "Vision-Controlled Micro Flying Robots: from System Design to Autonomous Navigation and Mapping in GPS-denied Environments.", IEEE Robotics and Automation Magazine, 2013 (Under Review)
[23][1] Scharstein, Daniel, and Richard Szeliski. "A taxonomy and evaluation of dense two-frame stereo correspondence algorithms." International journal of computer vision 47.1-3 (2002): 7-42.
[24]Humenberger, Martin, et al. "A fast stereo matching algorithm suitable for embedded real-time systems." Computer Vision and Image Understanding 114.11 (2010): 1180-1202.
[25]Brown, Myron Z., Darius Burschka, and Gregory D. Hager. "Advances in computational stereo." Pattern Analysis and Machine Intelligence, IEEE Transactions on 25.8 (2003): 993-1008.
[26] Hornung, Armin, et al. "OctoMap: an efficient probabilistic 3D mapping framework based on octrees." Autonomous Robots (2013): 1-18.
[27]Triebel, Rudolph, Patrick Pfaff, and Wolfram Burgard. "Multi-level surface maps for outdoor terrain mapping and loop closing." Intelligent Robots and Systems, 2006 IEEE/RSJ International Conference on. IEEE, 2006.
[28]Hadsell, Raia, J. Andrew Bagnell, and Martial Hebert. "Accurate rough terrain estimation with space-carving kernels." Proc. of Robotics: Science and Systems (RSS). 2009.

Stilvorlage für Ausarbeitungen

  • Für Latex-Fans gibt es einen Style mit kleiner Demo. Dazu gibt es noch ein BibTex-File und die BibStyle Datei
  • Wenn Sie eine andere Textverarbeitung bevorzugen, orientieren Sie sich bitte an diesem Muster.

Diese Seite drucken