Und wieder ein paar Anfängerfragen

mha

Neuer Benutzer
#1
Hallo Gemeinde,

ich habe vor ein paar Tagen meinen ersten Quadcopter aufgebaut:
- RCtimer X650 Kit mit Motoren und 20A ESCs, APM2.5 und uBlox GPS
- ESCs habe ich mit SimonK FW geflasht
- APM laeuft mit 2.9.1.b. Radio.pde habe ich fuer HoTT PPM Channel Mapping angepasst. Alles mit Arduino 1.0.4 kompiliert.
- Sender, ACC, ESCs usw. sind kalibriert.
- Stabilize, Alt Hold, Loiter und einfache Waypoints abfliegen funktionieren gut und stabil

Da soweit alles mit den Voreinstellungen laeuft, lese ich mich gerade in die PIDs ein. Auch der Mission Planer verlangt noch Hausaufgaben.

Ich habe viele Fragen, moechte aber mit einer bezueglich Baroemeter starten. Mir ist aufgefallen, dass in der Parameterliste AHRS_BARO_USE auf 0 steht. Wenn ich es richtig verstehe, wird Baro damit nicht fuer die Hoehenstabilisierung (z.B. Alt Hold, Loiter) verwendet. Stattdessen wird nur GPS (und die Beschleunigungssensoren?) verwendet.

Sollte ich versuchen AHRS_BARO_USE auf 1 zu setzen? Wie gehe ich dann in der Optimierung vor?

Und noch eine Frage zum Barometer. Mit CLI/TEST/ALTITUDE ist mir aufgefallen, dass die Hoehe im stationaeren Zustand (Copter am Tisch mit USB verbunden) stetig abnimmt. Gleichzeitig nimmt die Temperatur zu. Gibt es in der Software (oder besser noch im Sensor) keine Temperaturkompensation?

Danke fuer Eure Hilfe

Michael
 

mha

Neuer Benutzer
#2
Hallo Kollegen,

wahrscheinlich habe ich wieder so einen "bei uns musst Du Dich anders benehmen" Fehler gemacht. Soll ich einen ausgeben oder sind meine Fragen zu dumm gestellt :)?

Einen Teil kann ich selbst beantworten. In test.pde sind die Testroutinen (CLI/Test) zu finden. Der Baro Test (CLI/TEST/ALTITUDE) ist in test_baro ausgefuehrt.

test_baro(uint8_t argc, const Menu::arg *argv)
{
...

float pres = barometer.get_pressure();
int16_t temp = barometer.get_temperature();
int32_t raw_pres = barometer.get_raw_pressure();
int32_t raw_temp = barometer.get_raw_temp();
cliSerial->printf_P(PSTR("alt: %ldcm, pres: %fmbar, temp: %d/100degC,"
" raw pres: %ld, raw temp: %ld\n"),
(long)alt, pres, (int)temp, (long)raw_pres, (long)raw_temp);
...
}

Die Funktion barometer.get_pressure() ist in der BARO lib (AP_Baro) und berechnet temperaturkompensierte Werte. Die Temperaturkompensation nutzt die Chip internen Werkskalibrierwerte und die im data sheet angegebene Formel.

Es wird also temperaturkompensiert. Warum die Werte im stationaeren Zustand so weglaufen ist mir schleierhaft. Koennt Ihr mir einen Gefallen tun und diesen Test fuer mich nachvollziehen und posten, ob die Daten bei Euch stabil bleiben. Testprozedur:
- APM2.5 mit 2.1.9.b per USB anschliessen
- MP starten, nicht "connecten"
- Im MP auf Terminal gehen
- Dort test, altitude eingeben und die altitude und temperature Werte ein paar Minute laufen lassen und beobachten

Btw: Die Temperatur wird in x/100degC angegeben. Das ist m.M. nach falsch. Die Temperatur wird in 1/10 degC berechnet. Liesse sich leicht in test.pde aendern. Text "%d/100degC" in "%d/10degC" aendern.

Michael
 

rose1203

Erfahrener Benutzer
#3
Hallo Michael,

ich würde dir ja gerne helfen, habe test, altitude eingegeben und es kommt nur:

panic: AP_Baro::read unsuccesful for more than 500 ms in AP_Baro::calibrate [1]
 

mha

Neuer Benutzer
#6
Dann ist das sehr seltsam. Entweder ist Dein Baro per Software (hast Du selbst kompiliert?) abgeschalten oder er ist defekt?!
 

