Systemdesign für pythongetriebenes autonomes Fahrzeug (Boot)

Ich habe vor kurzem (mit ein paar Freunden) ein Projekt gestartet, bei dem ich ein autonomes Boot bauen werde. Von einem hohen Niveau aus wird es mit einem relativ einfachen motorgetriebenen Propeller und einigen an Bord befindlichen Sensoren und dergleichen solarbetrieben sein. Es wird GPS-geführt, indem die Navigationskoordinaten auf das Boot hochgeladen werden und es dann "hinfährt" (die Wegfindung lasse ich außen vor).

Mein Hintergrund ist Informatik und ich "erstehe" mich mehr oder weniger nur in den Hardwareaspekt der Dinge. Meine Hauptfrage betrifft das Design / Layout des Steuersystems für das Boot selbst.

Auf den ersten Blick möchte ich einen Bordcomputer (vielleicht Raspberry Pi) haben, der mit mehreren Mikrocontrollern (vielleicht Arduinos) an Bord kommuniziert. Die Mikrocontroller würden Sensordaten an den Hauptcomputer zurückmelden, der Entscheidungen treffen und Anweisungen an die Controller erteilen würde, um physische Operationen durchzuführen (z. B. Motor anhalten, Kamera drehen, Selbstzerstörung aktivieren).

Ist dieses allgemeine Paradigma vernünftig? oder ist es in irgendeiner Weise grundlegend fehlerhaft, an die ich noch nicht gedacht habe?

Wenn jemand mehr Informationen möchte, lasst es mich wissen, ich wollte nicht zu viel schimpfen. Vielen Dank im Voraus!

Ich glaube nicht, dass Sie Motoren, Sensoren, GPS-Module, Raspberry Pi- und Arduino-Boards nur mit Solarmodulen versorgen können, es sei denn, diese Module sind sehr groß und supereffizient (= extrem teuer). Sie benötigen auf jeden Fall wiederaufladbare Batterien. Sie könnten die Sonnenkollektoren verwenden, um die Batterien aufzuladen.
Hey, ja, ich bin nicht in alle Details gegangen. Es wird eine Bank mit wiederaufladbaren Batterien geben. Der Rumpf ist ziemlich groß mit einer flachen Oberseite (ca. 1,5 x 0,6 m), sodass genügend Platz vorhanden ist, um genügend Solarzellen unterzubringen, um bei Tageslicht 50 (?) Watt Leistung zu erzeugen (basierend auf einigen vorläufigen Überprüfungen).
Aus Gründen des Stromverbrauchs sollten Sie versuchen, nur eine Mikrocontroller-basierte Platine zu verwenden, die mit allen Sensoren und Aktoren verbunden ist. "Selbstzerstörung aktivieren" Ist das ein James-Bond-Boot? :-)
Ich werde auf jeden Fall versuchen, die Anzahl der verwendeten Mikrocontroller zu minimieren, obwohl solche Entscheidungen warten müssen, bis die Gerätesuite ausgewählt ist. Was die Selbstzerstörung angeht... könnte ich dir sagen, aber dann...
Es wäre hilfreich, etwas mehr darüber zu wissen, welche Funktionen das Boot haben wird, dh wie komplex das Ganze ist. Dies hilft bei der Entscheidung, ob Sie zB ein einzelnes kleines 8-Bit-Mikro oder einen R-Pi und unterstützende Mikros benötigen.
@OliGlaser Wir sind noch dabei, die Spezifikation fertigzustellen. Eine grobe Übersicht über die wahrscheinliche Funktionalität wäre: Solares Aufladen der Batteriebank (Stromversorgung), Wettersensoren (Station) an Bord, Antrieb mit Propellerantrieb, GPS an Bord für die automatische Navigation und Zeitsynchronisierung, Kamera an Bord für die "Berichterstattung". " Bilder sowie einige CV-Software (Computer Vision) ausführen. Die aktuelle Absicht ist, das Betriebsprogramm in Python auf dem Bordcomputer zu haben (ggf. mit Schnittstellen zu Controllern). Erwägen Sie ernsthaft 2 Propeller für die Differentialsteuerung im Gegensatz zu einem Ruder (Angst vor leichtem Brechen).

