rolland iii & simrobot ein Überblick
DESCRIPTION
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 - PowerPoint PPT PresentationTRANSCRIPT
Rolland III & SimRobot ein Überblick
- 1 -Christian Mandel 09.12.2005
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
Rolland III ein Überblick
- 2 -Christian Mandel 09.12.2005
Rollstuhl
Rolland II (Meyra Genius 1.522)
Rolland III (Meyra Champ 1.594)
- 3 -Christian Mandel 09.12.2005
Rolland II (Ackermann Lenkung) Rolland III (Differenzial Antrieb)
Kinematik [1]
Rolland III ein Überblick
[1] Dudek, G., Jenkin, M. (2000). Computational Principles of Mobile Robotics. Cambridge University Press.
)()(1)()(21
100)(sin0)(cos
)()()(
tvtvLtvtv
tt
ttytx
lr
lr
- 4 -Christian Mandel 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
• 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
Rolland III ein Überblick
- 5 -Christian Mandel 09.12.2005
Sensorik
Rolland III ein Überblick
- 6 -Christian Mandel 09.12.2005
Navigationsverfahren
[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.
• Klassische Ansätze [3]:- Roadmap- Potenzialfeld- Zellunterteilung
• Auf Rolland III implementierte Ansätze: - Abwandlung des Dynamic Window Approach [4]
- Virtual Force Field Method [5]
Experimenteller Status
Rolland III ein Überblick
- 7 -Christian Mandel 09.12.2005
Beispiele Multimodaler Steuerung
Natürlichsprachliche Kommandos: „Take the 2nd. turn to the right.“ [6]
[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.
Auf Skizzen basierende Kommandos [7]
• 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]
- 8 -Christian Mandel 09.12.2005
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 auscheckenhttps://nyx.informatik.uni-bremen.de/svn/GTRolland/tags // Tags eincheckenhttps://nyx.informatik.uni-bremen.de/svn/GTRolland/branches // Branches einchecken
[11] Hilfreiche Dokumentation online über:http://www.robocup.de/germanteam/GT2003.pdf Abschnitte: „Architecture“, „Source Code“,„Processes, Senders, and Receivers“, „Streams“, „Debugging Mechanisms“, „SimGT2003 Usage“
SimRobot (GTRolland) ein Überblick
- 9 -Christian Mandel 09.12.2005
Aktive Komponenten: Processes
#include "Tools/Process.h"
class Example1 : public Process{ public: virtual int main() { printf("Hello World!\n"); return 0; }};
MAKE_PROCESS(Example1);
SimRobot (GTRolland) ein Überblick
- 10 -Christian Mandel 09.12.2005
SimRobot (GTRolland) ein Überblick
Aufgabenorientierte Komponenten: Modules / Solutions
#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);
#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
{}Example.h TestModuleSelector.h
TestModuleA.h
TestModule.h
- 11 -Christian Mandel 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;}
- 12 -Christian Mandel 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);
SimRobot (GTRolland) ein Überblick
- 13 -Christian Mandel 09.12.2005
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);
• 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
SimRobot (GTRolland) ein Überblick
- 14 -Christian Mandel 09.12.2005
Processes
• 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)
- 15 -Christian Mandel 09.12.2005
Modules
SimRobot (GTRolland) ein Überblick
- 16 -Christian Mandel 09.12.2005
• 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
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)
- 17 -Christian Mandel 09.12.2005
Modules
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
- 18 -Christian Mandel 09.12.2005
SimRobot (GTRolland) ein Überblick
- 19 -Christian Mandel 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)
- 20 -Christian Mandel 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
- 21 -Christian Mandel 09.12.2005
SimRobot (GTRolland) ein Überblick
• Perception- ScanPoints*
(ScanPointsCollection)
• Perception- ScanSegments*
(ScanSegmentsCollection)
Representations
* inklusive OdometriePose
• Cognition- EvidenceGrid
• Cognition- DistanceGrid
- 22 -Christian Mandel 09.12.2005
SimRobot (GTRolland) ein Überblick
Representations
SimRobot (GTRolland) ein Überblick
Christian Mandel - 23 - 09.12.2005
Representations
• RouteGraph