Upload
morency-heike
View
108
Download
0
Embed Size (px)
Citation preview
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
10
0)(sin
0)(cos
)(
)(
)(
tvtvL
tvtvt
t
t
ty
tx
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