Visuelle Odometrie für TXT und TXT4
Forumsregeln
Bitte beachte die Forumsregeln!
Bitte beachte die Forumsregeln!
Visuelle Odometrie für TXT und TXT4
Hallo zusammen,
bei Modellen, die sich selbständig im Raum bewegen sollen, ist immer die Frage, wie man die Position nachverfolgt. Impulszähler funktionieren wegen des Schlupfes schlecht und Sensoren wie akustische und Laser-Entfernungsmessung sind leider auch relativ dumm und unflexibel. Das Maximum an Flexibilität wäre, eine oder mehrere Kameras zu verwenden. Dies gab es ja bei den Fußball-Robotern mit sehr einfachen Banden-Markern. Ich habe durch Zufall bemerkt, dass bestimmte Kalibriermarker (Aruco) von der FT-Kamera sehr gut gefunden werden können. Ich würde gerne daraus eine Bibliothek so wie ftrobopy bauen, so dass man auch ohne 3D-Fachwissen im Raum navigieren kann.
Hier sind meine ersten Ergebnisse mit dem TXT und der TXT-Kamera:
- Rechenzeit für die Detektion: ca. 600ms (aktueller Laptop: 5ms)
- Zuferlässige Reichweite für Detektionen: 20cm bis 2m für 10cm große Marker
- Bis zu 100 verschiedene Marker sind eindeutig identifizierbar
- Wiederholgenauigkeit ist bei ca. +-1cm und ca. 2%
- Die absolute Genauigkeit der Entfernungsschätzung ist nicht allzu hoch (ca. 10%), aber ich habe die Kamera noch nicht allzu aufwändig kalibriert
Was nun als nächstes käme wäre die Kalibrierung der Motorbewegungen zur Kamera, so dass man metrische Positionen anfahren kann. Und das automatische erstellen einer Marker-Karte. Ich würde mich freuen, wenn sich Mitstreiter finden würden.
Ich selber arbeite mit dem TXT. Die Basis ist OpenCV 4, ist das auf dem TXT4 auch verfügbar? Wenn ja, dann würde ich mich freuen, wenn jemand mit einem oder mehreren TXT4 zu dem Projekt dazustößt. Da wäre die Rechenzeit wohl auch besser.
Wenn es jemand mal ausprobieren will: FT community firmware Release 1.1.0, Kamera an den TXT und die Navigator-App installieren.
lg,
Ralf
bei Modellen, die sich selbständig im Raum bewegen sollen, ist immer die Frage, wie man die Position nachverfolgt. Impulszähler funktionieren wegen des Schlupfes schlecht und Sensoren wie akustische und Laser-Entfernungsmessung sind leider auch relativ dumm und unflexibel. Das Maximum an Flexibilität wäre, eine oder mehrere Kameras zu verwenden. Dies gab es ja bei den Fußball-Robotern mit sehr einfachen Banden-Markern. Ich habe durch Zufall bemerkt, dass bestimmte Kalibriermarker (Aruco) von der FT-Kamera sehr gut gefunden werden können. Ich würde gerne daraus eine Bibliothek so wie ftrobopy bauen, so dass man auch ohne 3D-Fachwissen im Raum navigieren kann.
Hier sind meine ersten Ergebnisse mit dem TXT und der TXT-Kamera:
- Rechenzeit für die Detektion: ca. 600ms (aktueller Laptop: 5ms)
- Zuferlässige Reichweite für Detektionen: 20cm bis 2m für 10cm große Marker
- Bis zu 100 verschiedene Marker sind eindeutig identifizierbar
- Wiederholgenauigkeit ist bei ca. +-1cm und ca. 2%
- Die absolute Genauigkeit der Entfernungsschätzung ist nicht allzu hoch (ca. 10%), aber ich habe die Kamera noch nicht allzu aufwändig kalibriert
Was nun als nächstes käme wäre die Kalibrierung der Motorbewegungen zur Kamera, so dass man metrische Positionen anfahren kann. Und das automatische erstellen einer Marker-Karte. Ich würde mich freuen, wenn sich Mitstreiter finden würden.
Ich selber arbeite mit dem TXT. Die Basis ist OpenCV 4, ist das auf dem TXT4 auch verfügbar? Wenn ja, dann würde ich mich freuen, wenn jemand mit einem oder mehreren TXT4 zu dem Projekt dazustößt. Da wäre die Rechenzeit wohl auch besser.
Wenn es jemand mal ausprobieren will: FT community firmware Release 1.1.0, Kamera an den TXT und die Navigator-App installieren.
lg,
Ralf
Re: Visuelle Odometrie für TXT und TXT4
Hallo Ralf,
das hört sich extrem spannend an. Eine Wiederholgenauigkeit von +-1cm ist doch sehr gut. Und mit einer entsprechenden Kalibrierung wirst Du auch die absolute Positionierung verbessern. Lass uns teilhaben, welche Fortschritte Du machst. Vielleicht schreibst Du auch mal einen ft-Pedia-Artikel
Evtl. könntest Du weitere Sensoren wie Beschleunigungs- oder Gyroskopsensoren dazu nehmen und mittels "Sensor Fusion", die Auflösung verbessern.
Momentan habe ich keinen TXT-Controller. Aber das wäre für mich ein Use Case, endlich mal einen zu kaufen.
Oder ich probiere es mit einem Raspberry-Pi aus. Das wird auch gehen, ist halt nur nicht ft.
Beste Grüße
Florian
das hört sich extrem spannend an. Eine Wiederholgenauigkeit von +-1cm ist doch sehr gut. Und mit einer entsprechenden Kalibrierung wirst Du auch die absolute Positionierung verbessern. Lass uns teilhaben, welche Fortschritte Du machst. Vielleicht schreibst Du auch mal einen ft-Pedia-Artikel

