PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : (Personen-) Verfolger Bot - wie umsetzen?



arnoa
07.03.2011, 16:01
Hallo!

Habe folgendes Problem bzw. FRAGE: wie würdet Ihr einen "Verfolgerbot" realisieren.
ZIEL: Der BOT soll einer Person brav folgen - am besten einmal erkennen und dann immer hinterher. Natürlich sollte der Bot die Person auch nicht aus den „Augen“ verlieren – auch wenn sich diese zur Seite drehe oder mich sonst irgendwie aus seiner Sicht verändert.

Mir würde ausreichen wenn mein Bot mich erkennt. Eventuell RFID oder sonstige?? Marker (keine Ahnung ob RFID durch einen Körper geht bzw. welche Reichweiten die haben).

Umgesetzt hab ich bis jetzt eine Gesichtserkennung welche wenn das Gesicht aus dem Sichtfeld zu verschwinden droht meine Motoren ansteuert, aber zum Verfolgen ist das nicht brauchbar – müsste immer mit dem Gesicht zu Bot stehen/gehen.
Der "Verfolgermodus" ist zwar nur einer von vielen (wird über Spracherkennung eingeleitet) - ich möchte den aber als ersten umsetzten.

Diverse Sensoren f. Hinderniserkennung kommen dann natürlich noch hinzu - die sehe ich aber nicht als große Herausforderung.

Bin SEHR dankbar für Euer Feedback!

Weitere Infos auch unter
http://www.aurob.com/?cat=1 oder
https://www.roboternetz.de/community/showthread.php?51406-My-first-AU.ROB-project/page2

Herbert A.
08.03.2011, 12:39
Vieleicht Wärmesensoren?
mfG

arnoa
08.03.2011, 13:54
Hallo Herbert!

Danke für den Tipp - ist ein guter Anfang aber leider zu wenig ;(
Wenn drei Personen nebeneinander stehen und dann in verschiedene Richtungen losgehen - wie erkennt mich mein BOT als seinen "Führer"?

Wärme ist nichts desto trotz ein guter Ansatz ...

DANKE!

5Volt-Junkie
08.03.2011, 14:23
Hi,
sehr interessantes Projekt. Besonders deswegen, weil dein Robo zwischen mehreren Personen unterscheiden muss, wer das Sagen im Haus hat. :)
Vielleicht IR-LEDs als Ziel an deinem Körper platzieren?

arnoa
08.03.2011, 14:51
Ich versuche eine halbwegs Alltags taugliche Lösung zu finden - ohne dass ich mich sehr aufwendig selbst immer "markieren" muss.

Ev. ist der Ansatz mit Wärmesensoren gar nicht so schlecht. Wenn ich beim Markieren zusätzlich eine Geste mache (somit bin ich eindeutig erkennbar) und eine Geste kann ich abfangen - den Rest bzw. das Verfolgen dann über Wärme. Darf halt nie jemand meinen Weg kreuzen, sonst ist mein BOT weg ;)

Übrigens - Dein Bubble schaut super genial aus!!!

LG

5Volt-Junkie
08.03.2011, 15:05
Vielen dank für die Blümen ;)

Kannst du dir irgendwie die Farbe merken lassen? Wobei je nach Lichteinfall, würde sich auch (für die Cam) die Farbe der Kleidung ändern :(. Hatte kaum was mit solchen Erkennungs-Algorythmen kaum was am Hut, außer dass ich vor Ewigkeit mit Cam-Alert etwas rumgespielt hab.

Herbert A.
08.03.2011, 17:08
Vielleicht kannst du auch irgendeinen Sender(Ultraschall...) an dir festmachen
,sodass der bot dem Signal folgt

PICture
08.03.2011, 17:18
Hallo!

@ arnoa

Sorry, aber so ein Bot war für mich so kompliziert (praktisch unrealisierbar), dass ich einfach geheiratet habe.

Ich bin gespannt an Endergebnis deiner Mühe und wünsche dir vieeel Erfolg. :)

MfG

