PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Abstandserkennung mittels RPI-Cam



robosapiens
14.06.2014, 15:17
Hallo,

ich bin momentan an dem Bau eines Humanoiden Roboters. Werde dazu bald auch ein Artikel schreiben, komm aber leider momentan zeitlich nicht dazu....

Ich habe vor eine Objekterkennung mittels OpenCV zu realisieren, brauche aber auch eine Abstandserkennung damit mein Roboter nicht ständig irgendwo gegen läuft. Habe schon ein wenig gegoogelt aber nichts vernünftiges gefunden. Hat jemand von euch schon sowas probiert zu realisieren?

Freu mich über jeden produktiven Kommentar ;)

damfino
14.06.2014, 20:01
Eine Abstandserkennung aus einem Standbild geht nicht.
Es geht aber eine Erkennung wenn sich der Roboter bewegt: dann kann man aus dem Größenunterschied des Objektes von einem Frame zum nächsten und der Geschwindigkeit den Abstand berechnen. Wenn sich nur das Objekt und nicht der Roboter bewegt funktioniert es nicht mehr.
So in der Art funktioniert die kamerabasierte Kollisionserkennung im KFZ, das versagt aber auch bei Objekten die sich nur seitlich bewegen oder einen konstanten Abstand einhalten.
Bessere Systeme verwenden Radar, das funktioniert immer.

Auch hier wäre zB Ultraschall zur Kollisionserkennung zuverlässiger.

LG!

robosapiens
15.06.2014, 09:28
Hallo damfino,

danke für deinen Kommentar. Ich denke ich werde deinen Rat befolgen und Ultraschallsensoren verwenden... dennoch möchte ich es mal probieren eine Kollisionserkennung mit einer Kamera zu realisieren.

Vielen Dank

Rabenauge
15.06.2014, 11:04
Geht nicht, wie schon gesagt wurde.
Was du machen könntest, ist sowas, wie die Sharp-IR-Sensoren benutzen.
Z.B. nen Laser neben der Kamera anordnen (etwas schräg), und dann über die Kamera den Leuchtpunkt am Hindernis erfassen. Somit hast du ne Art Triangulation. Wird nichts auf grössere Entfernungen, aber auf nen paar Meter könnts klappen.


Aufwendiger wäre die übliche Methode: zwei Kameras und die Bilder vergleichen.

robosapiens
15.06.2014, 11:43
Hallo Rabenauge,

ich bin ein wenig mit c und c++ vertraut aber kein programmierungs-genie ... :)
Die idee mit dem Laser habe ich auch im Internet gefunden, als ich ein wenig gegoogelt habe, nur weiss ich nicht, wie ich das praktisch, in form eines Programmes umsetzen kann... deswegen hatte ich nach einer etwas einfacherern Variante gesucht :)

Rabenauge
15.06.2014, 13:36
Das _ist_ im Grunde einfach.
Ganz ehrlich: einfacher wirds, wenn es über die Kamera laufen soll, definitiv nie!
Du nimmst nen Laser (kann ich Infratot sein), montierst den mit so viel Abstand wie möglich neben der Kamera. Am besten nicht ganz parallel, sondern mit so viel Abweichung, dass der Punkt auf die interessierenden Entfernungen an nem Hindernis immer im Bild ist. Der Laserpunkt auf nem Hindernis ist relativ leicht zu erkennen-man kann den ja auch modulieren, dann erkennt die Software ihn sicher.
Aus der Stelle im Bild, an der er auftaucht, und den bekannten Winkeln kann man dann die Entfernung mit dem Dreieckssatz berechnen.
Da du ja offenber schon Objekte per Kamera erkennen kannst, ist _das_ ein Klacks- geht ja nur um nen Leuchtpunkt.

robosapiens
18.06.2014, 17:10
Hallo,

objekterkennung habe ich vor zu programmieren.... bis jetzt erkennt mein Programm nur grobe Formen :D
Werde das mit dem Laser ausprobieren und meine Ergebnisse hier teilen :)

Vielen Dank für eure Unterstützung =D>