230 likes | 351 Views
Rolland III & SimRobot ein Überblick. Rolland III Rollstuhl / Sensorik / Aktuatorik Kinematische Eigenschaften Navigationsverfahren Beispiele multimodaler Steuerung . SimRobot Allgemeiner Roboter Simulator Spezialisierung für Rolland III: GTRolland
E N D
Rolland III& SimRobot ein Überblick • Rolland III • Rollstuhl / Sensorik / Aktuatorik • Kinematische Eigenschaften • Navigationsverfahren • Beispiele multimodaler Steuerung • SimRobot • Allgemeiner Roboter Simulator • Spezialisierung für Rolland III: • GTRolland • Ansteuerung von Rolland III • Simulation von Rolland III • Aufnahme / Abspielen von Log-Dateien • Processes / Modules / Solutions / Representations Christian Mandel - 1 - 09.12.2005
Rolland III ein Überblick Rollstuhl Rolland III (Meyra Champ 1.594) Rolland II (Meyra Genius 1.522) Christian Mandel - 2 - 09.12.2005
Rolland III ein Überblick Kinematik [1] Rolland II (Ackermann Lenkung) Rolland III (Differenzial Antrieb) [1] Dudek, G., Jenkin, M. (2000). Computational Principles of Mobile Robotics. Cambridge University Press. Christian Mandel - 3 - 09.12.2005
Rolland III ein Überblick Sensorik • LaserScanner Siemens LS4 [2] • Öffnungswinkel: 190° • laterale Auflösung: max. 0.36° (entspricht 527 Messstrahlen) • radiale Auflösung: 5mm bis zu einer Entfernung von max. 50m • Wellenlänge: 905 nm • min. Remissionsgrad: 20% • Scanrate: 25 Scans/s • Interface: RS 232, RS 422 [2] Technische Dokumentation des Siemens LS4 online über: http://www2.automation.siemens.com/cd/safety/html_00/produkte/optisch_laser.htm Christian Mandel - 4 - 09.12.2005
Rolland III ein Überblick • Odometriesensor (Inkrementalgeber) Lenord + Bauer GEL 248 • Magnetsensoren messen Rotationsgeschwindigkeit der an den Antriebsachsen angebrachten Zahnräder • Rechteckförmiges Ausgangssignal 0 – 25 kHz • Interface: RS232 via AD-Wandler aus modifizierter Mausplatine Sensorik Christian Mandel - 5 - 09.12.2005
Experimenteller Status Rolland III ein Überblick Navigationsverfahren • Klassische Ansätze [3]: • Roadmap • Potenzialfeld • Zellunterteilung • Auf Rolland III implementierte Ansätze: • Abwandlung des Dynamic Window Approach [4] • Virtual Force Field Method [5] [3] Latombe, J.C. (1991). Robot Motion Planning. The Cluwer International Series in Engineering and Computer Science, Robotics: Vision, Manipulation and Sensors. Cluwer Academic Publishers. [4] Fox, D., Burgard, W., Thrun, S. (1995). The Dynamic Window Approach To Collision Avoidance. Technical Report University of Bonn. [5] Borenstein, J., Koren, Y. (1989). Real-time Obstacle Avoidance for Fast Mobile Robots. IEEE Transactions on Systems, Man, and Cybernetics. Christian Mandel - 6 - 09.12.2005
Rolland III ein Überblick Beispiele Multimodaler Steuerung Natürlichsprachliche Kommandos: „Take the 2nd. turn to the right.“ [6] Auf Skizzen basierende Kommandos [7] [6] Kyriacou, T., Burgmann, G., Lauria, S. (2004). Vision-Based Urban Navigation Procedures for Verbally Instructed Robots. To appear in the Journal „Robotics and Autonomous Systems“ [7] Chronis, G., Skubic, M. (2004). Robot Navigation UsingQualitative Landmark States from Sketched Route Maps. Proc. of the IEEE Intl. Conf. On Robotics and Automation. Christian Mandel - 7 - 09.12.2005
SimRobot(GTRolland) ein Überblick • SimRobot verfügbar im WWW [8] • GTRolland als Spezialisierung von SimRobot • Verfügbar als SubVersion Projekt [9][10] • Kompilierbar mit Microsoft Visual Studio C++ 7.1 / 8.0 • Abgeleitet vom Rahmenwerk des Robocup GermanTeam [11] GTRolland als Spezialisierung von SimRobot [8] SimRobot online über: http://www.tzi.de/simrobot [9] SubVersion-Client für Windows Plattform online über: http://tortoisesvn.tigris.org/ [10] GTRolland-Projekt für Windows Plattform via SVN über: https://nyx.informatik.uni-bremen.de/svn/GTRolland/trunk // Projekt auschecken https://nyx.informatik.uni-bremen.de/svn/GTRolland/tags // Tags einchecken https://nyx.informatik.uni-bremen.de/svn/GTRolland/branches // Branches einchecken [11] Hilfreiche Dokumentation online über: http://www.robocup.de/germanteam/GT2003.pdfAbschnitte: „Architecture“, „Source Code“, „Processes, Senders, and Receivers“, „Streams“, „Debugging Mechanisms“, „SimGT2003 Usage“ Christian Mandel - 8 - 09.12.2005
SimRobot(GTRolland) ein Überblick Aktive Komponenten: Processes #include "Tools/Process.h" class Example1 : public Process { public: virtual int main() { printf("Hello World!\n"); return 0; } }; MAKE_PROCESS(Example1); Christian Mandel - 9 - 09.12.2005
SimRobot(GTRolland) ein Überblick Aufgabenorientierte Komponenten: Modules / Solutions #include "Tools/Module/Module.h" class TestModulemInterfaces { } class TestModule : public Module, public TestModuleInterfaces { } #include "TestModule.h" class TestModuleSolutionA : public TestModule, { virtual void execute(){} } #include "Tools/Module/ModuleHandler.h" #include "TestModuleA.h" class TestModuleSelector : public ModuleSelector, public TestModuleInterfaces { } #include "Tools/Process.h" #include "Modules/TestModule/ TestModuleSelector.h" class Example2 : public Process { public: TestModuleSelector* testModule; Example2() { // testModule konstruieren } ~Example2() { // testModule zerstören } virtual int main() { testModule->execute(); return 0; } }; MAKE_PROCESS(Example2); TestModule.h TestModuleA.h Example.h TestModuleSelector.h Christian Mandel - 10 - 09.12.2005
SimRobot(GTRolland) ein Überblick Datenverwaltende Komponenten: Representations class NumberRepresentation { public: int number; NumberRepresentation() {number = 0;} }; Out& operator<<(Out& stream, const NumberRepresentation& repr) { return stream << repr.number; } In& operator>>(In& stream, NumberRepresentation& repr) { return stream >> repr.number; } Christian Mandel - 11 - 09.12.2005
SimRobot(GTRolland) ein Überblick Austausch von Representations zwischen Processes: SENDER #include "Tools/Process.h" class Example3 : public Process { private: SENDER(NumberRepresentation); public: Example3() : INIT_SENDER(NumberRepresentation,false) {} virtual int main() { ++theNumberRepresentationSender.number; theNumberRepresentationSender.send(); return 0; } }; MAKE_PROCESS(Example3); Christian Mandel - 12 - 09.12.2005
SimRobot(GTRolland) ein Überblick Austausch von Representations zwischen Processes: RECEIVER #include "Tools/Process.h" class Example4 : public Process { private: RECEIVER(NumberRepresentation); public: Example4() : INIT_RECEIVER(NumberRepresentation,true) {} virtual int main() { printf("Number %d\n", theNumberRepresentationReceiver.number); return 0; } }; MAKE_PROCESS(Example4); Christian Mandel - 13 - 09.12.2005
SimRobot(GTRolland) ein Überblick • Control • Abarbeitung der zeitkritischen Module wie z.B.: • OdometryCalculator • LaserScanProcessor • DriveController • SafetyLayer • … • Planner • Abarbeitung der weniger zeitkritischen Module wie z.B.: • GlobalLocalizer • VoronoiCalculator • DoorRecognizer • RouteGraphProcessor • … • Communication • Debug Processes Christian Mandel - 14 - 09.12.2005
SimRobot(GTRolland) ein Überblick • Behaviours [Rollstuhlsteuerung über Grundverhalten wie z.B: Wandverfolgung] • Solutions: • ElementaryBehaviours (work in progress) • NDBehaviours (work in progress) • Connector [Netzwerkschnittstellen zu anderen Rechnern] • Solutions: • DialogConnector (special application) • RemoteControlConnector (special application) • SharCConnector (special application) • DoorRecognizer [Features erkennen aus Sensordaten: Türen] • Solutions: • DefaultDoorRecognizer (to be used) • SymmetryDoorRecognizer (work in progress) Modules Christian Mandel - 15 - 09.12.2005
SimRobot(GTRolland) ein Überblick • DriveController [Schnittstelle: Fahrkommandos-Rollstuhl] • Solutions: • JoystickDriveController (to be used) • InverseJoystickDriveController (to be used) • RemoteJoystickDriveController (special application) • MotionDriveController (to be used) • GlobalLocalizer [Lokalisierung innerhalb einer gegebenen globalen Karte] • Solutions: • DistanceGlobalLocalizer (to be used) • VoronoiGlobalLocalizer (work in progress) • MarkovGlobalLocalizer (deprecated) Modules Christian Mandel - 16 - 09.12.2005
SimRobot(GTRolland) ein Überblick • GlobalMapper [Aufbau einer globalen Karte aus Sensordaten] • Solutions: • HistogramGlobalMapper (work in progress) • ImageProcessor [Aufbereitung von low-level Kamera-Daten] • Solutions: • DefaultImageProcessor (work in progress) • LaserScanProcessor [Aufbereitung von low-level LaserScanner-Daten] • Solutions: • DefaultLaserScanProcessor (to be used) • LaserScanFrontProcessor (to be used) • LaserScanBackProcessor (to be used) Modules Christian Mandel - 17 - 09.12.2005
SimRobot(GTRolland) ein Überblick • LocalMapper [Aufbau einer lokalen Karte aus Scanpunkten] • Solutions: • DefaultLocalMapper (deprecated) • PolygonLocalMapper (to be used) • LocalPathPlanner [Lokale Navigation incl. Hindernisvermeidung] • Solutions: • AStarLocalPathPlanner (work in progress) • DWALocalPathPlanner (work in progress) • VirtualForceFieldLocalPathPlanner (work in progress) Modules Christian Mandel - 18 - 09.12.2005
SimRobot(GTRolland) ein Überblick Modules • OdometryCalculator [Aufbereitung von low-level Odometrie-Daten] • Solutions: • OdometersOnlyOdometryCalculator (to be used) • PathController [Bahnregler zur Verwendung mit DWALocalPathPlanner] • Solutions: • DefaultPathController (to be used) • RouteGraphProcessor [Verwaltung von RoutenGraphen] • Solutions: • DefaultRouteGraphProcessor (work in progress) Christian Mandel - 19 - 09.12.2005
SimRobot(GTRolland) ein Überblick • SafetyLayer [Sicherheitsmodul das auf lokalen Karten arbeitet] • Solutions: • SAMSafetyLayer (to be used) • VoronoiCalculator [Berechnung von Distanzkarten und Voronoidiagrammen] • Solutions: • DoubleSweepVoronoiCalculator (to be used) • IPPVoronoiCalculator (work in progress) Modules Christian Mandel - 20 - 09.12.2005
SimRobot(GTRolland) ein Überblick • Perception • ScanPoints*(ScanPointsCollection) • Perception • ScanSegments* (ScanSegmentsCollection) Representations * inklusive OdometriePose Christian Mandel - 21 - 09.12.2005
SimRobot(GTRolland) ein Überblick • Cognition • EvidenceGrid • Cognition • DistanceGrid Representations Christian Mandel - 22 - 09.12.2005
SimRobot(GTRolland) ein Überblick Representations • RouteGraph Christian Mandel - 23 - 09.12.2005