Günter49
09.03.2011, 01:25
Deine Aufgabenstellung ist sehr anspruchsvoll, zumindest wenn der „Roboterführer“ auf künstliche angebrachte Unterscheidungsmerkmale (Farbmarken, Referenzmarken =fiducials, blinkende LEDs, Ultraschallsender, usw. ) verzichtet, die ein Robotersensor (Kamera, Laserscanner, Mikrofon, Ultraschallempfänger) auch erkennen kann. Der Roboter müsste dann nahezu menschliche Wahrnehmungsfähigkeiten haben. Welche „Sensoren“ würdest du denn einsetzen, wenn du einer bestimmten Person folgen willst ( oder PICture seiner Ehefrau im Gewühl des Supermarktes)? Da geht es nicht nur um optisches Erkennen, sondern auch um jede Menge Vorwissen. Wie bewegen sich Personen, was sind mögliche Wege in bestimmten Umgebungen, kann ich die Personen an unterschiedlichen Körperhaltungen unterscheiden und und und. Auf dem Hobbylevel als Einzelperson ist das nach meiner Einschätzung kaum zu lösen. Solche Aufgaben gehören sozusagen zur Kür beim RoboCup@home (31.3.-3.4 in Magdeburg). Der Roboter muss dort einem Kunden = "Roboterführer" in einem bevölkerten Supermarkt folgen.
Vielleicht findest du auf den Internetseiten der RoboCup-Teams, die z.Zt. ihre Projektbeschreibungen ins Netz stellen, ein paar nützlich Tipps:
http://www.b-it-bots.de/Johnny_files/b-it-bots-tdp-2011.pdf
oder bei dem anderen sehr erfolgreichen Team:
http://www.nimbro.net/@Home/index.html
Auf der Publikationsseite von Nimbro findest du auch folgenden Aufsatz, der für deine Aufgabenstellung ganz interessant sein dürfte:
http://www.ais.uni-bonn.de/papers/RoboCup_Symposium_2010_Stueckler.pdf

Viel Erfolg
Günter

P.S. Die Robocup German Open in Magdeburg sind praktisch die Generalprobe für die Weltmeisterschaft in Istanbul. Da werden alle Spitzenteams von den Niederlanden bis zum Iran auflaufen. Wer den Stand der Technik sehen will, sollte sich das nicht entgehen lassen. Und für den Hobbyisten ist es manchmal tröstlich, wenn man mit sieht, dass auch bei solchen "Profis" mit zum Teil sehr teurer Hardware (z.B. Care-O-bot von b-it-bots) nicht alles reibungslos funktioniert.
http://www.robocupgermanopen.de/de/major/athome

arnoa
09.03.2011, 08:58
@PICture: Heiraten bzw. meine Frau dazu zu bringen mir zu folgen war relativ einfach ;)

@Günter: Ich geb Dir recht dass die Anforderung nicht die einfachste ist. Ich habe auch "nur" dass Problem wenn mich mein Bot von hinten sieht. Sobald ich ihm mein Gesicht zeige ist das alles kein Problem. Gesichtserkennung habe ich schon umgesetzt. Auch das finden meines Gesichtes unter vielen funktioniert soweit schon. Ist zwar nicht superschnell (im Vergleich zur menschlichen Wahrnehmung) aber es funktioniert.
Problem, wie gesagt, ist meine Rückseite. Hier ist die Unterscheidung zwischen Personen zum Teil einfach zu gering bzw. meine Personenerkennung zu ungenau. Ich arbeite derzeit mit OpenCV - damit lässt sich ziemlich viel abdecken bzw. hab ich schon ziemlich viel abgedeckt - bis auf eine treffsichere Erkennung von hinten eben ;(
Werd mir nächstes Monat ev. mal das MS-Kinect leisten - Lib´s sollten ja offen liegen soviel ich gelesen habe. Mal sehn was dieses Teil so kann ...

Vielen DANK auf jedem Fall für die Inputs -werde hier bzw. auf meiner Site meine Versuche/Fehlschläge dokumentieren ;) Kann aber trotzdem fast nicht glauben dass diese Anforderung hier noch nicht umgesetzt wurde.

Danke, Arno

Thoralf
11.03.2011, 08:19
wie Günther schon sagte: es ist viel zu kompliziert fürs kleine Budget.
Schau dir mal verchiedene Personen von hinten an. Laß mal deine Kumpels sich in einer Reihe aufstellen und guck mal, worin sie sich außer der Farbe der Kleidung unterscheiden.

