Robotersteuerung mobiled mit Spline-Pathplanner
Der bisher verwendete mobiled kann die Plattform bekanntlich nur entweder geradeaus fahren
oder auf der Stelle drehen. Im Rahmen der Diplomarbeit von Benjamin Adler wurde
mobiled erweitert, um auch Kurven fahren zu können.
Die Diplomarbeit besteht aus den folgenden Komponenten:
- der modifizierte mobiled (erfordert Kernel 2.6).
- basiert natürlich weitgehend auf dem ursprünglichen mobiled
- Empfangen und Senden von CAN-Nachrichten, Empfang von Laserscans, Lokalisierung,
- Erweiterungen nutzen Qt4
- neues vereinfachtes Protokoll zum Ansteuern der Motoren via CAN-Bus
- neues TCP/IP-Interface zum Control-Programm (interaktive Fahrkommandos)
- JNI-Interface zur Anbindung an genPath/genMap
- eine Applikation zum Absetzen von interaktiven Fahrkommandos and den mobiled
- ein Simulator zum Testen der Spline-Fahrtplanung ohne den Roboter selbst
- Dokumentation: die Diplomarbeit von Ben Adler sowie die Quelltexte.
Bisher keine TODOs oder Howtos.
Schritte zum Start:
- auf tams61 Kernel 2.6.18 (OpenSuSE) booten
- als root einloggen
cd /usr/local/src/servicerobot/mobiled/genRob
(Achtung: nicht das /usr/local/servicerobot/genRob Verzeichnis nehmen)
- CANserver starten, aus mobiled/src/canserver, optional mit logging:
./canserver -d <comma-separated-logging-options>
./canserver -d can,localization
sudo /usr/local/src/servicerobot/mobiled/src/canserver/canserver
- genMediator im Netz starten, wegen genRob Problemen mit Kernel 2.6 evtl. auf tams61 selbst
- genMap Server im Netz starten (notfalls auf tams61 selbst)
- genPath Roblet im Netz starten
- genView Roblet im Netz starten (bei Bedarf)
- genIOWarrior auf tams61 starten (iowarrior zum Einschalten der Laserscanner, Lösen der Bremsen)
Skript: gen-Mediator,-Map,-Path,-Warrior: /usr/local/src/servicerobot/mobiled/genrob/startup.sh
./mobiled -d <logging-options>
starten ->konkret: sudo bash; export LD_LIBRARY_PATH=/usr/lib/jvm/java-1.6.0-sun-1.6.0/jre/lib/i386/client; mobiled ;-)
- Fahrbefehle über mobiled-client, die interaktive Consol-Applikation absetzen:
setPose( x, y, phi )
(mobiled/src/mobiledclient/mobileclient -> eine Kopie liegt in /home/noeske) Anfangspose abschätzbar über: mobiled/src/simulator/simulator (Kopie in /home/noeske)
- in den Experimenten am 2009.09.18:
- Ursprung des Koordinatensystems ist an der NW-Ecke von Haus F (leicht ausserhalb des Gebäudes)
- bei Bedarf den Roboter zunächst im Roboter an eine geeignete Position fahren
- dann im Simulator dort die Position (x,y) und den Drehwinkel (phi) ablesen
- diese Wert für Start- und Endposition dann in der mobiled-client Applikation eingeben
Ergänzt und repliziert: 2009/09/22
Probleme
- Spline-Pfadplaner noch nicht perfekt implementiert, neigt zu Überschwingern
am Anfang (und Ende?) eines Pfades
- integrierter Controller nicht perfekt, evtl. beträchtliche Abweichungen des Ist-Pfades
vom Sollpfades, auch dabei kann es zu Überschwingern kommen
Der modifizierte mobiled
liegt auf dem Roboter unter /usr/local/src/serviverobot/mobiled/genrob/
Sie wird mit ./mobiled
gestartet. Debugging-Ausgaben lassen sich mit dem Parameter -d
zuschalten.
FAQ
- Linux 2.6.18 (OpenSuSE) booten
- login als root
- bei Bedarf kann Kernel 2.4 Dateisystem via
mount /kernel2.4
gemountet werden
- umgekehrt geht auch
mount /kernel2.6
um von 2.4 auf das Kernel 2.6 Dateisystem zuzugreifen
- Erweiterungen beruhen auf Qt4, Re-compilation mit qmake
- Kernel 2.6 Kuriosa:
- root Rechte seit 2.6 notwendig, für mobiled?
- genMediator findet seit 2.6 nicht mehr alle Komponenten
- Experimente am 2009.09.18: genMediator auf tams54 gestartet reagiert auf Verbindungsversuche
vom Roboter (tams61), genMap auf tams54 liefert aber keine Antworten an den Roboter
- deshalb genMediator, genPath, genMap etc. alles auf tams61 gestartet (!)
- Experimente mit PA-10 unter Kernel 2.6:
- Default-Kernel 2.6 enthält die Realtime-Module (genrci.ko, /dev/PA10Left, /dev/PA10Right) nicht
modprobe genrci
funktioniert deshalb nicht, aber explizites insmod "/voller/Pfad/zum/genrci.ko" geht
- gepatches Kernel 2.6 hat die Module, dort reicht modprobe genrci
- RCCL-5.1.4 von
/informatik/isr/tams/develop/tirccl/src
verwenden
- Arm funktioniert trotzdem nicht: Fehlermeldungen aus dem RCCL/RCI
- Aufruf von movej löst kurz die Bremsen (Arm klickt), dann sofort interner Fehler
Version-History
2009.09.21 - neu erstellt (Norman)