Rolland III & SimRobot ein Überblick

23
and III & SimRobot ein Überb - 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 / Representatio

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 Presentation

Transcript of Rolland III & SimRobot ein Überblick

Page 1: Rolland III & SimRobot              ein Überblick

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

Page 2: Rolland III & SimRobot              ein Überblick

Rolland III ein Überblick

- 2 -Christian Mandel 09.12.2005

Rollstuhl

Rolland II (Meyra Genius 1.522)

Rolland III (Meyra Champ 1.594)

Page 3: Rolland III & SimRobot              ein Überblick

- 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

Page 4: Rolland III & SimRobot              ein Überblick

- 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

Page 5: Rolland III & SimRobot              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

Rolland III ein Überblick

- 5 -Christian Mandel 09.12.2005

Sensorik

Page 6: Rolland III & SimRobot              ein Überblick

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

Page 7: Rolland III & SimRobot              ein Überblick

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]

Page 8: Rolland III & SimRobot              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]

- 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

Page 9: Rolland III & SimRobot              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

Page 10: Rolland III & SimRobot              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

Page 11: Rolland III & SimRobot              ein Überblick

- 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;}

Page 12: Rolland III & SimRobot              ein Überblick

- 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);

Page 13: Rolland III & SimRobot              ein Überblick

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);

Page 14: Rolland III & SimRobot              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

SimRobot (GTRolland) ein Überblick

- 14 -Christian Mandel 09.12.2005

Processes

Page 15: Rolland III & SimRobot              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)

- 15 -Christian Mandel 09.12.2005

Modules

SimRobot (GTRolland) ein Überblick

Page 16: Rolland III & SimRobot              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

Page 17: Rolland III & SimRobot              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

Page 18: Rolland III & SimRobot              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

Page 19: Rolland III & SimRobot              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)

Page 20: Rolland III & SimRobot              ein Überblick

- 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

Page 21: Rolland III & SimRobot              ein Überblick

- 21 -Christian Mandel 09.12.2005

SimRobot (GTRolland) ein Überblick

• Perception- ScanPoints*

(ScanPointsCollection)

• Perception- ScanSegments*

(ScanSegmentsCollection)

Representations

* inklusive OdometriePose

Page 22: Rolland III & SimRobot              ein Überblick

• Cognition- EvidenceGrid

• Cognition- DistanceGrid

- 22 -Christian Mandel 09.12.2005

SimRobot (GTRolland) ein Überblick

Representations

Page 23: Rolland III & SimRobot              ein Überblick

SimRobot (GTRolland) ein Überblick

Christian Mandel - 23 - 09.12.2005

Representations

• RouteGraph