Bestehenden Autopilot auf Raspberry Pi portieren - Meinungen bitte

Status
Nicht offen für weitere Antworten.
#1
Moin,

Ich teste grade für die Uni wie sehr sich ein Raspberry als Autopilot eignet. Für die uni soll ich einen Quad bauen, privat soll es aber auch ein Flugzeug steuern.

Der Bums ist in jedem Falle da, aus der MPU und MAG bekomme ich problemlos höchste sampleraten und habe noch mehr als genug CPU-Resourcen über. (Nur daten lesen bei 1000hz + Fullhd videoaufnahme brauchen vermutlich <20% cpu wenn ich es noch etwas Tune)

Ich soll für die Steuerung ein bestehendes System nehmen/portieren. Wiicopter scheint die aktuell zuverlässigste basis zu sein, ist aber leider nicht für Flugzeuge geeignet. Gibt es außer pixhawk noch andere opensource systeme die Flugzeg und Copter tauglich sind und vermutlich noch länger gepflegt werden?

Könnte es ein problem werden, dass der RPi nur 1-2 I2C schnittstellen hat? Wenn ja welche?

Ich bin noch neu und für jede Anregung zu der idee dankbar, die RPi-hardware dagegen kenne ich schon sehr gut.

Grüße, Gibbi
 

Chriss_:)

Erfahrener Benutzer
#2

Rangarid

Erfahrener Benutzer
#3
Finde es irgendwie sinnlos, für einen Autopiloten, der höchst zeitkritisch ist ein solches System zu nutzen. Wenn der AP dann mal abstürzt oder durch Spannungsunterversorgung neustartet dauert es ewig, bis das Programm wieder gestartet wird.

Da würde ich doch eher sowas empfehlen wie das STM32F3-Discovery, da ist auch gleich ein 9DOF IMU mit drauf. Es gibt auch andere ARM-basierte Controller wie z.B. Naze32 die man nutzen könnte.
 
#4
Aus Interesse, was für rebootzeiten hat den beispielsweise ein Pixhawk/Apm/Wiicopter? Für einen copter ist das eine lange zeit aber ein RPi kann durchaus in ca 1. sekunde booten. Wenn Broadcom irgendwann mal mit der ganzen doku rausrück sicher genau so schnell wie die meisten microcontroller. (Aktuell kann man nicht verhindern das er zuerst die GPU initialisiert). Es geht bei dem Projekt eben um das testem einer CPU mit deutlich mehr bums die üblichen 60-160mhz systeme.
 

Rangarid

Erfahrener Benutzer
#5
Beim Pi muss Linux booten, du kannst mir nicht erzählen, dass innerhalb 1s alles gestartet ist, bis der AP wieder loslegen kann.

Wie schnell die andern sind kann ich dir nicht sagen, aber die sind direkt da, wo es beim Pi erst anfängt wenn er gestartet ist. Also mindestens die Bootzeit schneller.
 
#6
Gestern hatte noch irgentwo hier jemand einen Link zur Linux/Debian Portierung des APM Codes gepostet, find es nur leider nicht mehr.
I2C reicht dir eine Schnittstelle, aber PWM wirst du mehrere brauchen für die Motoren an zu steuern. Das könnte ein Problem werden auf dem Rasp.


Und Sam, selbst Multiwii und fast alle anderen Steuerungen brauchen beim Reboot ihre Zeit, mal abgesehen davon das sie nach dem Reboot erstmal Gyros und Co initialisieren und eh nicht von selbst wieder armen - in der Zeit is das ding eh unter gefallen.
 
#9
Beim Pi muss Linux booten, du kannst mir nicht erzählen, dass innerhalb 1s alles gestartet ist, bis der AP wieder loslegen kann.

Wie schnell die andern sind kann ich dir nicht sagen, aber die sind direkt da, wo es beim Pi erst anfängt wenn er gestartet ist. Also mindestens die Bootzeit schneller.
Oh doch, man kann den PI bare metal programmieren - also ganz ohne linux. Ich hab damit schon gespielt und wenn das OS nur ein paar byte groß ist geht das alles verdammt schnell. Wenn ich Nuttx (das os das Pixhawk nutzt) für den Raspberry compiliert bekomme ist das sicher in einer sekunde da. ()

Bei linux wären so 3-4 sekunden realistisch.
 
#11
In dem oben genannten video geht einer der Entwickler auf genau das Thema ein, ihm ist es wohl gelungen mal in einer nacht aktion Ardupilot auf dem RPi aufgesetzt zu haben. Nur eben ohne RC-Input und nur mit schlechtem PWM-Output. Ich hab sensoren und PWM entzwischen am laufen, alles über i2c, nur der RC-input funzt noch nicht. Ich will direkt einen Spektrum Satellit anschließen,.. dass geht definitiv - andere haben das signal schon entschlüsselt, aber ich steige nocht durch keine der implementierungen restlos durch. Eine Bare Metal lösung steht aber erstmal nicht an - der Prof sieht darin nur spielerei da man so einfach nur auf zu viel schöne sachen (ein komplettes OS mit IP/USB/etc) verzichtet .. und das nur gegen etwas mehr performance und geringere bootzeit. Ich soll es halt so bauen das der RPi nicht abstürzt ;-)

Wenn der rest erstmal geht wäre es denkbar vor dem Linuxboot zu prüfen ob das system gecrasht ist um zeitnah (0.5s nach reboot) notmaßnahmen wie fallschirm oder einen gleitflug einzuleiten.. aber das sind noch alles ideen ganz unten auf der liste ^^
 
#12
Ich wurde das länger booten bei der Entwicklung verlachlässigen und das System in die luft bringen aufbauen
Zu. Schnelleren booten gibt es Wege. ..
Ich hatte mal für ein Linux Projekt so ein VDR disto.
Und war für die install zuständig sowue LiveCd's..oder sticks.
vom starten aus dem nix herraus ist einiges moglich.
Wie einer ram image oder irgenwie sowas.
Dann wurde das system nicht wirklich starten sondern nur weiterlaufen...
ich hatte mal das laufende system in den ram kopiert und im betieb dort hin gewechselt.
und dann hatte man das system updaten konnen oder irgendwas...
Also irgendwas in der art.
Nun mal als frage hat eigentlich schon einer ein ondroid w board
(Real clock) an baros mag und regler angeschlossen?
Ich finde das thema sehr interessant..
 
#13
Ich hab das Raspberry pi projekt entzwischen abgesägt.. man kann zwar problemlos ardupilot compilieren und alle nötigen sensoren ansteuern aber ich werde wohl trotzdem nie dem raspberry noch viele andere aufgaben nebenbei anvertrauen - womit sich die sinnfrage stellt. Mein idealbild sind entzwischen möglichst minimale Ansätze.. Kleiner traum wäre grade ein Afromini32 mit integriertem Openlrs zum steuern und für telemetrie.. müsste ja eigendlich mit weniger als 20 gram/euro realisierbar sein :)
 
Status
Nicht offen für weitere Antworten.
FPV1

Banggood

Oben Unten