Antworten (1)

Sie entwerfen einen mobilen Roboter. Vergessen Sie Asimov, die wahren drei Gesetze der mobilen Robotik sind:

  1. Darin geht ständig alles schief.
  2. Da ist eine Batterie im Weg.
  3. Es brach zusammen.

Was auch immer Sie sonst tun, behalten Sie diese grundlegenden Wahrheiten im Hinterkopf.

  1. Es wird immer alles schief gehen. Dies gilt insbesondere für einen Roboter, der sich auf See oder sogar mitten in einem See befindet. Jede technische Komponente im Roboter kann schief gehen, und je mehr Sie haben, desto mehr Dinge werden schief gehen. Selbst wenn Sie sie alle zu 99 % zuverlässig machen und 70 Dinge darin haben, dann haben Sie eine 50 %ige Chance, dass eines davon ausfällt. "Aha", sagst du, dann füge ich ein Sicherheitssystem hinzu, das erkennt, wenn etwas schief geht, und beispielsweise den Motor stoppt. Nun, jetzt haben Sie eine andere Sache, die schief gehen kann, und Sie haben ihr die Kraft gegeben, den Motor zu stoppen. Die Lektion zum Mitnehmen besteht darin, die Anzahl der Komponenten im Roboter so weit wie möglich zu reduzieren. Sie haben "mehrere integrierte Mikrocontroller" erwähnt. Wie groß ist dieses Boot ? Vielleicht kommst du mit nur einem davon?

  2. Da ist eine Batterie im Weg. Das sind wirklich zwei Wahrheiten. Erstens kann es sein, dass Sie auf Platzmangel festsitzen. Vielleicht nicht, Boote können ziemlich groß sein und haben nicht viele Aktuatoren, also ist dies vielleicht einer der wenigen Roboter, die dieses Problem nicht haben. Zweitens haben mobile Roboter einfach nie genug Batteriekapazität. Ich bin sicher, Sie haben darüber nachgedacht, aber ich erwähne es der Vollständigkeit halber. Messen Sie sorgfältig, wie viel Strom die verschiedenen Teile des Roboters verbrauchen, und berechnen Sie, wie viel Laufzeit Sie wahrscheinlich aus ihnen herausholen werden.

  3. Es brach zusammen. Ihr Hintergrund ist Informatik, da wird etwas schiefgehen. Wenn Sie nicht sehr gute Steckverbinder auswählen und sie nicht selbst zusammenbauen, werden sie versagen. Wahrscheinlich werden Lötstellen versagen, wenn Sie sie alle selbst machen. Das Boot wird lecken und die Elektronik durchbrennen. Wenn Sie das Boot zusammenbauen, müssen Sie sich vorstellen, dass Sie 20 Jahre bittere Erfahrung mit Robotern haben, die ausfallen, wenn sie fast unzugänglich sind (ich habe). Stell dir bei jedem Stück, das du machst, vor, wie es schief gehen wird. Was soll verhindern, dass sich die Stecker einfach von selbst lösen? Was verhindert, dass Wasser in die Elektronik eindringt? Du hast sie versiegelt? Was verhindert jetzt, dass sie überhitzen? Haben Sie ESD-Vorkehrungen getroffen? Wenn nicht, dann haben Sie wahrscheinlich einen Pin auf einem Chip halb durchgebrannt, der erst dann Fehler anzeigt, wenn das Boot 100 Meilen vom Land entfernt ist.

+1 - also sollte es dann ein Kinderspiel sein? ;-)
„Etwas wird scheitern“ Du klingst genau wie Murphy. Ich mag das.
@m.Alin - Ich sage nur die Wahrheit.
Was für eine ernüchternde Grundsatzerklärung ... nun zum Design! :)...
@csjohn - Viel Glück damit. Übrigens, wirst du den Fortschritt des Roboters bloggen? Ich wollte schon immer ein Roboterboot bauen (vielleicht sogar eines, das die Welt umrunden kann), also würde ich dieses gerne sehen.
@Rocketmagnet - Ja, sobald wir den Stein ins Rollen gebracht haben, werde ich versuchen, eine Art Projektblog in Gang zu bringen :).