AlexJ
12.05.2012, 16:47
Seid gegrüßt, ich bin auf ein Projekt angesetzt worden und überlege mir ein grundsätzliches Konzept.
Und dafür brauch ich unbedingt ein wenig Erfahrungsaustausch, ob die mir vorliegende Hardware etwas taugt.
Danke an alle, die schon bis zu dieser Zeile gelesen haben.:cool:
Ablauf
Vorbereitung: (durch den Roboter zu ermitteln, aber ein Mensch kann helfend eingreifen)
Lokalisierung / Kartierung auf einer Strecke mittels LSM111 von Sick(Echtzeit Laser-Entfernungsmesser), Odometrie (Inkrementalgeber) und Gyroskop (braucht man noch mehr für SLAM ?)
--> Zunächst, gezieltes Erlernen einer ca. 300m (!) langen Strecke(Outdoor, direktes Sonnenlicht), diese ist ebenerdig mit ein paar klar erkennbaren (aus Sensor-Sicht) Objekten im Weg. (siehe Anhang)
Nach diesem Lernprozess muss dann der Roboter folgende Aufgabe völlig autonom bewältigen: (siehe Anhang "Strecken Skizze")
-Navigation von einem bekannten Startpunkt aus (auf der zuvor ermittelten Karte),
autonome Routenplanung zu einem Objekt das sich anhand seiner Farbe und Form(gelber Beutel) sich von der Umgebung abhebt
(eine monoculare Kamera wird von einem separaten System ausgewertet und teilt der Hauptrecheneinheit dann ggfs. eine Richtung mit)
Dieses gelbe Objekt liegt wahrscheinlich 300m weit vom Startpunkt aus entfernt auf einem ca. 10mx10m großen Platz (keine genau Position vorgegeben, dynamische Programmierung notwendig)
-Wenn dieses Objekt gefunden wurde --> es aufsammeln (das klappt schon)
-Mit dem Objekt die 300m zurück zum Startpunkt fahren
Grob gesagt muss der Roboter Navigieren/Aufsammeln und wieder Zurückfinden
Jetzt kommt meine Frage dazu:
Welche Platform/Recheneinheit/Steuerung muss man mindestens ansetzen, um vernünftig damit arbeiten zu können ? (bzw. die genannte Aufgabe lösen zu können)
(es sollten schon Leistungsreserven übrig bleiben, damit die Recheneinheit nicht am Limit betrieben wird für ggfs erweiterungen der Software)
Zur Zeit habe ich ein ausschließlich C-kompatibles Board liegen (Stellaris® LM3S2965 (http://www.ti.com/lit/ug/spmu024a/spmu024a.pdf))
"256-KB flash memory, 50-MHz operation" sind Kennwerte aus der verlinkten Doku
Das ausschließlich C genutzt werden kann, macht es schon schwer einen SLAM-Algorithmus zu finden.
http://openslam.org/tinyslam.html
TinySlam ist das einzige mir bekannte in C
Aber..
hier hat man tinyslam bereits ausprobiert (http://www.real-time.de/archiv/ez11/EZ11_Engelhardt.pdf) bei einer Kartierungsaufgabe mit einem deutlich leistunsfähigerem System (500MHz etc)
und trotzdem musste man den Algorithmus optimieren um das System echtzeitfähig zu bekommen (siehe obere Verlinkung)
Seh ich das richtig, dass ich mit meinen 50MHz mir dem Slam in die Haare schmieren kann ?
Mit dankbaren Grüßen, Alex
Und dafür brauch ich unbedingt ein wenig Erfahrungsaustausch, ob die mir vorliegende Hardware etwas taugt.
Danke an alle, die schon bis zu dieser Zeile gelesen haben.:cool:
Ablauf
Vorbereitung: (durch den Roboter zu ermitteln, aber ein Mensch kann helfend eingreifen)
Lokalisierung / Kartierung auf einer Strecke mittels LSM111 von Sick(Echtzeit Laser-Entfernungsmesser), Odometrie (Inkrementalgeber) und Gyroskop (braucht man noch mehr für SLAM ?)
--> Zunächst, gezieltes Erlernen einer ca. 300m (!) langen Strecke(Outdoor, direktes Sonnenlicht), diese ist ebenerdig mit ein paar klar erkennbaren (aus Sensor-Sicht) Objekten im Weg. (siehe Anhang)
Nach diesem Lernprozess muss dann der Roboter folgende Aufgabe völlig autonom bewältigen: (siehe Anhang "Strecken Skizze")
-Navigation von einem bekannten Startpunkt aus (auf der zuvor ermittelten Karte),
autonome Routenplanung zu einem Objekt das sich anhand seiner Farbe und Form(gelber Beutel) sich von der Umgebung abhebt
(eine monoculare Kamera wird von einem separaten System ausgewertet und teilt der Hauptrecheneinheit dann ggfs. eine Richtung mit)
Dieses gelbe Objekt liegt wahrscheinlich 300m weit vom Startpunkt aus entfernt auf einem ca. 10mx10m großen Platz (keine genau Position vorgegeben, dynamische Programmierung notwendig)
-Wenn dieses Objekt gefunden wurde --> es aufsammeln (das klappt schon)
-Mit dem Objekt die 300m zurück zum Startpunkt fahren
Grob gesagt muss der Roboter Navigieren/Aufsammeln und wieder Zurückfinden
Jetzt kommt meine Frage dazu:
Welche Platform/Recheneinheit/Steuerung muss man mindestens ansetzen, um vernünftig damit arbeiten zu können ? (bzw. die genannte Aufgabe lösen zu können)
(es sollten schon Leistungsreserven übrig bleiben, damit die Recheneinheit nicht am Limit betrieben wird für ggfs erweiterungen der Software)
Zur Zeit habe ich ein ausschließlich C-kompatibles Board liegen (Stellaris® LM3S2965 (http://www.ti.com/lit/ug/spmu024a/spmu024a.pdf))
"256-KB flash memory, 50-MHz operation" sind Kennwerte aus der verlinkten Doku
Das ausschließlich C genutzt werden kann, macht es schon schwer einen SLAM-Algorithmus zu finden.
http://openslam.org/tinyslam.html
TinySlam ist das einzige mir bekannte in C
Aber..
hier hat man tinyslam bereits ausprobiert (http://www.real-time.de/archiv/ez11/EZ11_Engelhardt.pdf) bei einer Kartierungsaufgabe mit einem deutlich leistunsfähigerem System (500MHz etc)
und trotzdem musste man den Algorithmus optimieren um das System echtzeitfähig zu bekommen (siehe obere Verlinkung)
Seh ich das richtig, dass ich mit meinen 50MHz mir dem Slam in die Haare schmieren kann ?
Mit dankbaren Grüßen, Alex