Evtl. könntest Du weitere Sensoren wie Beschleunigungs- oder Gyroskopsensoren dazu nehmen und mittels "Sensor Fusion", die Auflösung verbessern.
Momentan habe ich keinen TXT-Controller. Aber das wäre für mich ein Use Case, endlich mal einen zu kaufen.
Oder ich probiere es mit einem Raspberry-Pi aus. Das wird auch gehen, ist halt nur nicht ft.
Beste Grüße
Florian
- fishfriend
- Beiträge: 2093
- Registriert: 26 Nov 2010, 11:45
Re: Visuelle Odometrie für TXT und TXT4
HAllo...
Ich bin mir nicht sicher mit dem TXT 4.0.
Da hat sich was getan bei der Version, mit einem (neueren) Update. Mein Stand war glaube ich noch 3.5.
Ich meine, dass es auch schon fertige Bibiotheken zu Aruco gibt, die man eventuell nutzen kann oder zumindest als Ausgangspunkt nimmt.
Hatte die PIXY nicht auch soetwas? Ich meine auch mit Winkelangaben oder so. Ist bei mich auch schon etwas länger her, das ich was damit gemacht habe. Eventuell kann man denen was abschauen
Mit freundlichen Grüßen
Holger
Ich bin mir nicht sicher mit dem TXT 4.0.
Da hat sich was getan bei der Version, mit einem (neueren) Update. Mein Stand war glaube ich noch 3.5.
Ich meine, dass es auch schon fertige Bibiotheken zu Aruco gibt, die man eventuell nutzen kann oder zumindest als Ausgangspunkt nimmt.
Hatte die PIXY nicht auch soetwas? Ich meine auch mit Winkelangaben oder so. Ist bei mich auch schon etwas länger her, das ich was damit gemacht habe. Eventuell kann man denen was abschauen