Daraus ergibt sich vielleicht auch eine brauchbare (im haushalt) Lösung. Du schreibst ja, daß du die Gesichtserkennung im Griff hast. Wie wäre es, wenn du deinen Roboter in 2 Phasen steuerst:
1. du zeigst dich von vorn und er erkennt dein Gesicht
2. du drehst dich um und er lernt dein Aussehen von hinten
3. der Robbi hängt sich an dich dran

Vorausgesetzt ist, daß in dieser Phase niemand die Erkennung stört.
Falls der andere Personen auftauchen - mit ähnlicher Kleidung - sollte der Robbi stehen bleiben und warten bis du dich wieder umdrehst und bei Punkt 1. beginnen.

Klar ist das für harte praktische Fälle ziemlich umständlich aber löse doch erstmal so einen Pilotfall, dann siehst du weiter.

Ich kann mich da an eine kleine Geschichte erinnern:
eine Bekannte von mir ging mit ihrer Freundin samt Hund spazieren. Die Freundin rief: "Fuß". Üblicherweise hat der Hund dann rechts des Frauchens zu gehen. Da beide einen Parka trugen und die Haare ähnlich waren, ging der Hund rechts der Bekannten und nicht des Frauchens. Also: selbst für einen Hund mit Lichtjahren mehr Intelligenz gegenüber einem Roboter ist das Problem ziemlich kompliziert.

arnoa
31.10.2011, 11:17
Nach längerem bin ich wieder ein wenig zum Basteln und Programmiergen gekommen (Fotos und neuer Zwischenstand folgt im Detail).

Habe jetzt meine Personenverfolgung derzeit wie folgt gelöst: ich suche ein/mein Gesicht. Nach erfolgreicher Erkennung wird auf Punktverfolgung gewechselt. Ab diesem Zeitpunkt ist es egal wie ich zur Cam stehe.

Das größte Problem ist derzeit die Geschwindigkeit der Gesichts- bzw. Punktverfolgung. Obwohl ich einen i7 4x2GH im Einsatz habe, komme ich NUR auf ca. 5fp - mehr is nicht. Obwohl die CPU so gut wie nicht ausgelastet ist, ich versteh das Problem derzeit noch nicht ganz - bin für jeden Hinweis sehr Dankbar. Prog. mit VC++ und OpenCV bzw. OpenFrameworks.

mehr in Kürze ;)
LG, Arno

Richard
31.10.2011, 15:09
Au
Nach längerem bin ich wieder ein wenig zum Basteln und Programmiergen gekommen (Fotos und neuer Zwischenstand folgt im Detail).

Habe jetzt meine Personenverfolgung derzeit wie folgt gelöst: ich suche ein/mein Gesicht. Nach erfolgreicher Erkennung wird auf Punktverfolgung gewechselt. Ab diesem Zeitpunkt ist es egal wie ich zur Cam stehe.

Das größte Problem ist derzeit die Geschwindigkeit der Gesichts- bzw. Punktverfolgung. Obwohl ich einen i7 4x2GH im Einsatz habe, komme ich NUR auf ca. 5fp - mehr is nicht. Obwohl die CPU so gut wie nicht ausgelastet ist, ich versteh das Problem derzeit noch nicht ganz - bin für jeden Hinweis sehr Dankbar. Prog. mit VC++ und OpenCV bzw. OpenFrameworks.

mehr in Kürze ;)
LG, Arno



Das sieht doch schon ganz gut aus, ich habe mir auch gedacht das eine Objektverfolgung (ganze Person) einfacher als reine Gesichtserkennung wird. Aus der Überwachungs Technik kenne ich Systeme mit 1000 fp...Texas hat glaube ich Chips welche 4 Kanäle gleichzeitig mit 25 fp in h264 (mpeg 4) verarbeiten können. Leider kenne ich dessen Bezeichnung nicht.

Gruß Richard

arnoa
10.11.2011, 16:38
Hab einen komischen Effekt ... hab eine andere WebCam angeschlossen (gleiche Auflösung, gleiche max. Framerate) - mit dieser Webcam läuft die ganze Gesichts- bzw. Personererkennung viel schnelle. Muss jetzt mal ein wenig darüber nachdenken wie das sein kann bzw. was dahinter steckt.

Hab mir gerade jetzt die Kinect geleistet - bin schon sehr gespannt was mit diesem Ding zu machen ist ;) Werd hoffentlich am Wochenende dazu kommen mich da ein wenig rum zu spielen.

LG, Arno