Wird vielleicht "bastelinteressant" wenn es die neuen AVR32 gibt, die schon die wesentlichen DSP Funktionen (Fixpunkt SIMD) enthalten.
Grügott und Hallo,
ich hab nach einiger Recherche eine vielleicht etwas verrückte Idee. Ich möchte meinem geplanten Roboter eine Stereo-Vision verpassen, wo die Bilder zweier Kameras ausgewertet und daraus eine Depthmap erstellt wird. Nun sind die aktuellen Algorithmen zwar nicht "schlecht" bei der Erkennung der Daten, aber sie verlangen nach ordentlich Power. Und da man normalerweise auf einen mobilen Bot keinen 3Ghz Pentium sitzen hat, um rund 10 Bilder/sek zu bekommen, Suche ich nach einer anderen Lösung.
Im Web bin ich heute auf einigen Papers gekommen, wo ein solches System in FPGAs oder mittels DSPs (von TI) implementiert wurde, wobei die Daten direkt von den Kameras angeliefert werden und mit bis zu 100 Bildern/sek (bei 640x480px) ausgewertet werden. Und das ganze bei erheblich weniger Saftverbrauch als eine CPU.
Nun meine Frage: Ist so ein System für einen bastler (oder eine Community von bastlern ) überhaupt machbar? Ich meinerseits kann zwar recht gut programmieren, wie ich allerdings so ein FPGA z.B. mit einen ARM oder AVR-COntrollerboard sinnvoll ergänzen soll (oder umgekehrt) wüsste ich nicht. Auch die "beste" Lösung (FPGA oder DSP oder ...?) könnte ich jetzt nicht wirklich ausmachen. Toll wäre, wenn man als Community so ein Projekt unter der GPL entwickeln und die fertige Hardware + drauf laufender Software verkaufen könnte....
Kommentare?
Servus
Lukas
Wird vielleicht "bastelinteressant" wenn es die neuen AVR32 gibt, die schon die wesentlichen DSP Funktionen (Fixpunkt SIMD) enthalten.
Hast Du schon einmal so einen Algorithmus auf dem PC realisiert ? Ich weiss, dass es ziemlich viel Forschung auf dem Gebiet der 3D-Bilderkennung gibt und ich weiss auch, dass eine praktische Realisierung ziemlich schwierig ist.ch hab nach einiger Recherche eine vielleicht etwas verrückte Idee. Ich möchte meinem geplanten Roboter eine Stereo-Vision verpassen, wo die Bilder zweier Kameras ausgewertet und daraus eine Depthmap erstellt wird. Nun sind die aktuellen Algorithmen zwar nicht "schlecht" bei der Erkennung der Daten, aber sie verlangen nach ordentlich Power. Und da man normalerweise auf einen mobilen Bot keinen 3Ghz Pentium sitzen hat, um rund 10 Bilder/sek zu bekommen, Suche ich nach einer anderen Lösung.
Ich bin immer der Meinung, man sollte zuerst einen Algorithmus realisiert und die Leistungsfähigkeit getestet haben, bevor man an die Hardware denkt. Es sei denn man will sich an der Hardware aufreiben und später das Projekt begraben.
Aus diesem Grunde halte ich den Ball sehr viel flacher, siehe hier:
https://www.roboternetz.de/phpBB2/viewtopic.php?t=15762
Aber wenn Du schon einen solchen Algorithmus auf dem PC realisiert hast, würde mich das Ergebnis sehr interessieren.
Gruss,
stochri
Nun mit einem FPGA ist das wohl zu machen. In sachen DSP bin ich nicht der Fachmann, aber nach meinem Wissenstand ist das bestimmt auch möglich. Das ist aber auch nicht grad einfach in VHDL umzusetzen. Da müsste ich auch einiges an arbeit investieren, obwohl ich mich mal im bezug auf VHDL und FPGA´s nicht als Noob bezeichnen würde. Also realistisch gesehen würde ich sagen, das die lösung im FPGA ohne Vorwissen nicht zu realisieren ist. Es sei denn du bist ne Kämpfernatur
Für meinen Geschmack ist es einfacher, auf CPUs mit SIMD Einheiten à la ISSE3 zu setzen (wie z.B. AVR32). Unterm Strich reduzieren sich die richtig "teuren" Bildverarbeitungsroutinen meisten auf Vektor und Matrixoperationen, die sich sehr gut mit SIMD realisieren lassen. Ein VHDL/FPGA Profi kodiert das vielleicht auch sehr schnell, aber zum ist es nach meiner Erfahrung einfacher auf eine leicht zu bedienende (im Sinne von Algorithmen anpassen und testen) Plattform zu setzen.
Die zeitkritischen Codes kann man dann später immer noch in ein FPGA packen, wenn die Algorithmen stabil sind.
Lesezeichen