Mit freundlichen Grüßen
Holger
ft Riesenräder PDF: ftcommunity.de/knowhow/bauanleitungen
TX-Light: Arduino und ftduino mit RoboPro
TX-Light: Arduino und ftduino mit RoboPro
Re: Visuelle Odometrie für TXT und TXT4
was meinst du damit? Ich hab mit Lidars bisher gute Erfahrung gemacht
"Propaganda does not deceive people; it merely helps them to deceive themselves."
E Hoffer
E Hoffer
Re: Visuelle Odometrie für TXT und TXT4
Guten Abend zusammen,
Mit freundlichen Grüßen
Lars
ich habe sagen lassen, daß moderne Autos erkennen können, ob sich der Autoschlüssel im Inneren des Fahrzeuges befindet oder außerhalb. Dazu wären auch Antennen im Fahrzeuginneren verbaut. Wie funktioniert das? Triangulation? Dann gäbe das doch auch eine Positionserkennung.
Mit freundlichen Grüßen
Lars
Re: Visuelle Odometrie für TXT und TXT4
Für sowas sind UWB (ultra wideband) und BLE RSSI (BLE=Bluetooth Low Energy) positioning gute Suchschlagworte.
Für UWB sind https://www.qorvo.com/products/p/DWM1000 beliebte Chips zum basteln.
Für UWB sind https://www.qorvo.com/products/p/DWM1000 beliebte Chips zum basteln.
"Propaganda does not deceive people; it merely helps them to deceive themselves."
E Hoffer
E Hoffer
Re: Visuelle Odometrie für TXT und TXT4
Hallo Ralf,
Ggf. auch, eine Motivation, um etwas Praktisches mit linearer Algebra zu machen. Ich könnte mir auch Teileerkennung mit AruCo vorstellen - habe das gerade in einem anderen Thread kommentiert. Ursprünglich hat unser TXT Teddysucher AruCos gesucht und gefunden, das wurde aber für die Veröffentlichung als "zu platt" abgelehnt.
Ich arbeite wie Du mit TXT (genaugenommen mit 2 TXTs) und ftrobopy.
CV2 stellt in Python eigentlich alles zur Verfügung, was man braucht. Außterdem findet man reichlich Python Beispielcode. (Das sei nur noch einmal erwähnt, um vielleicht andere für das Thema zu erwärmen)
Mit der Kalibrierung der Kameras hatte ich mich für die 3D Kamera schon mal auseinandergesetzt, das ist aber m.E. eher fürs Feintuning.
Meine Erfahrungen decken sich mit Deinen. Schnelle, zuverlässige Erkennung des Markers und der Marker ID.
Sehr gute Erkennung der Position des Markers. Auch der Abstand ist OK.
Bei den Winkeln des Markers (nicht des Winkels, unter dem die Kamera den Marker sieht, sondern tatsächlich die Kippung des Markers gegen x,y,z) gibt es speziell aus größerer Entfernung z.B.150cm jedoch große Ungenauigkeiten. Die FT Kamera ist halt einfach sehr weitwinklig und löst nicht sonderlich hoch auf.
Die Positionsermittlung kann daher m.E. nur sehr ungenau mit einer einzelnen Kamera erfolgen (Abstand und Winkel zum AruCo + bekannte Kippstellung des AruCo im Raum). Freilich lässt sich viel durch Kombination mit Gyro und Zählern machen.
Ich habe (Uffi hat mir mit seinem tollen AGV - Autonomous Guided Vehicle - etwas den Drive genommen) angefangen, ein AGV mit zwei Kameras und zwei TXT zu bauen, so dass ich in der Regel zwei AruCo Marker habe, um die Position zu bestimmen.
Allerdings hatte ich nicht vor, den Code zu sharen, so sieht er dann auch aus... Ggf. ist trotzdem was Brauchbares dabei.
In der Tat könnte man eine Markerkarte erstellen. Ich hatte es eher andersherum vor. Ich will zunächst nur mit bekannten Markerpositionen die Position bestimmen und ggf. simple Aufgaben erledigen. Also Positionen anfahren und ggf. etwas aufnehmen und absetzen.
Ich mache alles im Online Modus - Logik auf dem Rechner - mit ftrobopy. Die Jungs und ich haben schon einiges mit Objekterkennung mit der FT Kamera gemacht. Es kommt einfach sehr auf die Beleuchtung an. Speziell bei mobilen Robotern in der Wohnung heißt dass aber, dass man eigentlich nie gleiche Voraussetzungen hat (also bei uns ist das so
). Auf dem Rechner sieht man jederzeit - für beide Kameras, was die Kameras aufzeichnen und wie gut (oder schlecht) die Erkennung ist. In der Regel reicht es schon, z.B. einen Stuhl hinter den AruCo zu stellen, um z.B. bei Gegenlicht die Erkennung zu gewährleisten. Man muss halt erkennen, was das Problem ist.
Die Option mit ftrobopy_server und TXT 4.0 habe ich erst vor kurzem angefangen auszuprobieren. Die Bildübertragung ist dabei nicht gerade die Stärke. Außerdem haben wir nur einen einzigen TXT4.0 der schon auf das nächste kleine Projekt wartet... Prinzipiell ist der ftrobopy Ansatz mit dem ftrobpy_server (was wäre Fischertechnik Robotik nur ohne Torsten...?!) natürlich auch für den TXT4.0 nutzbar.
Long story short. Wir können uns gern austauschen. Da dein Beitrag aus dem Herbst ist, bist Du aber ggf. schon fertig...
Viele Grüße
Techum
Ich spiele schon einige Zeit mit den AruCo Markern rum, weil es m.E. ein relativ billiger und "Jugend"gerechter Ansatz ist.hypnotoad hat geschrieben: ↑30 Okt 2024, 21:57Ich habe durch Zufall bemerkt, dass bestimmte Kalibriermarker (Aruco) von der FT-Kamera sehr gut gefunden werden können. Ich würde gerne daraus eine Bibliothek so wie ftrobopy bauen, so dass man auch ohne 3D-Fachwissen im Raum navigieren kann.
...
Was nun als nächstes käme wäre die Kalibrierung der Motorbewegungen zur Kamera, so dass man metrische Positionen anfahren kann. Und das automatische erstellen einer Marker-Karte. Ich würde mich freuen, wenn sich Mitstreiter finden würden.
...
Ich selber arbeite mit dem TXT. Die Basis ist OpenCV 4, ist das auf dem TXT4 auch verfügbar? Wenn ja, dann würde ich mich freuen, wenn jemand mit einem oder mehreren TXT4 zu dem Projekt dazustößt. Da wäre die Rechenzeit wohl auch besser.
Ggf. auch, eine Motivation, um etwas Praktisches mit linearer Algebra zu machen. Ich könnte mir auch Teileerkennung mit AruCo vorstellen - habe das gerade in einem anderen Thread kommentiert. Ursprünglich hat unser TXT Teddysucher AruCos gesucht und gefunden, das wurde aber für die Veröffentlichung als "zu platt" abgelehnt.

