Hilfe bei selbstgebautem Roboter zur Erledigung einer gestellten Aufgabe

  • Hallo,


    ich bin neu im Forum und hoffe das mein Anliegen hier an der richtigen Stelle ist.


    Ich stehe derzeit vor folgender Aufgabenstellung für ein Projekt:


    • Es gibt ein „Spielfeld“ der Größe 6 x 2,5 m.
    • Im Spielfeld befinden sich gleichzeitig 3 von 5 möglichen Stofftieren . Je ein Tier steht im 1. / 2. / 3. virtuellen Drittel des Spielfelds. Alle Tiere stehen außerhalb des virtuellen Mittel Korridors. Das vorderste Tier hat mindestens 100 cm Abstand von der Startlinie. Das Tier im mittleren Drittel steht in einer anderen virtuellen „Spielhälfte“ als die beiden anderen Tiere.
    • Der Roboter muss ein vorgegebenes Tier erkennen und einzeln aus dem Spielfeld (d. h. 5 35 cm Abstand zur Außenlinie) bringen .
    • Die Umrisse des Spielfeldes sind durch schwarze Linien markiert. Der Boden besteht aus Teppich.
    • Die Tiere „schauen“ in Richtung des Startfeldes, etwa um 45 gegenüber der Längsachse gedreht.
    • Wichtig ist, dass der Roboter die Tiere autonom einsammelt und ablegt.
    • Welches Tier wo liegt ist vorher nicht bekannt.
    • Pro Durchlauf stehen 60 Sekunden zur Verfügung.

    Folgende Konstruktion ist für den Roboter geplant:

    • Trapezkonstruktion mit zwei Motoren Heckantrieb.
    • 1 x passive Kugelrolle in der Front, welche über jeweiliges anteuern der Heckmotoren gelenkt wird.
    • Das Stofftier soll mit einer Schildkonstruktion aus dem Spielfeld geschoben werden, welche sich in der Front der Konstruktion befindet.

    Geplanter Ablauf:

    1. Die Eingabe, welche der 5 definierten Tiere gesucht wird, soll über ein kompatibles Numpad für Rasperry erfolgen.
    2. Der Roboter soll dann geradeaus fahren und mittels einem neuronalen Netz das Stofftier erkennen und solange gerade-ausfahren bis einer der Sensoren (Links-Rechts) an der Seite des Roboters das Tier erfasst hat. (Ob der Sensoranschlag wirklich das gesuchte Tier ist, wird über die Objekterkennung in der Kamera dann über den Programmcode verifiziert)
    3. Dann soll der Roboter eine 90° Drehung machen und danach das Tier aus dem Spielfeld schieben.
    4. Die Außenlinie wird mit einem Liniensensor erkannt und der Roboter fährt zur Aufgabenerledigung dann noch kurz weiter damit das Tier im vorgegebene Bereich abgelegt wird.
    5. Danach entfernt sich der Roboter rückwärts und die Aufgabe ist beendet.


    Meine Probleme sind nun folgende:

    • Ein Ultraschallsensor kann die Tier im Abstand zur Außenlinie ca. 1m nicht erfassen, da die Reflektionen zu stark sind. Gibt es da alternative Sensorik, welche mir sagt, ob sich auf dem Streifen Links oder Rechts ca. 1 - 1,5m Entfernung etwas befindet? Ich hab bisher was von Lasorsensoren gelesen, welche aber scheinbar auch nicht wirklich funktionieren auf längere Strecken, zumal der Roboter ja vorbeifährt und dann schnell erkennen und halten muss, damit er Parallel steht.
    • Wie kann ich sicherstellen, das der Roboter die Mitte nicht verlässt und abdriftet? Ich habe etwas von einem Gyroscop gelesen, finde aber leider nicht mehr dazu und habe keine Ahnung davon.
    • Wie kann ich bei dieser Konstruktion eine genaue 90° Drehung verifizieren? Soll wohl auch mit dem Gyroscop funktioneren, hat da jemand Erfahrung?


    Das Einlernen der Objekterkennung über ein neuronales Netz ist nicht mein Problem, jedoch habe ich keine Erfahrungen mit einem Raspberry Pi sowie der anzusteuernden und einzusetzenden Sensorik. Gibt es Tipps oder Hinweise, welche Sensoren mir bei meinem Problem helfen können, damit ich die Aufgabe auf dem oben beschriebenen Weg erledigen kann?


    Die Konstruktion und Antrieb sind bereits Fix und können nicht mehr groß verändert werden, mein Part ist Sensorik und Software zur Aufgabenerfüllung.


    Für Tipps und Hilfe bin ich sehr dankbar!


    Vielen herzlichen Dank!


    Exel:danke_ATDE:

  • exel210 , Willkommen im Forum. Aus meiner Sicht als rpi Anfänger ein ambitioniertes Projekt. Evtl. gliederst du die Problemstellungen in einzelne Abschnitte auf. Macht es einfacher sinnvolle Antworten zu bekommen. So wie dein Projekt zur Zeit beschrieben ist :conf:. Good Luck ux

  • unimatrix-0 Herzlichen Dank!


    Ja, ich halte es auch für ein ambitioniertes Projekt, jedoch muss ich die Aufgabe wohl oder übel so erledigen.


    Ich suche derzeit nach Expertisen und Erfahrungen besonders zu Sensoren und einlernen von Fahrverhalten. Der Roboter wird von einer separaten Gruppe gebaut, weshalb er Einfluss darauf nicht sehr groß ist. Nur die oben genannten Rahmenbedingungen sind meine Informationen.


    Besonders wichtig für mich in erster Linie:


    1. Ich Suche zwei Sensoren, mit welchem ich ein Stofftier an der Seite des Roboters "erkennen" kann. Dabei muss ich nur wissen ob sich links oder rechts des Roboters etwas befindet in einer Range von ca. 20 cm - 150 cm. Wichtig hierbei ist auch das ich an den Objekten vorbeifahre und bei erkennen direkt stehen bleiben muss. Die beiden Sensoren müssen also sehr schnell und zuverlässig sein. Die Lasersensoren die ich bisher gefunden habe, liefern laut Kundenrezensionen nicht das gewünschte Ergebnis.
      • Ultraschallsensoren haben sich hier als nicht brauchbar erwiesen.
      • Infrarotsensoren für Objekterkennung liefern das Ergebnis nicht für die gewünschte Entfernung.


    2. Ein Zweiter wichtiger Punkt wäre wie beschrieben eine Sensorik, mit welcher ich den Roboter möglichst präzise gerade-ausfahren lassen kann sowie zuverlässige Drehungen (90°) durchführen kann.


    Hat jemand Erfahrungen oder Empfehlungen für mich? Ich muss Montag eine Bestellliste für Bauteile abgeben und bin derzeit noch sehr ratlos.


    Herzlichen Dank!


    Exel

  • Wie gesagt, bin rpi Anfänger. Falls es die abstrakten Rahmenbedienungen des Projekt zulassen, wäre es evtl. ein Ansatz die Stofftiere mit einem Magneten zu taggen. Dann eine Art 360° Hall-Array mit 4, 8 ,16 usw. Hall-Sensoren aufbauen und anhand der unterschiedlichen Signalstärken die Position von dem / den Stofftieren erkennen. Für das Geradeaus-Fahren könnte eine Art Grid aus Magneten / Elektromagneten oder besser stromdurchflossenen Leitern dienen. Da die abstrakten Rahmenbedingungen noch unbekannt sind, ist es schwierig eine passenden Vorschlag / Denkansatz zu erarbeiten. Hoffe, du verstehst was gemeint ist. Gruß ux

  • unimatrix-0 Danke für die Antwort, über Magneten und verbaute Sensoren habe ich bereits schon nachgedacht, leider lässt das die Aufgabenstellung nicht zu, die Tiere bleiben ohne Sensorik oder irgendwelche Erkennungsmerkmale.


    Die Erkennung erfolgt entweder über Farberkennung oder ein neuronales Netz. Ich arbeite derzeit an dem Netz.


    Leider ist der Ansatz nicht möglich. Die Tiere bleiben ohne "Technik"


    Gruß


    Exel

    • Official Post

    Nur mal laut gedacht...

    Wie kann ich sicherstellen, das der Roboter die Mitte nicht verlässt und abdriftet?

    Vielleicht mit einer Art IR- oder Laser-Leitstrahl, ähnlich einer Lichtschranke oder vom Prinzip ILS beim Flugzeug, falls die Sicht zum anderen Ende frei ist. Die Frage "Wie findet ein Staubsaugroboter seine Ladestation in einem Zimmer?" war der Ausgangspunt für diesen Gedanken.


    Eine weitere Möglichkeit könnte m.M.n. eine Linie am Boden bieten, die eine andere Farbe als die Begrenzungslinien hat. Wie das konkret aussehen könnte, kann ich aber momentan nicht sagen. :conf:

  • Na, schon mal gut zu wissen wo die Reise hingeht. Farberkennung könnte evtl. heißen die Tiere mit UV-reflektierende Farbe zu taggen. Irgendwie braucht das Projekt eine Trennung zwischen Nutz- und -Störsignalen. Dafür gibt es unterschiedliche Möglichkeiten. Evtl. der erste Schritt ist die Trennung des zu verarbeitenden Signale-Range sonst wird es wirklich kniffelig. Würde der Ansatz mit UV-reflekierender Farbe den Rahmenbedingungen entsprechen?

  • hyle eine Linie am Boden ist nicht möglich, das Spielfeld hat keinerlei Markierung abgesehen vom Rand.


    unimatrix-0 die Erkennung mache ich wie gesagt über ein neuronales Netz mittels Objekterkennung. Hierfür lerne ich eine Art künstliche Intelligenz anhand von Bildern ein, somit werden die Tiere in der Kamera erkannt. Dadurch weiß der Roboter welches Tier als nächstes kommt bzw. er weiß dann das der nächste Sensoranschlag links oder rechts das gesuchte Tier ist. Nur fehlt mir ein Sensor der dann das Tier bzw. ein Objekt auf höhe der Roboters erkennt und dann eine zuverlässige 90° Drehung. Macht aber alles nur Sinn sofern der Roboter zuvor z. B. nach 5 Meter immer noch auf der "Startlinie" fährt und nicht zu stark von der "imaginären" Mitte andriftet.


    Danke bis hierhin für eure Ideen.

  • Nächster Fortschritt, jetzt wird so langsam klar wie dein Projekt aussehen soll. Gehe mal davon aus, dass eine aktive KI viel Rechenleistung braucht, und / oder sehr gute Algorithmen die sich dann passende zu der aarch64 / Risc CPU eines ggf. Pi4 / 4 GB kompilieren lassen. Aus meiner Sicht wäre ein Pi4 eine gute Wahl für dein Projekt. Was hast du dir denn letztendlich als soc / mainbord vorgestellt. Sag es immer wieder ungerne, manchmal ist es einfacher auf eine andere, weiter verbreitete Prozessor Architektur zurück zugreifen.

    Zumal es dort eher Projektansätze / Bausteine gibt die sich in ein KI-Projekt einbauen lassen. Allerdings ist die Sensor(en) Anbindung nicht so ausgereift wie bei den rpi's. Deine Wahl, deine Entscheidung.

  • unimatrix-0 Sorry hab ich noch nicht geschrieben :/ Die Vorgabe ist ein RPI 3. Ich lerne das KI-Model an meinem Rechner entsprechend mit ordentlich GPU ein. Konvertier das ganze dann für den RPI, ist das Modell erstmal eingelernt greift die Kamera später nur noch über ein File (glaube ich) darauf zu und benötigt recht wenig Rechenleistung. So ist zumindest die Erfahrung von ähnlichen Projekten meiner Vorgänger.


    Bin also was das angeht auch wieder eingeschränkt.


    Vorgegeben ist:

    • RPI Model 3
    • Weitwinkelkamera für den RPI (Über die muss die Erkennung erfolgen -> Vorgabe)
    • 2x Liniensensoren
  • unimatrix-0 Sorry hab ich noch nicht geschrieben :/ Die Vorgabe ist ein RPI 3. Ich lerne das KI-Model an meinem Rechner entsprechend mit ordentlich GPU ein. Konvertier das ganze dann für den RPI, ist das Modell erstmal eingelernt greift die Kamera später nur noch über ein File (glaube ich) darauf zu und benötigt recht wenig Rechenleistung. So ist zumindest die Erfahrung von ähnlichen Projekten meiner Vorgänger.


    Bin also was das angeht auch wieder eingeschränkt.


    Vorgegeben ist:

    • RPI Model 3
    • Weitwinkelkamera für den RPI (Über die muss die Erkennung erfolgen -> Vorgabe)
    • 2x Liniensensoren

    Ok, jetzt sprechen wir über => Gegeben, gesucht + gefunden ;). Beim Modell würde, wenn zugelassen ein pri 3b+ eine Empfehlung wert sein.

    Aus meiner Sicht eine schnelle und stabile rpi Variante, die auch noch mit Rapian Stretch läuft. Raspian Stretch ist sehr ausgereift und läuft mega stabil. Mit den Backports und den aktiven deb-src Sektionen in der sources.list wärst du gut aufgestellt. Ein älterer rpi 3 ist auch ok. Kommt halt drauf an was der Prof / Doc / Entscheider vorgeben.

  • Ok, jetzt sprechen wir über => Gegeben, gesucht + gefunden ;). Beim Modell würde, wenn zugelassen ein pri 3b+ eine Empfehlung wert sein.

    Aus meiner Sicht eine schnelle und stabile rpi Variante, die auch noch mit Rapian Stretch läuft. Raspian Stretch ist sehr ausgereift und läuft mega stabil. Mit den Backports und den aktiven deb-src Sektionen in der sources.list wärst du gut aufgestellt. Ein älterer rpi 3 ist auch ok. Kommt halt drauf an was der Prof / Doc / Entscheider vorgeben.

    Vorgegeben ist der RPI3, habe ich schon hier liegen.


    Habe immer noch keine Sensoren gefunden, welche mir ein Objekt (Stofftier) an der Seite des Roboters erkennen kann. Auch ein Sensor für gerade ausfahren und Drehungen ist noch nicht gefunden :/

  • Evtl. eine sehr einfache Konstruktion. An den Seiten eine rein mechanische Lösung mit x cm langen Auslegern. 1.) Ausleger betätigt Taster, einfach aber nur 0 oder 1 zur Auswertung. 2.) Ausleger der einen Poti betätigt. Auswertung dann analog.

    Würde eher bewährte Komponenten aus der Steuerungstechnik (SPS) nehmen. Da gibt es eine große Auswahl an robusten Ultraschall-Sensorik.

    Good Luck ux