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:
- Die Eingabe, welche der 5 definierten Tiere gesucht wird, soll über ein kompatibles Numpad für Rasperry erfolgen.
- 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)
- Dann soll der Roboter eine 90° Drehung machen und danach das Tier aus dem Spielfeld schieben.
- 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.
- 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