Forum: Mikrocontroller und Digitale Elektronik Aus Magnetfeld- und Beschleunigungsensoren die relative Position berechnen?


von Ngoc N. (soulsiner)


Lesenswert?

Hallo, vielleicht kennt sich jemand aus mit der Auswertung von 
Sensordaten. Also von 3D Beschleunigung, Gyro und Magnetfeldsensor 
bekomme ich folgende Werten. Allerdings weiß ich nicht wie ich daraus 
die Position im Raum, wo sich der Sensor gerade befindet, berechnen 
soll.
Gibt es da eine Formel um die Position zu berechnen?

Für Ideen und Tips wäre ich sehr dankbar!

Die Daten vom Sensor:
1
Time-Date  Acc-X   Acc-Y  Acc-Z   Gyro-X  Gyro-Y  Gyro-Z  Mag-X   Mag-Y
2
0         -1,367   9,304  2,738   0,013   0,054  -0,079  15,423  -8,05
3
10        -1,48    9,342  2,754   0,016   0,05   -0,034  15,423  -8,05
4
20        -1,423   9,342  2,755  -0,004   0,064  -0,03   15,423  -7,837
5
30        -1,442   9,229  2,607   0,004   0,054  -0,007  15,423  -7,837
6
40        -1,461   9,455  2,622   0,004   0,063   0,049  15,806  -7,825
7
50        -1,461   9,53   2,696  -0,022   0,048   0,062  15,806  -7,825
8
60        -1,48    9,286  2,718  -0,021   0,062   0,068  15,614  -7,619
9
70        -1,48    9,173  2,906  -0,013   0,037   0,063  15,614  -7,619
10
80        -1,461   9,38   3,129   0,03    0,025   0,068  15,614  -7,831
11
90        -1,499   9,549  3,164   0,02    0,029   0,036  15,614  -7,831
12
100       -1,517   9,642  2,807   0,008   0,018   0,028  15,614  -7,619
13
110       -1,499   9,699  2,525  -0,035  -0,006   0,012  15,614  -7,619
14
120       -1,687   9,887  2,202  -0,105  -0,051   0,011  15,614  -7,831
15
130       -1,856  10,169  2,253  -0,188  -0,105   0,035  15,614  -7,831
16
140       -1,932  10,357  2,399  -0,188  -0,151   0,08   15,614  -7,619
17
150       -1,95   10,582  2,79   -0,317  -0,166   0,192  15,614  -7,619
18
160       -1,762  11,238  3,14   -0,311  -0,17    0,239  15,614  -7,619
19
170       -1,517  12,175  3,376  -0,311  -0,155   0,211  15,614  -7,619
20
180       -1,517  13,488  3,305  -0,311  -0,157   0,171  15,614  -7,619
21
190       -1,555  14,67   2,823  -0,383  -0,166   0,125  15,614  -7,619

von Hilfreicher Helfer (Gast)


Lesenswert?

(Acc-X) + (Acc-Y)² - log (Acc-Z * Gyro-X) + Gyro-Y + Gyro-Z + (Mag-X - 
Mag-Y)²

Den Log kannst du noch vereinfachen, siehe Rechenregeln Logarithmus.

von Stephan (Gast)


Lesenswert?

Was sagen denn Datenblatt, Handbuch, AppNotes, etc. dazu?
Ohne weitere Infos wirst Du die Sensoren mit definierten Bewegungen 
beaufschlagen und Deine eigenen Rückschlüsse ziehen müssen.

Acc-Y im Bereich um 10 könnte die Erdbeschleinigung in m/s^2 sein.
Die zeitliche Veränderung könnte durch einen zuerst gebremst fallenden 
und anschließend nach oben beschleunigten Sensor kommen.

von M. B. (Firma: TH Nürnberg) (ohmen)


Lesenswert?


von Ngoc N. (soulsiner)


Lesenswert?

Danke für die schnelle Antworten, ich werde gleich in der am 
Arbeitsplatz austesten.

@Stephan
Es gibt leider kein Handbuch zum Sensor :( aber in der Ini-Datei stehen 
etwas:

[Chan.3]
ID=22
Type=Acc
ChanName=y
Freq=100.0
SmpFreq=100.0
Bits=14
SmpBits=14
SignRaw=1
Sign=1
Offset=0
Calib=0,1
Unit=g
Sensitivity=512.00000
Sensor=Sensor.21

also ich denke es ist wie du gesagt hast die Erdbeschleinigung in g

von M. B. (Firma: TH Nürnberg) (ohmen)


Lesenswert?


von Stefan Frings (Gast)


Lesenswert?

Ich hatte mal bei Dexter Industries nachgefragt, ob man mit deren 
Sensoren überhaupt die Position eines Roboters (relativ zum Startpunkt, 
nach einer Bewegung) errechnen kann: Klare Antwort war: NEIN.

Die Auflösung der Sensoren ist dazu viel zu gering. Ich müsste den 
Roboter schon durch die Gegend werfen oder ihn mit Raketen-Antrieb 
versehen, und mit Bewegungen im Kilometer Bereich arbeiten, um auf eine 
brauchbare Genauigkeit zu kommen.

Wenn der Roboter 5 Meter geradeaus gefahren ist (mit Schritt-Tempo), 
dann kann man anhand der Sensoren nicht feststellen, ob er sich 
überhaupt noch im Haus befindet. Dafür sind die Sensoren nicht 
feinfühlig genug.

Du kannst mit einem Gyro Sensor Winkel<Änderungen recht präzise messen. 
Aber die Beschleunigung nützt Dir kaum etwas, um daraus die Strecke 
einer Bewegung zu errechnen.

von Ngoc N. (soulsiner)


Lesenswert?

Hilfreicher Helfer schrieb:
> (Acc-X) + (Acc-Y)² - log (Acc-Z * Gyro-X) + Gyro-Y + Gyro-Z + (Mag-X -
> Mag-Y)²
>
> Den Log kannst du noch vereinfachen, siehe Rechenregeln Logarithmus.

Leider versteh ich nicht was du damit meinst, es kommt nur ein Wert 
dabei raus. Für die Position brauch man doch x und y koordinaten und im 
3D-Raum noch z.

von Karl H. (kbuchegg)


Lesenswert?

Vergiss die Formel.
"Hilfreicher Helfer" hat sich einen Scherz gemacht.

So einfach, wie du dir das vorstellst ist dein Problem nämlich nicht.

von Ngoc N. (soulsiner)


Lesenswert?

ja das hab ich mir schon gedacht, ich bin so verzweifelt, dass ich schon 
auf trollpost antworte.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.