PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Person folgen



Robotniks
21.02.2020, 16:15
Hallo zusammen,

hat von euch schon einer einen Roboter gebaut der einer Person folgt?
Es gibt dazu ja verschiedene Ansätze wie:

- Ultraschall Bake
- Infrarot Bake
- Computer Vision
- UWB

Vielleicht können wir hier einen Thread starten der das Thema "Person Following" thematisiert, welche Möglickeiten umsetzbar wären?

Hier ein Beispiel:

https://www.youtube.com/watch?v=G72kg4Fi390

inka
21.02.2020, 17:51
hallo,
mein outdoor soll es auch mal können, deshalb bin ich an diesem thema sehr interessiert...
Wäre RFID auch eine möglichkeit?
Ich habe mal einen versuch gemacht mit einem sender und empfänger mit 433mHz, also mit sowas (https://www.amazon.de/Anpro-Empf%C3%A4nger-Superregeneration-Transmitter-Einbrecher/dp/B071J2Z3YK/ref=asc_df_B071J2Z3YK/?tag=googshopde-21&linkCode=df0&hvadid=309862900548&hvpos=&hvnetw=g&hvrand=17787241115876326335&hvpone=&hvptwo=&hvqmt=&hvdev=c&hvdvcmdl=&hvlocint=&hvlocphy=9042994&hvtargid=pla-708458467191&psc=1&th=1&psc=1&tag=&ref=&adgrpid=61705962935&hvpone=&hvptwo=&hvadid=309862900548&hvpos=&hvnetw=g&hvrand=17787241115876326335&hvqmt=&hvdev=c&hvdvcmdl=&hvlocint=&hvlocphy=9042994&hvtargid=pla-708458467191) , es ging da aber weniger um das folgen, sondern darum, dass meine frau merkt, wenn sie auf dem fahrrad als erste fährt und zu schnell ist, mich verliert. Die signalisierung sollte optisch (rote LED / grüne LED blinkt) erfolgen. Wir haben uns dann auf ein anderes verfahren geeinigt :-)

Moppi
22.02.2020, 11:10
Es müsste die Richtung eines Signals geortet werden, das wird draußen etwas schwer, denke ich. Funktionieren würde es mindestens mit einer Kamera. Es gibt ja welche, wo man Bilder speichern kann, die dann wiedererkannt werden. Das könnten auch Muster sein (Aufkleber auf einer Jacke oder so was). RFID = ? : https://www.rfid-grundlagen.de/reichweite.html

Ansonsten wäre vielleicht ein WLAN denkbar. Wobei ein ESP senden könnte und der am Fahrgerät empfängt - eine GPS-Position. Sender und Empfänger bräuchten dann GPS, das sehr genau auflöst. Ich weiß nicht, ob da was unter 10m möglich ist.

Zuletzt fällt mir noch ein: Funk-Tracker für Haustiere, damit mal beschäftigen.

MfG

oberallgeier
22.02.2020, 12:38
.. Richtung eines Signals geortet werden .. wird draußen etwas schwer .. Funktionieren würde es mindestens mit einer Kamera ..Na ja, nix gegen aufwendige Lösungen (as complicated as possible :-/ ). Robotniks´ Liste hat aber schon an erster Stelle ne Möglichkeit stehen.

Meine Liste "geplante Projekte" hat allerdings ne einfach(er)e Lösung. Sende ein Ping per 433 MHz vom Bot (oder so). Der ID-Controller an der Person hört den Ping und sendet per US nen Ping zurück. Der Bot hat z.B. an den Schultern je ein US-Micro. Der Controler wertet die Micros aus, berechnet die Laufzeit für beide Signale (Laufzeit "Funk" ist ja eher vernachlässigbar) und trianguliert damit den Abstand "Funksender" ID-Controller. Klingt für mich deutlich simpler - habs aber noch nicht aufgebaut. Geschätzt so ±10 cm bis ±20 cm oder besser bei Reichweiten im einstelligen Meterbereich. Ich hatte es noch nie gebaut, daher keine Garantie - egal wofür.

Moppi
22.02.2020, 13:16
Robotniks´ Liste hat aber schon an erster Stelle ne Möglichkeit stehen.

Und der Link zeigt ein Video, wo es um draussen geht, Inka möchte auch eine Lösung für draussen.
Ich weiß nicht, ob das dann mit US eine gute Lösung ist, bei so vielen Umgebungsgeräuschen, kreuzenden Fußgängern, Radfahrern, kleinen Kindern ...
Lasse mich aber überzeugen.

Infrarot ist für draussen wohl auch nicht gut geeignet.

Ich habe gerade etwas gesucht: Neo 6M-GPS-Modul. Da wird mit einer Genauigkeit von 2,5m geworben. Ist aber immer noch rel. viel Abstand. Aber was man im Video sieht, da könnte das mit GPS schon passen, wenn das wirklich so genau funktioniert.


MfG

Rabenauge
22.02.2020, 13:52
Das Neo-6m kommt durchaus bis etwa 2m runter.
Unter gewissen Bedingungen....

Dazu muss man aber wissen,w ie die "Genauigkeit" eines GPS überhaupt zu verstehen ist:
Wenn es mit 2.5m angegeben ist, bedeutet das nur, dass die Hälfte der Positionspunkte, die ausgegeben werden, innerhalb eines _Radius_ von 2.5m liegen.
10m-Ausreisser kommen durchaus vor...
So werden aber aus den angegebenen 2.5m schonmal 5m, wenn man nen Punkt anfahren will.

Und dann: das Neo6m unterstützt SBAS- und _nur_ bei SBAS-Empfang kommt die Genauigkeit zu Stande.
Ohne, reden wir, realistisch, eher über 5-7m "Genauigkeit" (nach obigem).
In Innenräumen, oder auch nur in stark bebautem Gebiet ists Essig mit SBAS.

Was man natürlich tun kann: das GPS zusammen mit weiteren Sensoren nutzen, wie das kommerzielle Geräte eigentlich immer machen.
Oder eben kombinieren: auf grössere Entfernungen das GPS (je grösser die Entfernung zwischen beiden ist, umso weniger fällt die Abweichung ins Gewicht), auf Nahdistanz dann Ultraschall (oder so...).
Und: ein GPS alleine wird _nie_ eine Navigation ermöglichen, denn den GPS-Daten fehlt jegliche Orientierung.
Es muss, um ne Richtung zu irgendwelchen Koordinaten rausfinden zu können, wenigstens noch ein Kompass mitspielen.

Infrarot würd ich übrigens keineswegs ausschliessen: gut moduliert, funktioniert das auch in der Sonne- wenn der Strahler hell genug ist.
Und _das_ wiederum ist recht problemlos lösbar.

Defiant
22.02.2020, 15:30
Ich hab das mal mit drei DWM1000 Modulen (https://www.decawave.com/product/dwm1000-module/) gemacht. Diese basieren auf Ultra-wideband (UWB) und damit kann man Abstände auf ca. 10cm lokalisieren. Ich habe je ein Modul links und rechts an den Roboter angebaut und habe mit den beiden die Position des dritten trianguliert. Hat ohne viel tuning erste brauchbare Ergebnisse geliefert:
https://vimeo.com/288943433

Mit mehr tuning könnte das ganze gut und zuverlässig arbeiten. Allerdings ist die maximale Reichweite der Module auf <50m begrenzt.

Rabenauge
22.02.2020, 16:17
Oberalb dieser Entfernung kommen eh noch ganz andere Probleme....das geht dann weit über einfaches folgen hinaus.

Bin beeindruckt, wie gut das funktioniert- sieht nach nem recht guten Plan aus!
Allerdings: die Teile scheints nicht mehr zu geben, oder?

Defiant
22.02.2020, 16:57
Etwas mehr Text gibt es dazu hier (https://hackaday.io/project/25406-wild-thumper-based-ros-robot/log/152597-follow-me-part-4)

Nach einer kurzen Suche: Die Localino (https://hackaday.io/project/18296-localino-open-source-indoor-localization-system) boards die ich verwendet habe scheint es wirklich nicht mehr zu geben. Schade. Die DWM1000 (https://www.digikey.de/product-detail/de/decawave-limited/DWM1000/1479-1002-1-ND/4805335) an sich schon.

Btw: Sollte der nächste (inzwischen aktuelle?) Bluetooth Standard nicht ebenfalls relative genaue Lokalisierung unterstützen?

Edit: Sowas: https://www.youtube.com/watch?v=aW4zKBtBQgw

Robotniks
24.02.2020, 11:27
Outdoor ist "relativ" einfach mit Hilfe eines Smartphones (GPS aktiv + Bluetooth) und GPS im Bot. So machen es auch die üblichen Copter mit Person-Follow Funktion, dass geht sehr gut, aber leider nur im Außenbereich.
Hier ein Video + Bauanleitung:

https://www.youtube.com/watch?v=vGDMpLMkWFg


Bei Indoor bzw. die Kombination aus Innen und Außen wird es kniffliger. Derzeit sehe ich die UWB Lösung als beste an. Mich stört aber das es die UWB Module irgendwie nur von einen Hersteller "Decawave" gibt?!

Ich hab vor Jahren schon Outdoor IR-Baken für Roboter gebaut die auch bei starker Sonneneinstrahlung knappe 30 m geschafft haben, somit wäre das schon eine Lösung.
Aber egal ob US oder IR, der Sender darf nicht verdeckt durch Kleidungsstücke o.ä sein, dass schränkt schon wieder ein finde ich.

PS: Der Thread ist da um alle Möglichkeiten und Ideen zu durchleuchten und ggf. auch zum "mitbasteln" :-)

Hier noch ein paar interessante Links:

https://www.youtube.com/watch?v=Hr2bx1tgERc

https://www.youtube.com/watch?v=9d8HmCxB158

- - - Aktualisiert - - -

Phasenpeilung z.B. im 70 cm Band (433 MHz) oder 868 MHz wäre auch eine elegante und günstige Möglichkeit, jedoch gibt es irgendwie keine anlogen FM Funkmodule mehr die einen Audioausgang besitzen.
Bei den digitalen TRCVRs wie den RF12, 69 oder wie sie alle heißen, sehe ich keine Möglichkeit die für diesen Zweck zu verwenden, oder übersehe ich was?

Hier noch ein paar weitere interessante Links :-)

https://bergundtalfunk.wordpress.com/2013/02/06/phasenpeiler/

http://robowarner.com/portfolio/radio-homing-robot-diy/

inka
24.02.2020, 13:52
Phasenpeilung z.B. im 70 cm Band (433 MHz) oder 868 MHz wäre auch eine elegante und günstige Möglichkeit, jedoch gibt es irgendwie keine anlogen FM Funkmodule mehr die einen Audioausgang besitzen.
Wozu braucht man den Audioausgang? Tun es z.b. die (https://www.az-delivery.de/products/433-mhz-modul?variant=27839923657&gclid=CjwKCAiAhc7yBRAdEiwAplGxXxmqeQDsnqTbbEhpfu-CtjnVudMx9wflPqinliYQz4I6CZSEoadX7xoCv3QQAvD_BwE) teile nicht?

Defiant
24.02.2020, 19:23
Phasenpeilung habe ich vor den UWM Modulen versucht:Aufbau (https://cdn.hackaday.io/images/7333091529316794365.jpg), Ergebnis (https://cdn.hackaday.io/images/7498181529317974908.jpg)
Bin jedoch indoor an Reflexionen gescheitert. (Ich habe von Funk und Antennen allerdings nicht soviel Ahnung. Mein kompletter Versuch ist hier (https://hackaday.io/project/25406-wild-thumper-based-ros-robot/log/148105-follow-me-part-3) beschrieben.

Zu den rfm12 Modulen: Wieso sollte es damit nicht gehen? Die machen doch fsk was doch auch nur "primitives" fm ist, oder nicht? Oder meinst du für Empfang? Da würde ich einen rtl-sdr nehmen.

Edit: Siehe auch mikrocontroller.net: "Die Frequenzumtastung (FSK) wird gern als ein Sonderfall der Frequenzmodulation betrachtet." (https://www.mikrocontroller.net/articles/RFM12)

Edit (2): Zur not kann der Raspberry Pi auch FM modulieren (https://github.com/rm-hull/pifm) ;)

Edit (3): Weitere Varianten
- Turtlebot follower (https://www.youtube.com/watch?v=XtxnuM9dTL8) wenn Laserscanner oder 3d Kamera vorhanden
- lef detector (http://wiki.ros.org/leg_detector) wenn Laserscanner oder 3d Kamera vorhanden
- AR-Tags (https://docs.opencv.org/trunk/d5/dae/tutorial_aruco_detection.html) (einen hinten auf die Hose/Rücken kleben) wenn Kamera vorhanden

HaWe
25.02.2020, 11:03
eine sehr einfach zu benutzende Lösung auf dm-Wellen-Basis gibt es von Pozyx (1 Master (Anchor) + 1 Slave-Modul (Tag) ), funktioniert u.a. mit 5V-Arduinos per i2c und auch mit Raspi über USB)

Robotniks
25.02.2020, 16:21
Defiant hat ja schon sehr viel praktisch experimentiert und auch mit ROS gearbeitet -> Echt Stark!!!

Wie hast du mit dem SDR das Signal ausgewertet?
Bei den kleinen FSK Modulen die mittlerweile nur noch ein SPI Interface haben habe ich keine Ahnung wie ich das Signal auswerten kann um auf die Richtung zu kommen.
Senden mit einen günstigen FSK ja und mit einen SDR empfangen wäre eine Möglichkeit wenn man davon ausgeht, dass man einen kleinen Rechner wie einen Pi onBoard hat.

Ich geh von Dopplerpeiler Theorie mit z. B. 4 Antennen aus (siehe Links).
Das ganze habe ich mal vor 20 Jahren für das 2m Band aufgebaut und das ging erstaunlich gut!
Dazu benötigt man aber das Audiosignal eines FM Empfängers, da hier die "Richtungsinformation" enthalten ist (ist im ersten Link schön erklärt).

http://www.peilgruppe-kalmit.de/theorie_dopplerpeiler.htm

https://www.darc.de/fileadmin/filemounts/distrikte/c/Selbstbauprojekte/Phasenpeiler_Update_2019_E8.pdf (https://www.darc.de/fileadmin/filemounts/distrikte/c/Selbstbauprojekte/Phasenpeiler_Update_2019_E8.pdf)

@MaWe: Den Pozyx kenn ich auch (zumindest aus dem Web) , die arbeiten auch auch mit den Decawave DW Modulen, leider doch recht teuer und wieder an einen Hersteller gebunden. Schöner wäre was eigenes zu machen, dass man auch nachbauen kann.


Was am Rande: Ich erinnere mich noch an die Träume der User aus den Anfangszeiten des "Roboternetz". Frank (Gründer des Robternetzes) baute damals einen 4WD Outdoor Roboter aus ALU und die ersten CMU Kameras kamen auf den Markt, da waren die Träume das man mit den Roboter "gassi" gehen kann *lach*, aber mache Problemstellungen sind heute aktuell wie damals :-)

Defiant
25.02.2020, 21:02
Wie hast du mit dem SDR das Signal ausgewertet?

Mit einem rtl-sdr und einem Programm welches die Ausgabe von rtl_fm auswertet und manuell die Flanken zählt. Das ist leider nicht besonders "schön". Das gnuradio-Modell habe ich anscheinend nicht zu Ende entwickelt.



Bei den kleinen FSK Modulen die mittlerweile nur noch ein SPI Interface haben habe ich keine Ahnung wie ich das Signal auswerten kann um auf die Richtung zu kommen.

Wenn mich mein Gedächtnis nicht täuscht konnte man das Analoge Signal zumindest bei den RFM01-Empfangsmodulen abgreifen, das könnte eventuell ein Weg sein. Ich würde allerdings auf den SDR setzen.

Defiant
26.02.2020, 06:35
Wozu braucht man den Audioausgang? Tun es z.b. die (https://www.az-delivery.de/products/433-mhz-modul?variant=27839923657&gclid=CjwKCAiAhc7yBRAdEiwAplGxXxmqeQDsnqTbbEhpfu-CtjnVudMx9wflPqinliYQz4I6CZSEoadX7xoCv3QQAvD_BwE) teile nicht?
Auch wenn ich das auf der Seite nicht direkt gelesen haben sind das wohl AM-Module, zumindest sehen die aus wie meine AM-Module.

Für die Benutzung eines Phasenpeilers benötigt man aber mindestens ein FM-Signal da man ja eine Frequenz braucht um eine Phasenverschiebung messen zu können. (So habe ich das zumindest in Erinnerung)
Was man im Prinzip macht ist den Empfänger "virtuell" schnell zum Ziel zu bewegen, bzw wieder weg. Dadurch erhält man den von Polizei/Feuerwehrautos bekannten Dopplereffekt.

--

Vielleicht sollte man zur weiteren Planung erstmal die Hardware-Voraussetzung festlegen. Ist das Ziel ein Roboter mit Single-Board-Computer z.B. den rpi oder ist dort "nur" ein Mikrocontroller vorhanden. Ich halte es für einfacher einen Kleincomputer als Ziel zu verwenden da man dort schneller entwickeln kann. Treibt natürlich die Stromkosten hoch. Im Preis sollten sich rpi+sdr vs Mikrocontroller und rfmxx nicht groß unterscheiden. Vielleicht könnte man auch mit einem SDR den Algorithmus entwickeln und später versuchen den auf ein anderes Ziel zu portieren?

Mein Hauptproblem damals waren, wie schon geschrieben, die Reflexionen. Mein Sendesignal musste stark genug sein damit der RTl-SDR es mit seinen relativen hohen Verlusten dekodieren konnte. Ein schwächeres Signal würde vermutlich weniger reflektiert werden nehme ich an?

Robotniks
26.02.2020, 15:46
GNURADIO läuft auch mit den RTL Chipsätzen also umprogrammierte DVB-T USB Sticks?

Als Grundlage für so einen Roboter wäre es kein Problem einen Pi 4 einzusetzen und die Software in C bzw. Python zu schreiben. Was verwendest du für einen Kleinrechner in deinen Bot?

Heute auch ein UWB Beitrag in Elektronikpraxis:

hier: https://www.elektronikpraxis.vogel.de/ultra-wideband-funk-fuer-genaue-indoor-lokalisierung-nutzen-a-904440/?cmp=nl-95&uuid=24BAE154-FCE8-471F-B2DD1D0B3AFA7CE1

Ich denke aber das bei der Phasenpeilermethode die Variante mit 4 Antennen deutlich genauer Funktionen sollte und Reflexionen sich nicht so stark auswirken sollten, evtl. Mehrfachmessung durchführen.

Defiant
26.02.2020, 18:10
Ja, gnuradio geht mit der osmocom Source mit den rtl-sdr.

Als Single-Board-Computer verwende ich ein Solid Run Hummingboard mit i.mx6 Prozessor (ARM Cortex-A9) (https://www.solid-run.com/nxp-family/hummingboard/). Aber raspi oder beaglebone gehen genauso gut. Das dürfte keinen Unterschied machen.
Hast du schon eine Idee für die Antennenumschaltung? Die Dioden-Variante von DL6WA die ich nachgebaut habe dürfte so nicht mit 4 Antennen funktionieren...

Robotniks
27.02.2020, 09:48
Ideal sind zum umschalten der Antennen PIN-Dioden.

Hier habe ich noch was gefunden, den Antennenumschalter könnte man so für die Anwendung übernehmen.

https://docplayer.org/14122334-Handbuch-zum-mobil-doppler-peiler-wissenswertes-ihre-aktivitaeten-arbeitsgemeinschaft-mikrocomputer.html

https://a43.veron.nl/projecten/doppler-peiler-pseudo-doppler-radio-direction-finder-rdf/

https://www.mancave.nl/doppler-peiler-2-0-primeur/

Wenn man aus den FSK Empfängern (egal welcher Hersteller) noch ein Audiosignal bekommen würde, wäre die Auswertung mit einen kleinen µC möglich.

Im EEV Blog auch was interessantes dazu.
https://www.eevblog.com/forum/projects/radio-direction-finding/?PHPSESSID=37bqrvbnfirra7o1qpcuqf64c1

Defiant
12.04.2020, 21:09
Gerade gefunden:
https://www.terabee.com/introducing-a-new-relative-positioning-system-for-mobile-platforms/

Anscheinend auch per UWB.

Defiant
13.04.2020, 08:08
..oder man versucht es mit AI, z.B. Huskylens: https://www.dfrobot.com/product-1922.html?search=huskylens&description=true

Defiant
09.12.2020, 17:42
...oder man versucht es mit ESP32 S2 Time-of-Flight (https://github.com/espressif/esp-idf/issues/5059) Messung von W-Lan Paketen was ja bald kommen soll.