mha

Neuer Benutzer
#8
Hallo Robert,

ich habe eben 2.9.1.b mit 3.0rc aktuellster Stand verglichen. Den 500ms timeout in der Kalibrierung gibt es in 2.9.1.b nicht. Da ist eine Menge umgestellt worden, u.a. auf die HAL Struktur. Bekommst Du eine aehnliche Meldung (wahrscheinlich in der HUD Ansicht), wenn Du das APM drahtlos mit dem MP verbindest? Und wenn du armst?

Vielleicht lohnt es sich einen Incident Report einzustellen, wenn Du sicher bist, dass Dein Baro funktioniert.

In den Logs im APM Flash sollten auch Baro altitude logs enthalten sein, wenn Du pruefen moechtest, ob Dein Baro funktioniert.

Michael
 

mha

Neuer Benutzer
#9
Hallo,

ich denke mein Baro hat voellig vermurkste Kalibrierwert auf dem Sensor. Ist wahrscheinlich auch der Grund warum die Temperaturdaten des MS5611 ziemlich daneben liegen. Anbei ein kleines Testprogramm, das die Kalibrierwerte ausliest und dann laufend Daten des MS5611 ausgibt. Wer es ausprobieren moechte einfach auf das APM2.5 flashen und die Werte C1 bis C6 posten. Bitte auch die laufenden Daten anschauen. APM im stationaeren Zustand. Ist die Hoehe konstant um Null herum oder laeuft sie weg. Ist die Temperatur plausibel? Ungefaehr Umgebungstemperatur?

Michael
 

Anhänge

rose1203

Erfahrener Benutzer
#10
Hallo Michael,

mein Barometer ist in Ordnung. Ein Beispiel: ich gehe vom 1. Stock in den Keller, mein Altitude Wert vermindert sich dabei um
6 m. GPS Empfang im Keller nicht möglich.
 

rose1203

Erfahrener Benutzer
#13
So, habe eben mal das Verhalten der Höhe beobachtet:

Beim Anschluss 0 m
Nach 10 m -1,80 m
Nach 20 m - 2,60 m

Kann meiner Meinung nach nur an der Erwärmung der Komponenten auf der Platine liegen. Raumtemperatur gleichbleibend 19,2°
 

mha

Neuer Benutzer
#14
Ist bei mir aehnlich. Das ist tatseaechlich Temperaturdrift, d.h. schlechte Temperaturkompensation. Und es scheint normal zu sein. In der Arducopter Software wird die Temperaturkompensation gemaess MS5611 Datenblatt per Formel und im Chip selbst abgelegten Koeffizienten gemacht. Ein Versuch waere die vom MS5611 gemessene Temperatur und den Druck zu loggen und einen eigene Kompensationstabelle abzulegen.
 

eXc

Erfahrener Benutzer
#17
Habe gesehen, dass in der Konfigurationssoftware der Hexa nur als + ausgeführt ist, kann man das dort auch auf X Konfiguration umstellen?

mfg Christian
 

rose1203

Erfahrener Benutzer
#18
Hallo Christian, geh mal im MP links auf Arducopter Level. Dort kannst du dann festlegen ob Plus, X oder V Ausführung sein soll. Dies war aber immer schon so in allen Firmwaren.
 

fenriswulf

Neuer Benutzer
#19
So, habe eben mal das Verhalten der Höhe beobachtet:

Beim Anschluss 0 m
Nach 10 m -1,80 m
Nach 20 m - 2,60 m

Kann meiner Meinung nach nur an der Erwärmung der Komponenten auf der Platine liegen. Raumtemperatur gleichbleibend 19,2°
Wäre es nicht denkbar dass das einfach mit dem Wetter zu tun hat? Laut Wikipedia ändert sich der Luftdruck um ca 1hPa alle 8 Meter. Bei deiner Beobachtung waren das also nach zwanzig Minuten ca 0,3hPa Luftdruckänderung. Das dürften normale Schwankungen des Wetters sein (Ebenfalls Wikipedia: Unterschied zwischen Hoch- und Tiefdruckgebiet ca. 10hPa).
 

rose1203

Erfahrener Benutzer
#20
Im normalen Flugbetrieb bei mir ca. 10 - 12 min. wird diese Differenz von ca. 2 m doch überhaupt nicht auffallen. Wer schwebt schon diese Zeit nur im Alt Hold Modus, und nur da würde das auffallen.
 
FPV1

Banggood

Oben Unten