BWP-WS19-02/Mögliche Erweiterungen

Aus Verteilte Systeme - Wiki
Wechseln zu: Navigation, Suche

Antrieb und Mechanik

Chassis

Ausfahrbare Solarsegel

Solarsegel

Implementierungen

Schlupf minimieren

Eine Möglichkeit, die Räder am Durchdrehen zu hindern, wäre ein Mechanismus zum Anfahren und Abbremsen. Außerdem könnten Geschwindigkeitsänderungen während des Fahrens umgesetzt werden und beispielsweise Strecken, die schon exploriert wurden, schneller zurückgelegt werden als unbekannte Pfade.

exakte Ziele erreichen

Eine weitere Erweiterung wäre das häufigere Abgleichen und Filtern der Daten der Raddrehsensoren. Momentan werden diese Informationen nur bei graden Strecken am Ende eines Abschnitts gefiltern. Aber primär bei Drehungen wäre es wichtig, die reale Positionierung festzustellen und zu verbessern.

Kurvenfahrten

Aktuell fährt der Roboter grade Strecken und kann sich um seine eigene Achse drehen. Eine Möglichkeit auch die Wegfindung zu verbessern oder die Navigation zum Startpunkt zu verkürzen wäre die Umsetzung von Kurvenfahrten. So könnten Umwege eingespart und eine flüssigere Fortbewegung gewährleistet werden.

Elektrotechnische Erweiterungen

Energieversorgung

SuperCaps

SuperCaps sind Elektrolyt Kondensatoren mit besonders hohen Kapazitäten im Bereich von 1 Farad. SuperCaps lassen sich im Vergleich zu Batterien schneller laden, wodurch theoretisch (bei ausreichend hoher Energieversorgung durch Solarpanele) ein konstanter Betrieb des Roboters möglich wäre.


Die derzeit getesteten Motoren benötigen rund 35 mA. Solange das featherboard schläft könnten wir also mit ca. 70mA fahren. Ein geladener SuperCap mit 1 Farad könnte also 47 Sekunden eine Spannung von 3,3V bei einem Strom von 70mA bereitstellen.

t = 1F * V / A

t = 1F * 3,3V / 0,07 A

t = 47s

Eine variable Coulomb Counter Auflösung

Eine Erweiterungsmöglichkeit für die Coulomb Counter wäre eine variable Auflösung zur Messung des Stroms. Man könnte den Shunt-Widerstand on-the-fly ändern, je nachdem wie viel Strom momentan durch das System fließt. Bei großen Strömen (>100mA) könnte man kleine Widerstandswerte (< 0,5 Ohm) benutzen, bei sehr niedrigen Strömen (<20mA) würde man auf höhere Widerstände (> 2 Ohm) wechseln.

Des Weiteren könnte man eine Sicherung einbauen, die das System bei zu großen Strömen abschaltet, damit einzelne Bauteile keinen Schaden nehmen.

Softwareseitige Erweiterungen

Sensoren & Kartierung

BNO055

Damit der BNO055-Sensor möglichst genaue Werte liefert, muss er vor der Nutzung kalibriert werden. Zum jetzigen Zeitpunkt muss die Kalibrierung nach jedem Systemstart erneut durchgeführt werden. Es ist möglich die Kalibrierungswerte zu speichern und bei Systemstart automatisch zu laden. Dies setzt allerdings voraus, dass der Roboter exakt unter den gleichen Bedingungen bedient wird. Da vor allem der Magnetometer empfindlich auf elektromagnetische Felder in der Umgebung reagiert, wurde auf eine Speicherung der Kalibrierung vorerst verzichtet, um sicherzustellen, dass der Sensor immer möglichst genau benutzt werden kann, auch wenn sich das Umfeld verändert.

Kalman Filter

Der Kalman Filter kann sehr komplex und rechenintensiv werden. Deshalb ist die Funktionalität der aktuellen Implementierung sehr simpel gehalten. Momentan bekommt der Filter die zurückgelegte Strecke und die aktuelle Geschwindigkeit aus dem Antriebsmodul zur Verfügung gestellt und glättet diese beiden Werte auf Grund der physikalischen Formel für Kinematik. Andere Quellen für diese beiden Werte, wie z.B. der BNO055-Sensor(Geschwindigkeit), ein Time-of-Light-Sensor(Abstand zu einem Objekt und damit Strecke) oder der Maus-Sensor, könnten ebenfalls in den Filter implementiert werden. Dazu müssten die Matrizen für die Berechnung angepasst werden. Zu beachten ist, dass damit die Ergebnisse einer Filterung genauer werden können, jedoch auch mehr Speicherplatz und Energie benötigen könnte.

Kontrollstation

SQLite

Eine mögliche Erweiterung der Kontrollstation, die Nachrichten des ITSE über BLE empfängt und verarbeitet, ist die Nutzung von SQLite. SQLite bietet die Möglichkeit eine Datenbank lokal in einer Datei abzulegen. Somit könnte man Nachrichten des ITSE kategorisieren und übersichtlicher aufbereiten. Es existiert eine Umsetzung für Python, die betrachtet wurde, aber es nicht in das Projekt geschafft hat.