Ich arbeite wie Du mit TXT (genaugenommen mit 2 TXTs) und ftrobopy.
CV2 stellt in Python eigentlich alles zur Verfügung, was man braucht. Außterdem findet man reichlich Python Beispielcode. (Das sei nur noch einmal erwähnt, um vielleicht andere für das Thema zu erwärmen)
Code: Alles auswählen
markerCorners, markerIds, rejectedCandidates = cv2.aruco.detectMarkers(gray, dictionary, parameters=parameters)
Meine Erfahrungen decken sich mit Deinen. Schnelle, zuverlässige Erkennung des Markers und der Marker ID.
Sehr gute Erkennung der Position des Markers. Auch der Abstand ist OK.
Bei den Winkeln des Markers (nicht des Winkels, unter dem die Kamera den Marker sieht, sondern tatsächlich die Kippung des Markers gegen x,y,z) gibt es speziell aus größerer Entfernung z.B.150cm jedoch große Ungenauigkeiten. Die FT Kamera ist halt einfach sehr weitwinklig und löst nicht sonderlich hoch auf.
Die Positionsermittlung kann daher m.E. nur sehr ungenau mit einer einzelnen Kamera erfolgen (Abstand und Winkel zum AruCo + bekannte Kippstellung des AruCo im Raum). Freilich lässt sich viel durch Kombination mit Gyro und Zählern machen.
Ich habe (Uffi hat mir mit seinem tollen AGV - Autonomous Guided Vehicle - etwas den Drive genommen) angefangen, ein AGV mit zwei Kameras und zwei TXT zu bauen, so dass ich in der Regel zwei AruCo Marker habe, um die Position zu bestimmen.
Allerdings hatte ich nicht vor, den Code zu sharen, so sieht er dann auch aus... Ggf. ist trotzdem was Brauchbares dabei.
In der Tat könnte man eine Markerkarte erstellen. Ich hatte es eher andersherum vor. Ich will zunächst nur mit bekannten Markerpositionen die Position bestimmen und ggf. simple Aufgaben erledigen. Also Positionen anfahren und ggf. etwas aufnehmen und absetzen.
Ich mache alles im Online Modus - Logik auf dem Rechner - mit ftrobopy. Die Jungs und ich haben schon einiges mit Objekterkennung mit der FT Kamera gemacht. Es kommt einfach sehr auf die Beleuchtung an. Speziell bei mobilen Robotern in der Wohnung heißt dass aber, dass man eigentlich nie gleiche Voraussetzungen hat (also bei uns ist das so

Die Option mit ftrobopy_server und TXT 4.0 habe ich erst vor kurzem angefangen auszuprobieren. Die Bildübertragung ist dabei nicht gerade die Stärke. Außerdem haben wir nur einen einzigen TXT4.0 der schon auf das nächste kleine Projekt wartet... Prinzipiell ist der ftrobopy Ansatz mit dem ftrobpy_server (was wäre Fischertechnik Robotik nur ohne Torsten...?!) natürlich auch für den TXT4.0 nutzbar.
Long story short. Wir können uns gern austauschen. Da dein Beitrag aus dem Herbst ist, bist Du aber ggf. schon fertig...
Viele Grüße
Techum