3596 |
kaklik |
1 |
{ |
|
|
2 |
"metadata": { |
4560 |
jacho |
3 |
"name": "", |
|
|
4 |
"signature": "sha256:c177e3c216df69880e3a36f714fcb1ab7db773810b3ada8627ddf2c30be0c749" |
3596 |
kaklik |
5 |
}, |
|
|
6 |
"nbformat": 3, |
|
|
7 |
"nbformat_minor": 0, |
|
|
8 |
"worksheets": [ |
|
|
9 |
{ |
|
|
10 |
"cells": [ |
|
|
11 |
{ |
|
|
12 |
"cell_type": "markdown", |
|
|
13 |
"metadata": {}, |
|
|
14 |
"source": [ |
|
|
15 |
"Uk\u00e1zka pou\u017eit\u00ed n\u00e1stroje IPython na manipulaci se senzorov\u00fdmi daty\n", |
|
|
16 |
"=======\n", |
|
|
17 |
"\n", |
3662 |
kaklik |
18 |
"P\u0159\u00edklad vyu\u017e\u00edv\u00e1 modulovou stavebnici MLAB a jej\u00ed knihovnu [pymlab](https://github.com/MLAB-project/MLAB-I2c-modules). Sn\u00edma\u010d je k po\u010d\u00edta\u010di p\u0159ipojen\u00fd p\u0159es rozhradn\u00ed USB a data jsou vy\u010d\u00edt\u00e1na p\u0159es [I\u00b2C](http://wiki.mlab.cz/doku.php?id=cs:i2c)\n", |
3596 |
kaklik |
19 |
"\n", |
3662 |
kaklik |
20 |
"Pou\u017eit\u00fd sn\u00edma\u010d [HMC5883L](http://www.magneticsensors.com/three-axis-digital-compass.php) m\u00e1 n\u00e1sleduj\u00edc\u00ed katalogov\u00e9 parametry: \n", |
|
|
21 |
"\n", |
|
|
22 |
"* M\u011b\u0159\u00edc\u00ed rozsah +/- 800 uT\n", |
|
|
23 |
"* Rozli\u0161en\u00ed typicky 5 uT\n", |
|
|
24 |
"* \u010cetnost m\u011b\u0159en\u00ed 75 Hz\n", |
|
|
25 |
"\n", |
3596 |
kaklik |
26 |
"Zprovozn\u011bn\u00ed demo k\u00f3du\n", |
|
|
27 |
"---------------------\n", |
|
|
28 |
"\n", |
|
|
29 |
"Nejd\u0159\u00edve zjist\u00edme zda m\u00e1me p\u0159\u00edstup pro z\u00e1pis a \u010dten\u00ed do syst\u00e9mov\u00e9ho za\u0159\u00edzen\u00ed. A jak\u00e9 \u010d\u00edslo m\u00e1 I\u00b2C sb\u011brnice na kterou m\u00e1me p\u0159ipojen\u00e1 \u010didla. \n" |
|
|
30 |
] |
|
|
31 |
}, |
|
|
32 |
{ |
|
|
33 |
"cell_type": "code", |
|
|
34 |
"collapsed": false, |
|
|
35 |
"input": [ |
|
|
36 |
"!i2cdetect -l" |
|
|
37 |
], |
|
|
38 |
"language": "python", |
|
|
39 |
"metadata": {}, |
|
|
40 |
"outputs": [ |
|
|
41 |
{ |
|
|
42 |
"output_type": "stream", |
|
|
43 |
"stream": "stdout", |
|
|
44 |
"text": [ |
4560 |
jacho |
45 |
"i2c-0\ti2c \ti915 gmbus vga \tI2C adapter\r\n", |
|
|
46 |
"i2c-1\ti2c \ti915 gmbus dpc \tI2C adapter\r\n", |
|
|
47 |
"i2c-2\ti2c \ti915 gmbus dpb \tI2C adapter\r\n", |
|
|
48 |
"i2c-3\ti2c \ti915 gmbus dpd \tI2C adapter\r\n", |
|
|
49 |
"i2c-4\ti2c \tDPDDC-A \tI2C adapter\r\n", |
|
|
50 |
"i2c-5\ti2c \tDPDDC-C \tI2C adapter\r\n", |
|
|
51 |
"i2c-6\ti2c \tCP2112 SMBus Bridge on hiddev0 \tI2C adapter\r\n" |
3596 |
kaklik |
52 |
] |
|
|
53 |
} |
|
|
54 |
], |
4560 |
jacho |
55 |
"prompt_number": 3 |
3596 |
kaklik |
56 |
}, |
|
|
57 |
{ |
|
|
58 |
"cell_type": "markdown", |
|
|
59 |
"metadata": {}, |
|
|
60 |
"source": [ |
|
|
61 |
"Proto\u017ee pro p\u0159ipojen\u00ed \u010didel k po\u010d\u00edta\u010di pou\u017e\u00edv\u00e1me adapt\u00e9r i2c-tiny-usb. Vid\u00edme, \u017ee sb\u011brnice m\u00e1 aktu\u00e1ln\u011b ozna\u010den\u00ed nap\u0159\u00edklad i2c-8. \n", |
|
|
62 |
"\n", |
|
|
63 |
"V p\u0159\u00edpad\u011b, \u017ee v\u00fd\u0161e uveden\u00fd p\u0159\u00edklad vr\u00e1t\u00ed chybu, nebo pojmenov\u00e1n\u00ed \"unknown\" tak nem\u00e1me p\u0159\u00edstup k syst\u00e9mov\u00fdm rozhran\u00edm. Ten z\u00edsk\u00e1me vytvo\u0159en\u00edm souboru s n\u00e1sleduj\u00edc\u00edm obsahem ve slo\u017ece: /etc/udev/rules.d/i2c-devices.rules" |
|
|
64 |
] |
|
|
65 |
}, |
|
|
66 |
{ |
|
|
67 |
"cell_type": "raw", |
|
|
68 |
"metadata": {}, |
|
|
69 |
"source": [ |
|
|
70 |
"KERNEL==\"i2c-[0-9]*\", GROUP=\"i2c\"" |
|
|
71 |
] |
|
|
72 |
}, |
|
|
73 |
{ |
|
|
74 |
"cell_type": "markdown", |
|
|
75 |
"metadata": {}, |
|
|
76 |
"source": [ |
|
|
77 |
"Toto ozna\u010den\u00ed budeme je\u0161t\u011b d\u00e1le pot\u0159ebovat, proto si jej ulo\u017e\u00edme da prom\u011bnn\u00e9. " |
|
|
78 |
] |
|
|
79 |
}, |
|
|
80 |
{ |
|
|
81 |
"cell_type": "code", |
|
|
82 |
"collapsed": false, |
|
|
83 |
"input": [ |
4560 |
jacho |
84 |
"port = 6" |
3596 |
kaklik |
85 |
], |
|
|
86 |
"language": "python", |
|
|
87 |
"metadata": {}, |
|
|
88 |
"outputs": [], |
4560 |
jacho |
89 |
"prompt_number": 4 |
3596 |
kaklik |
90 |
}, |
|
|
91 |
{ |
|
|
92 |
"cell_type": "markdown", |
|
|
93 |
"metadata": {}, |
|
|
94 |
"source": [ |
|
|
95 |
"Budeme pokra\u010dovat na\u010dten\u00edm pot\u0159ebn\u00fdch modul\u016f pro zach\u00e1zen\u00ed s I\u00b2C sn\u00edma\u010di." |
|
|
96 |
] |
|
|
97 |
}, |
|
|
98 |
{ |
|
|
99 |
"cell_type": "code", |
|
|
100 |
"collapsed": false, |
|
|
101 |
"input": [ |
|
|
102 |
"import time\n", |
|
|
103 |
"import datetime\n", |
|
|
104 |
"import sys\n", |
|
|
105 |
"\n", |
|
|
106 |
"from pymlab import config\n", |
|
|
107 |
"import matplotlib.pyplot as plt\n", |
|
|
108 |
"import numpy as np" |
|
|
109 |
], |
|
|
110 |
"language": "python", |
|
|
111 |
"metadata": {}, |
|
|
112 |
"outputs": [], |
4560 |
jacho |
113 |
"prompt_number": 5 |
3596 |
kaklik |
114 |
}, |
|
|
115 |
{ |
|
|
116 |
"cell_type": "markdown", |
|
|
117 |
"metadata": {}, |
|
|
118 |
"source": [ |
|
|
119 |
"Nyn\u00ed si nadefinujeme strukturu p\u0159ipojen\u00ed jednotliv\u00fdch \u010didel na I\u00b2C sb\u011brnici." |
|
|
120 |
] |
|
|
121 |
}, |
|
|
122 |
{ |
|
|
123 |
"cell_type": "code", |
|
|
124 |
"collapsed": false, |
|
|
125 |
"input": [ |
|
|
126 |
"cfg = config.Config(\n", |
3642 |
kaklik |
127 |
" i2c = {\n", |
|
|
128 |
" \"port\": port,\n", |
|
|
129 |
" },\n", |
3596 |
kaklik |
130 |
" bus = [\n", |
|
|
131 |
" {\n", |
|
|
132 |
" \"type\": \"i2chub\",\n", |
3667 |
kaklik |
133 |
" \"address\": 0x71,\n", |
3596 |
kaklik |
134 |
" \n", |
|
|
135 |
" \"children\": [\n", |
3667 |
kaklik |
136 |
" {\"name\": \"mag\", \"type\": \"mag01\", \"gauss\": 0.88, \"channel\": 0, }, \n", |
3596 |
kaklik |
137 |
" ],\n", |
|
|
138 |
" },\n", |
|
|
139 |
" ],\n", |
|
|
140 |
")" |
|
|
141 |
], |
|
|
142 |
"language": "python", |
|
|
143 |
"metadata": {}, |
|
|
144 |
"outputs": [], |
4560 |
jacho |
145 |
"prompt_number": 6 |
3596 |
kaklik |
146 |
}, |
|
|
147 |
{ |
4560 |
jacho |
148 |
"cell_type": "code", |
|
|
149 |
"collapsed": false, |
|
|
150 |
"input": [ |
|
|
151 |
"cfg = config.Config(\n", |
|
|
152 |
" i2c = {\n", |
|
|
153 |
" \"port\": port,\n", |
|
|
154 |
" },\n", |
|
|
155 |
" bus = [\n", |
|
|
156 |
" {\n", |
|
|
157 |
" \"type\": \"mag01\",\n", |
|
|
158 |
" \"name\": \"mag\", \n", |
|
|
159 |
" \"gauss\": 0.88, \n", |
|
|
160 |
" \"channel\": 0, \n", |
|
|
161 |
" },\n", |
|
|
162 |
" ],\n", |
|
|
163 |
")" |
|
|
164 |
], |
|
|
165 |
"language": "python", |
|
|
166 |
"metadata": {}, |
|
|
167 |
"outputs": [], |
|
|
168 |
"prompt_number": 10 |
|
|
169 |
}, |
|
|
170 |
{ |
3596 |
kaklik |
171 |
"cell_type": "markdown", |
|
|
172 |
"metadata": {}, |
|
|
173 |
"source": [ |
|
|
174 |
"Tuto strukturu inicializujeme, aby jsme dos\u00e1hli definovan\u00e9 konfigurace \u010didel." |
|
|
175 |
] |
|
|
176 |
}, |
|
|
177 |
{ |
|
|
178 |
"cell_type": "code", |
|
|
179 |
"collapsed": false, |
|
|
180 |
"input": [ |
|
|
181 |
"cfg.initialize()\n", |
|
|
182 |
"mag_sensor = cfg.get_device(\"mag\")\n", |
|
|
183 |
"time.sleep(0.5)" |
|
|
184 |
], |
|
|
185 |
"language": "python", |
|
|
186 |
"metadata": {}, |
4560 |
jacho |
187 |
"outputs": [ |
|
|
188 |
{ |
|
|
189 |
"output_type": "stream", |
|
|
190 |
"stream": "stderr", |
|
|
191 |
"text": [ |
|
|
192 |
"WARNING:pymlab.sensors.iic:HID device does not exist, we will try SMBus directly...\n" |
|
|
193 |
] |
|
|
194 |
} |
|
|
195 |
], |
|
|
196 |
"prompt_number": 11 |
3596 |
kaklik |
197 |
}, |
|
|
198 |
{ |
|
|
199 |
"cell_type": "markdown", |
|
|
200 |
"metadata": {}, |
|
|
201 |
"source": [ |
3662 |
kaklik |
202 |
"Nyn\u00ed u\u017e m\u016f\u017eeme p\u0159\u00edmo komunikovat se za\u0159\u00edzen\u00edm pojmenovan\u00fdm jako mag_sensor. A vy\u010d\u00edst z n\u011bj sadu dat." |
3596 |
kaklik |
203 |
] |
|
|
204 |
}, |
|
|
205 |
{ |
|
|
206 |
"cell_type": "code", |
|
|
207 |
"collapsed": false, |
|
|
208 |
"input": [ |
3662 |
kaklik |
209 |
"import sys\n", |
|
|
210 |
"import time\n", |
|
|
211 |
"from IPython.display import clear_output\n", |
3596 |
kaklik |
212 |
"\n", |
3662 |
kaklik |
213 |
"MEASUREMENTS = 500\n", |
|
|
214 |
"list_meas = []\n", |
3596 |
kaklik |
215 |
"\n", |
|
|
216 |
"for n in range(MEASUREMENTS):\n", |
3662 |
kaklik |
217 |
"# mag_sensor.route() #V p\u0159\u00edpad\u011b v\u00edce \u010didel je pot\u0159eba ke ka\u017ed\u00e9mu p\u0159ed jeho pou\u017eit\u00edm nechat vyroutovat cesutu na sb\u011brnici.\n", |
|
|
218 |
" clear_output()\n", |
|
|
219 |
" (x, y, z) = mag_sensor.axes()\n", |
|
|
220 |
" list_meas.append([x, y, z])\n", |
|
|
221 |
" print (n, list_meas[n])\n", |
3667 |
kaklik |
222 |
" time.sleep(0.2)\n", |
3662 |
kaklik |
223 |
" sys.stdout.flush()" |
3596 |
kaklik |
224 |
], |
|
|
225 |
"language": "python", |
|
|
226 |
"metadata": {}, |
3642 |
kaklik |
227 |
"outputs": [ |
|
|
228 |
{ |
|
|
229 |
"output_type": "stream", |
|
|
230 |
"stream": "stdout", |
|
|
231 |
"text": [ |
4560 |
jacho |
232 |
"(499, [-221.19, -34.31, 85.41])\n" |
3642 |
kaklik |
233 |
] |
3662 |
kaklik |
234 |
} |
|
|
235 |
], |
4560 |
jacho |
236 |
"prompt_number": 18 |
3662 |
kaklik |
237 |
}, |
|
|
238 |
{ |
|
|
239 |
"cell_type": "markdown", |
|
|
240 |
"metadata": {}, |
|
|
241 |
"source": [ |
|
|
242 |
"V\u00fdstupn\u00ed jsou v jednotk\u00e1ch miliGauss a m\u011b\u0159\u00edc\u00ed rozsah je nastaven\u00fd na 0.88 Gauss. Viz konfigurace \u010didel naho\u0159e.\n", |
|
|
243 |
"Nam\u011b\u0159en\u00e9 hodnoty n\u00e1sledn\u011b ulo\u017e\u00edme do souboru. " |
|
|
244 |
] |
|
|
245 |
}, |
|
|
246 |
{ |
|
|
247 |
"cell_type": "code", |
|
|
248 |
"collapsed": false, |
|
|
249 |
"input": [ |
3667 |
kaklik |
250 |
"np.savez(\"calibration_data_2Dset\", data=list_meas)" |
3662 |
kaklik |
251 |
], |
|
|
252 |
"language": "python", |
|
|
253 |
"metadata": {}, |
|
|
254 |
"outputs": [], |
4560 |
jacho |
255 |
"prompt_number": 15 |
3662 |
kaklik |
256 |
}, |
|
|
257 |
{ |
|
|
258 |
"cell_type": "markdown", |
|
|
259 |
"metadata": {}, |
|
|
260 |
"source": [ |
3663 |
kaklik |
261 |
"Zpracov\u00e1n\u00ed dat 2D\n", |
3662 |
kaklik |
262 |
"-----------\n", |
|
|
263 |
"\n", |
|
|
264 |
"V dal\u0161\u00ed \u010d\u00e1sti budeme pracovat s daty v ulo\u017een\u00e9m souboru, kter\u00fd na\u010dteme do pol\u00ed x, y, z. " |
|
|
265 |
] |
|
|
266 |
}, |
|
|
267 |
{ |
|
|
268 |
"cell_type": "code", |
|
|
269 |
"collapsed": false, |
|
|
270 |
"input": [ |
3683 |
kakl |
271 |
"data = np.load('./calibration_data_3Dset.npz')\n", |
3667 |
kaklik |
272 |
"list_meas = data['data']\n", |
|
|
273 |
"x = list_meas[:, 0]\n", |
|
|
274 |
"y = list_meas[:, 1]\n", |
|
|
275 |
"z = list_meas[:, 2]" |
3662 |
kaklik |
276 |
], |
|
|
277 |
"language": "python", |
|
|
278 |
"metadata": {}, |
|
|
279 |
"outputs": [], |
4560 |
jacho |
280 |
"prompt_number": 16 |
3662 |
kaklik |
281 |
}, |
|
|
282 |
{ |
|
|
283 |
"cell_type": "markdown", |
|
|
284 |
"metadata": {}, |
|
|
285 |
"source": [ |
|
|
286 |
"Nam\u011b\u0159en\u00e9 hodnoty vykresl\u00edme do 3D grafu." |
|
|
287 |
] |
|
|
288 |
}, |
|
|
289 |
{ |
|
|
290 |
"cell_type": "code", |
|
|
291 |
"collapsed": false, |
|
|
292 |
"input": [ |
|
|
293 |
"from mpl_toolkits.mplot3d.axes3d import Axes3D\n", |
|
|
294 |
"#%pylab qt\n", |
|
|
295 |
"%pylab inline\n", |
|
|
296 |
"fig = plt.figure()\n", |
|
|
297 |
"ax = Axes3D(fig)\n", |
3663 |
kaklik |
298 |
"p = ax.scatter(x,y,z)" |
3662 |
kaklik |
299 |
], |
|
|
300 |
"language": "python", |
|
|
301 |
"metadata": {}, |
|
|
302 |
"outputs": [ |
3642 |
kaklik |
303 |
{ |
|
|
304 |
"output_type": "stream", |
|
|
305 |
"stream": "stdout", |
|
|
306 |
"text": [ |
3662 |
kaklik |
307 |
"Populating the interactive namespace from numpy and matplotlib\n" |
3642 |
kaklik |
308 |
] |
|
|
309 |
}, |
|
|
310 |
{ |
3662 |
kaklik |
311 |
"metadata": {}, |
|
|
312 |
"output_type": "display_data", |
4560 |
jacho |
313 |
"png": "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\n", |
3642 |
kaklik |
314 |
"text": [ |
4560 |
jacho |
315 |
"<matplotlib.figure.Figure at 0x7f6d8d55ff10>" |
3642 |
kaklik |
316 |
] |
3662 |
kaklik |
317 |
} |
|
|
318 |
], |
4560 |
jacho |
319 |
"prompt_number": 17 |
3662 |
kaklik |
320 |
}, |
|
|
321 |
{ |
|
|
322 |
"cell_type": "markdown", |
|
|
323 |
"metadata": {}, |
|
|
324 |
"source": [ |
|
|
325 |
"Pro lep\u0161\u00ed zobrazen\u00ed jednotliv\u00fdch zkreslen\u00ed vykresl\u00edme i 2D pr\u016fm\u011bt dat." |
|
|
326 |
] |
|
|
327 |
}, |
|
|
328 |
{ |
|
|
329 |
"cell_type": "code", |
|
|
330 |
"collapsed": false, |
|
|
331 |
"input": [ |
3667 |
kaklik |
332 |
"plt.plot(x, y,'.')" |
3662 |
kaklik |
333 |
], |
|
|
334 |
"language": "python", |
|
|
335 |
"metadata": {}, |
4560 |
jacho |
336 |
"outputs": [] |
3662 |
kaklik |
337 |
}, |
|
|
338 |
{ |
|
|
339 |
"cell_type": "markdown", |
|
|
340 |
"metadata": {}, |
|
|
341 |
"source": [ |
|
|
342 |
"Z grafu je vid\u011bt, \u017ee se uplat\u0148uj\u00ed oba zn\u00e1m\u00e9 deforma\u010dn\u00ed jevy - soft-iron a hard-iron. Pokus\u00edme se je proto kompenzovat. Nejd\u0159\u00edve zkus\u00edme odstranit Hard-iron efekty zp\u016fsobuj\u00edc\u00ed offsety." |
|
|
343 |
] |
|
|
344 |
}, |
|
|
345 |
{ |
|
|
346 |
"cell_type": "code", |
|
|
347 |
"collapsed": false, |
|
|
348 |
"input": [ |
|
|
349 |
"xoffset = (min(x) + max(x))/2\n", |
|
|
350 |
"print xoffset" |
|
|
351 |
], |
|
|
352 |
"language": "python", |
|
|
353 |
"metadata": {}, |
4560 |
jacho |
354 |
"outputs": [] |
3596 |
kaklik |
355 |
}, |
|
|
356 |
{ |
|
|
357 |
"cell_type": "code", |
|
|
358 |
"collapsed": false, |
|
|
359 |
"input": [ |
3667 |
kaklik |
360 |
"yoffset = (min(y) + max(y))/2\n", |
|
|
361 |
"print yoffset" |
3596 |
kaklik |
362 |
], |
|
|
363 |
"language": "python", |
|
|
364 |
"metadata": {}, |
4560 |
jacho |
365 |
"outputs": [] |
3596 |
kaklik |
366 |
}, |
|
|
367 |
{ |
|
|
368 |
"cell_type": "code", |
|
|
369 |
"collapsed": false, |
|
|
370 |
"input": [ |
3667 |
kaklik |
371 |
"plt.plot(x-xoffset, y-yoffset,'.')" |
3596 |
kaklik |
372 |
], |
|
|
373 |
"language": "python", |
|
|
374 |
"metadata": {}, |
4560 |
jacho |
375 |
"outputs": [] |
3662 |
kaklik |
376 |
}, |
|
|
377 |
{ |
|
|
378 |
"cell_type": "markdown", |
|
|
379 |
"metadata": {}, |
|
|
380 |
"source": [ |
3663 |
kaklik |
381 |
"Interaktivn\u00ed test, kter\u00fd vypisuje aktua\u00e1ln\u00ed azimut. Lze si na n\u011bm vyzkou\u0161et funkci kompasu. Je vid\u011bt, \u017ee p\u0159i vzniku v\u011bt\u0161\u00edho n\u00e1klonu, dvouos\u00fd kompas za\u010dne ukazovat p\u0159esn\u011b opa\u010dn\u00fd sm\u011br." |
3662 |
kaklik |
382 |
] |
|
|
383 |
}, |
|
|
384 |
{ |
|
|
385 |
"cell_type": "code", |
|
|
386 |
"collapsed": false, |
|
|
387 |
"input": [ |
3663 |
kaklik |
388 |
"try:\n", |
|
|
389 |
"\n", |
|
|
390 |
" for n in range(MEASUREMENTS):\n", |
|
|
391 |
" (x, y, z) = mag_sensor.axes()\n", |
3667 |
kaklik |
392 |
" phi = np.arctan2(x-xoffset, y-yoffset)\n", |
3663 |
kaklik |
393 |
" clear_output()\n", |
|
|
394 |
" print ((phi*180)/pi+180)\n", |
3667 |
kaklik |
395 |
" time.sleep(0.2)\n", |
3663 |
kaklik |
396 |
" sys.stdout.flush()\n", |
|
|
397 |
"except KeyboardInterrupt:\n", |
|
|
398 |
" sys.exit(0)" |
|
|
399 |
], |
|
|
400 |
"language": "python", |
|
|
401 |
"metadata": {}, |
4560 |
jacho |
402 |
"outputs": [] |
3663 |
kaklik |
403 |
}, |
|
|
404 |
{ |
|
|
405 |
"cell_type": "markdown", |
|
|
406 |
"metadata": {}, |
|
|
407 |
"source": [ |
|
|
408 |
"Vid\u00edme, \u017ee po tomto zp\u016fsobu korekce m\u00e1 vykreslen\u00fd \u00fatvar od kru\u017enice je\u0161t\u011b v\u00fdznamn\u00e9 odchylky. Nyn\u00ed pot\u0159ebujeme kompenzovat soft-iron efekty. K tomu mus\u00edme pracovat s nam\u011b\u0159en\u00fdmi daty, jako s elipsou a naj\u00edt jej\u00ed hlavn\u00ed a vedlej\u0161\u00ed poloosu. Postup je trochu komplikovan\u011bj\u0161\u00ed, proto adoptujeme k\u00f3d z [PaparazziUAV](http://wiki.paparazziuav.org/wiki/ImuCalibration). Ten pomoc\u00ed fitov\u00e1n\u00ed elipsoindu najde korek\u010dn\u00ed parametry citlivosti pro jednotliv\u00e9 osy. Zanedb\u00e1v\u00e1 ale p\u0159\u00edpadnou rotaci elipsoidu popsanou v \u010dl\u00e1nku [Compensating for Tilt, Hard-Iron, and Soft-Iron Effects](http://www.sensorsmag.com/sensors/motion-velocity-displacement/compensating-tilt-hard-iron-and-soft-iron-effects-6475)\n", |
|
|
409 |
"Tento p\u0159\u00edstup je tak\u00e9 v\u00fdhodn\u00fd v tom, \u017ee vyu\u017e\u00edv\u00e1 v\u0161echny 3 osy magnetometru. Proto nen\u00ed pot\u0159eba pro kompenzaci n\u00e1klonu pou\u017e\u00edvat akcelerometr. Kompenzace akcererometrem by ale pozd\u011bji m\u011bla b\u00fdt vyu\u017eita ke korekci rotace os magnetometru v\u016f\u010di vn\u011bj\u0161\u00edmu pouzdru.\n", |
|
|
410 |
"\n", |
|
|
411 |
"Zpracov\u00e1n\u00ed dat 3D\n", |
|
|
412 |
"-----------\n", |
|
|
413 |
"\n", |
|
|
414 |
"K tomu pou\u017eijeme datov\u00fd set, kde jsou body rozprost\u0159en\u00e9 po cel\u00e9m povrchu koule. " |
|
|
415 |
] |
|
|
416 |
}, |
|
|
417 |
{ |
|
|
418 |
"cell_type": "code", |
|
|
419 |
"collapsed": false, |
|
|
420 |
"input": [ |
|
|
421 |
"data = np.load('./calibration_data_3Dset.npz')\n", |
|
|
422 |
"list_meas = data['data']\n", |
|
|
423 |
"x = list_meas[:, 0]\n", |
|
|
424 |
"y = list_meas[:, 1]\n", |
|
|
425 |
"z = list_meas[:, 2]" |
|
|
426 |
], |
|
|
427 |
"language": "python", |
|
|
428 |
"metadata": {}, |
4560 |
jacho |
429 |
"outputs": [] |
3663 |
kaklik |
430 |
}, |
|
|
431 |
{ |
|
|
432 |
"cell_type": "code", |
|
|
433 |
"collapsed": false, |
|
|
434 |
"input": [ |
|
|
435 |
"from mpl_toolkits.mplot3d.axes3d import Axes3D\n", |
|
|
436 |
"#%pylab qt ## po odkomentovani a zakomentovani nasledujiciho radku udela vystup do QT okna. \n", |
|
|
437 |
"%pylab inline\n", |
|
|
438 |
"fig = plt.figure()\n", |
|
|
439 |
"ax = Axes3D(fig)\n", |
|
|
440 |
"p = ax.scatter(x,y,z)" |
|
|
441 |
], |
|
|
442 |
"language": "python", |
|
|
443 |
"metadata": {}, |
4560 |
jacho |
444 |
"outputs": [] |
3663 |
kaklik |
445 |
}, |
|
|
446 |
{ |
|
|
447 |
"cell_type": "code", |
|
|
448 |
"collapsed": false, |
|
|
449 |
"input": [ |
3662 |
kaklik |
450 |
"import scipy\n", |
|
|
451 |
"from scipy import optimize\n", |
|
|
452 |
"import calibration_utils\n", |
|
|
453 |
"\n", |
|
|
454 |
"sensor_ref = 1.\n", |
|
|
455 |
"sensor_res = 0.73\n", |
|
|
456 |
"noise_window = 10\n", |
|
|
457 |
"noise_threshold = 1000" |
3642 |
kaklik |
458 |
], |
3662 |
kaklik |
459 |
"language": "python", |
|
|
460 |
"metadata": {}, |
4560 |
jacho |
461 |
"outputs": [] |
3596 |
kaklik |
462 |
}, |
|
|
463 |
{ |
3662 |
kaklik |
464 |
"cell_type": "markdown", |
|
|
465 |
"metadata": {}, |
|
|
466 |
"source": [ |
|
|
467 |
"Uprav\u00edme strukuturu pole m\u011b\u0159en\u00fdch hodnot do sn\u00e1ze indexovateln\u00e9ho form\u00e1tu." |
|
|
468 |
] |
|
|
469 |
}, |
|
|
470 |
{ |
3596 |
kaklik |
471 |
"cell_type": "code", |
|
|
472 |
"collapsed": false, |
|
|
473 |
"input": [ |
3662 |
kaklik |
474 |
"measurements = np.array(list_meas)" |
3596 |
kaklik |
475 |
], |
|
|
476 |
"language": "python", |
|
|
477 |
"metadata": {}, |
4560 |
jacho |
478 |
"outputs": [] |
3596 |
kaklik |
479 |
}, |
|
|
480 |
{ |
3662 |
kaklik |
481 |
"cell_type": "markdown", |
|
|
482 |
"metadata": {}, |
|
|
483 |
"source": [ |
|
|
484 |
"Spo\u010d\u00edt\u00e1me medi\u00e1n magnitudy zm\u011b\u0159en\u00fdch vektor\u016f. A nastav\u00edme podle n\u011bj rozhodovac\u00ed \u00farove\u0148 pro filtraci a ofiltrujeme nam\u011b\u0159en\u00e1 kalibra\u010dn\u00ed data. " |
|
|
485 |
] |
|
|
486 |
}, |
|
|
487 |
{ |
3596 |
kaklik |
488 |
"cell_type": "code", |
|
|
489 |
"collapsed": false, |
|
|
490 |
"input": [ |
3662 |
kaklik |
491 |
"meas_median=scipy.median(scipy.array([scipy.linalg.norm(v) for v in measurements]))\n", |
|
|
492 |
"noise_threshold = meas_median * 0.8\n", |
|
|
493 |
"print noise_threshold\n", |
|
|
494 |
"flt_meas, flt_idx = calibration_utils.filter_meas(measurements, noise_window, noise_threshold)\n", |
|
|
495 |
"print(\"remaining \"+str(len(flt_meas))+\" after filtering\")" |
3596 |
kaklik |
496 |
], |
|
|
497 |
"language": "python", |
|
|
498 |
"metadata": {}, |
4560 |
jacho |
499 |
"outputs": [] |
3596 |
kaklik |
500 |
}, |
|
|
501 |
{ |
3662 |
kaklik |
502 |
"cell_type": "markdown", |
|
|
503 |
"metadata": {}, |
|
|
504 |
"source": [ |
|
|
505 |
"Spo\u010d\u00edt\u00e1me odhad elipsoidu z nam\u011b\u0159en\u00fdch minim\u00e1ln\u00edch a maxim\u00e1ln\u00edch hodnot." |
|
|
506 |
] |
|
|
507 |
}, |
|
|
508 |
{ |
3596 |
kaklik |
509 |
"cell_type": "code", |
|
|
510 |
"collapsed": false, |
|
|
511 |
"input": [ |
3662 |
kaklik |
512 |
" p0 = calibration_utils.get_min_max_guess(flt_meas, sensor_ref)\n", |
|
|
513 |
" cp0, np0 = calibration_utils.scale_measurements(flt_meas, p0)\n", |
|
|
514 |
" print(\"initial guess : avg \"+str(np0.mean())+\" std \"+str(np0.std()))\n", |
|
|
515 |
"\n", |
|
|
516 |
" def err_func(p, meas, y):\n", |
|
|
517 |
" cp, np = calibration_utils.scale_measurements(meas, p)\n", |
|
|
518 |
" err = y*scipy.ones(len(meas)) - np\n", |
|
|
519 |
" return err" |
3596 |
kaklik |
520 |
], |
|
|
521 |
"language": "python", |
|
|
522 |
"metadata": {}, |
4560 |
jacho |
523 |
"outputs": [] |
3662 |
kaklik |
524 |
}, |
|
|
525 |
{ |
|
|
526 |
"cell_type": "markdown", |
|
|
527 |
"metadata": {}, |
|
|
528 |
"source": [ |
|
|
529 |
"Optimalizujeme odhad fitov\u00e1n\u00edm elipsoidu." |
|
|
530 |
] |
|
|
531 |
}, |
|
|
532 |
{ |
|
|
533 |
"cell_type": "code", |
|
|
534 |
"collapsed": false, |
|
|
535 |
"input": [ |
|
|
536 |
" p1, cov, info, msg, success = optimize.leastsq(err_func, p0[:], args=(flt_meas, sensor_ref), full_output=1)\n", |
|
|
537 |
" if not success in [1, 2, 3, 4]:\n", |
|
|
538 |
" print(\"Optimization error: \", msg)\n", |
|
|
539 |
" print(\"Please try to provide a clean logfile.\")\n", |
|
|
540 |
" sys.exit(1)\n", |
|
|
541 |
"\n", |
|
|
542 |
" cp1, np1 = calibration_utils.scale_measurements(flt_meas, p1)\n", |
|
|
543 |
" print(\"optimized guess : avg \"+str(np1.mean())+\" std \"+str(np1.std()))" |
|
|
544 |
], |
|
|
545 |
"language": "python", |
|
|
546 |
"metadata": {}, |
4560 |
jacho |
547 |
"outputs": [] |
3662 |
kaklik |
548 |
}, |
|
|
549 |
{ |
|
|
550 |
"cell_type": "markdown", |
|
|
551 |
"metadata": {}, |
|
|
552 |
"source": [ |
|
|
553 |
"Vykresl\u00edme v\u00fdsledek filtrace a fitov\u00e1n\u00ed. " |
|
|
554 |
] |
|
|
555 |
}, |
|
|
556 |
{ |
|
|
557 |
"cell_type": "code", |
|
|
558 |
"collapsed": false, |
|
|
559 |
"input": [ |
|
|
560 |
"%pylab qt\n", |
3663 |
kaklik |
561 |
"#%pylab inline\n", |
3662 |
kaklik |
562 |
"calibration_utils.plot_results(False, measurements, flt_idx, flt_meas, cp0, np0, cp1, np1, sensor_ref)\n", |
|
|
563 |
"calibration_utils.plot_mag_3d(flt_meas, cp1, p1)" |
|
|
564 |
], |
|
|
565 |
"language": "python", |
|
|
566 |
"metadata": {}, |
4560 |
jacho |
567 |
"outputs": [] |
3662 |
kaklik |
568 |
}, |
|
|
569 |
{ |
|
|
570 |
"cell_type": "markdown", |
|
|
571 |
"metadata": {}, |
|
|
572 |
"source": [ |
|
|
573 |
"Nyn\u00ed m\u016f\u017eeme z\u00edskan\u00e9 scale faktory a offsety pou\u017e\u00edt na kompenzaci libovoln\u00e9ho m\u011b\u0159en\u00ed a n\u00e1sledn\u011b vypo\u010d\u00edtat polohov\u00e9 \u00fahly platformy ve sf\u00e9rick\u00fdch sou\u0159adnic\u00edch." |
|
|
574 |
] |
|
|
575 |
}, |
|
|
576 |
{ |
|
|
577 |
"cell_type": "code", |
|
|
578 |
"collapsed": false, |
|
|
579 |
"input": [ |
|
|
580 |
"for n in range(MEASUREMENTS):\n", |
|
|
581 |
" m = mag_sensor.axes()\n", |
|
|
582 |
" sm = (m - p1[0:3])*p1[3:6]\n", |
|
|
583 |
" r = norm(sm)\n", |
|
|
584 |
" theta = np.arccos(sm[2]/r)\n", |
|
|
585 |
" phi = np.arctan2(sm[1],sm[0])\n", |
|
|
586 |
" clear_output()\n", |
|
|
587 |
" print (r,(theta*180)/pi,(phi*180)/pi)\n", |
|
|
588 |
" sys.stdout.flush()" |
|
|
589 |
], |
|
|
590 |
"language": "python", |
|
|
591 |
"metadata": {}, |
4560 |
jacho |
592 |
"outputs": [] |
|
|
593 |
}, |
|
|
594 |
{ |
|
|
595 |
"cell_type": "code", |
|
|
596 |
"collapsed": false, |
|
|
597 |
"input": [], |
|
|
598 |
"language": "python", |
|
|
599 |
"metadata": {}, |
|
|
600 |
"outputs": [] |
|
|
601 |
}, |
|
|
602 |
{ |
|
|
603 |
"cell_type": "code", |
|
|
604 |
"collapsed": false, |
|
|
605 |
"input": [], |
|
|
606 |
"language": "python", |
|
|
607 |
"metadata": {}, |
|
|
608 |
"outputs": [] |
|
|
609 |
}, |
|
|
610 |
{ |
|
|
611 |
"cell_type": "code", |
|
|
612 |
"collapsed": false, |
|
|
613 |
"input": [], |
|
|
614 |
"language": "python", |
|
|
615 |
"metadata": {}, |
|
|
616 |
"outputs": [] |
|
|
617 |
}, |
|
|
618 |
{ |
|
|
619 |
"cell_type": "code", |
|
|
620 |
"collapsed": false, |
|
|
621 |
"input": [], |
|
|
622 |
"language": "python", |
|
|
623 |
"metadata": {}, |
|
|
624 |
"outputs": [] |
3596 |
kaklik |
625 |
} |
|
|
626 |
], |
|
|
627 |
"metadata": {} |
|
|
628 |
} |
|
|
629 |
] |
|
|
630 |
} |