<html xmlns="http://www.w3.org/1999/xhtml"><head><meta charset="utf-8"><meta name="generator" content="pdf2htmlEX"><meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"><link rel="stylesheet" href="https://csdnimg.cn/release/download_crawler_static/css/base.min.css"><link rel="stylesheet" href="https://csdnimg.cn/release/download_crawler_static/css/fancy.min.css"><link rel="stylesheet" href="https://csdnimg.cn/release/download_crawler_static/18952482/raw.css"><script src="https://csdnimg.cn/release/download_crawler_static/js/compatibility.min.js"></script><script src="https://csdnimg.cn/release/download_crawler_static/js/pdf2htmlEX.min.js"></script><script>try{pdf2htmlEX.defaultViewer = new pdf2htmlEX.Viewer({});}catch(e){}</script><title></title></head><body><div id="sidebar" style="display: none"><div id="outline"></div></div><div id="pf1" class="pf w0 h0" data-page-no="1"><div class="pc pc1 w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="https://csdnimg.cn/release/download_crawler_static/18952482/bg1.jpg"><div class="t m0 x1 h2 y1 ff1 fs0 fc0 sc0 ls0 ws0">displayIMU User Guide</div><div class="t m0 x2 h2 y2 ff1 fs0 fc0 sc0 ls0 ws0">by</div><div class="t m0 x3 h2 y3 ff1 fs0 fc0 sc0 ls0 ws0">Simeon Symeonidis</div><div class="t m0 x4 h2 y4 ff1 fs0 fc0 sc0 ls0 ws0">1<span class="_ _0"></span>1/13/2018</div><div class="t m0 x5 h2 y5 ff1 fs0 fc0 sc0 ls0 ws0">revision 1.0</div></div><div class="pi" data-data='{"ctm":[1.568627,0.000000,0.000000,1.568627,0.000000,0.000000]}'></div></div></body></html>
<div id="pf2" class="pf w0 h0" data-page-no="2"><div class="pc pc2 w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="https://csdnimg.cn/release/download_crawler_static/18952482/bg2.jpg"><div class="t m0 x6 h3 y6 ff2 fs0 fc0 sc0 ls0 ws0">Overview</div><div class="t m0 x6 h2 y7 ff1 fs0 fc0 sc0 ls0 ws0">The displayIMU<span class="_ _1"></span> project <span class="_ _1"></span>contains the <span class="_ _1"></span>algorithm, s<span class="_ _1"></span>oftware library<span class="_ _0"></span>, and tools<span class="_ _1"></span> necessary for<span class="_ _1"></span> the <span class="_ _1"></span>processing</div><div class="t m0 x6 h2 y8 ff1 fs0 fc0 sc0 ls0 ws0">of <span class="_ _1"></span>Microelectromechanical<span class="_ _1"></span> Systems<span class="_ _1"></span> (MEMS)<span class="_ _1"></span> accelerometer<span class="_ _0"></span>,<span class="_ _1"></span> magne<span class="_ _1"></span>tometer<span class="_ _0"></span>, <span class="_ _1"></span>and <span class="_ _1"></span>gyroscope <span class="_ _1"></span>sensor <span class="_ _1"></span>data</div><div class="t m0 x6 h2 y9 ff1 fs0 fc0 sc0 ls0 ws0">to estimate system orientation and<span class="_ _1"></span> translational acceleration. <span class="_ _0"></span>At its core is a<span class="_ _1"></span> optimized C library (Linux</div><div class="t m0 x6 h2 ya ff1 fs0 fc0 sc0 ls0 ws0">shared object file), which <span class="_ _1"></span>can be embedded into a senor or <span class="_ _1"></span>hosted by a server for off-line processing. <span class="_ _0"></span>A</div><div class="t m0 x6 h2 yb ff1 fs0 fc0 sc0 ls0 ws0">QT<span class="_ _1"></span> <span class="_ _1"></span>display<span class="_ _1"></span> <span class="_ _2"></span>tool<span class="_ _1"></span> <span class="_ _1"></span>is<span class="_ _2"></span> <span class="_ _1"></span>available<span class="_ _2"></span> <span class="_ _1"></span>to<span class="_ _1"></span> <span class="_ _2"></span>display<span class="_ _1"></span> <span class="_ _1"></span>inco<span class="_ _1"></span>ming<span class="_ _1"></span> <span class="_ _1"></span>sensor<span class="_ _2"></span> <span class="_ _1"></span>data,<span class="_ _1"></span> <span class="_ _2"></span>tune<span class="_ _1"></span> <span class="_ _1"></span>th<span class="_ _1"></span>e<span class="_ _1"></span> <span class="_ _1"></span>algorithm,<span class="_ _1"></span> <span class="_ _2"></span>manage<span class="_ _1"></span> <span class="_ _2"></span>config<span class="_ _1"></span> <span class="_ _2"></span>files,</div><div class="t m0 x6 h2 yc ff1 fs0 fc0 sc0 ls0 ws0">and <span class="_ _1"></span>view <span class="_ _1"></span>results.<span class="_ _1"></span> The<span class="_ _1"></span> QT <span class="_ _1"></span>display <span class="_ _1"></span>tool <span class="_ _1"></span>works <span class="_ _1"></span>with <span class="_ _1"></span>streaming <span class="_ _1"></span>UDP data <span class="_ _1"></span>or <span class="_ _1"></span>CSV files. <span class="_ _1"></span> <span class="_ _0"></span>Also<span class="_ _1"></span> availab<span class="_ _1"></span>le <span class="_ _1"></span>is</div><div class="t m0 x6 h2 yd ff1 fs0 fc0 sc0 ls0 ws0">a<span class="_ _1"></span> <span class="_ _1"></span>parser<span class="_ _0"></span>,<span class="_ _1"></span> <span class="_ _2"></span>which<span class="_ _1"></span> <span class="_ _2"></span>generates<span class="_ _1"></span> <span class="_ _1"></span>a<span class="_ _1"></span> <span class="_ _2"></span>CSV <span class="_ _2"></span>report<span class="_ _1"></span> <span class="_ _2"></span>given<span class="_ _1"></span> <span class="_ _1"></span>sensor<span class="_ _1"></span> <span class="_ _2"></span>data<span class="_ _1"></span> <span class="_ _1"></span>and<span class="_ _1"></span> <span class="_ _2"></span>config<span class="_ _1"></span> <span class="_ _2"></span>files<span class="_ _1"></span> <span class="_ _1"></span>(command<span class="_ _1"></span> <span class="_ _2"></span>line<span class="_ _1"></span> <span class="_ _2"></span>ar<span class="_ _3"></span>guments).</div><div class="t m0 x6 h2 ye ff1 fs0 fc0 sc0 ls0 ws0">T<span class="_ _4"></span>o aid<span class="_ _1"></span> future deve<span class="_ _1"></span>lopment, the <span class="_ _1"></span>Matlab source<span class="_ _1"></span> is included<span class="_ _1"></span> within <span class="_ _1"></span>the project. <span class="_ _1"></span> <span class="_ _0"></span>A<span class="_ _0"></span> common <span class="_ _1"></span>code directory</div><div class="t m0 x6 h2 yf ff1 fs0 fc0 sc0 ls0 ws0">contains<span class="_ _1"></span> <span class="_ _1"></span>functions<span class="_ _1"></span> <span class="_ _1"></span>that<span class="_ _1"></span> <span class="_ _1"></span>can<span class="_ _1"></span> <span class="_ _1"></span>aid<span class="_ _1"></span> in<span class="_ _2"></span> <span class="_ _1"></span>system <span class="_ _2"></span>integration<span class="_ _1"></span> <span class="_ _1"></span>and <span class="_ _2"></span>applications<span class="_ _1"></span> <span class="_ _1"></span>development.<span class="_ _1"></span> <span class="_ _2"></span> <span class="_ _1"></span>Last,<span class="_ _1"></span> <span class="_ _1"></span>testing<span class="_ _1"></span> <span class="_ _1"></span>code</div><div class="t m0 x6 h2 y10 ff1 fs0 fc0 sc0 ls0 ws0">and guide lines<span class="_ _1"></span> are available for<span class="_ _1"></span> maintenance purposes. <span class="_ _1"></span> <span class="_ _0"></span>This<span class="_ _1"></span> user guide will<span class="_ _1"></span> provide information on a<span class="_ _1"></span>ll</div><div class="t m0 x6 h2 y11 ff1 fs0 fc0 sc0 ls0 ws0">these project components.</div><div class="t m0 x6 h3 y12 ff2 fs0 fc0 sc0 ls0 ws0">IMU Cor<span class="_ _3"></span>e</div><div class="t m0 x6 h2 y13 ff1 fs0 fc0 sc0 ls0 ws0">The core<span class="_ _1"></span> consists of<span class="_ _1"></span> the <span class="_ _1"></span>modules needed <span class="_ _1"></span>to calibrate,<span class="_ _1"></span> correct,<span class="_ _1"></span> and process<span class="_ _1"></span> sensor data.<span class="_ _1"></span> <span class="_ _0"></span>All <span class="_ _1"></span>the modules</div><div class="t m0 x6 h2 y1 ff1 fs0 fc0 sc0 ls0 ws0">are<span class="_ _1"></span> <span class="_ _1"></span>integrated<span class="_ _2"></span> <span class="_ _1"></span>into<span class="_ _1"></span> <span class="_ _2"></span>the<span class="_ _1"></span> <span class="_ _1"></span>engine<span class="_ _2"></span> <span class="_ _1"></span>(IMU_engn),<span class="_ _1"></span> <span class="_ _1"></span>which<span class="_ _2"></span> <span class="_ _1"></span>provides<span class="_ _1"></span> <span class="_ _2"></span>asynchronous,<span class="_ _1"></span> <span class="_ _1"></span>non-blocking<span class="_ _2"></span> <span class="_ _1"></span>sensor/output</div><div class="t m0 x6 h2 y14 ff1 fs0 fc0 sc0 ls0 ws0">interfaces,<span class="_ _2"></span> <span class="_ _5"></span>manages<span class="_ _2"></span> <span class="_ _5"></span>module<span class="_ _2"></span> <span class="_ _5"></span>configurations,<span class="_ _2"></span> <span class="_ _2"></span>and<span class="_ _5"></span> <span class="_ _2"></span>provides<span class="_ _5"></span> <span class="_ _2"></span>command<span class="_ _5"></span> <span class="_ _2"></span>and<span class="_ _2"></span> <span class="_ _5"></span>control.<span class="_ _2"></span> <span class="_ _2"></span>The<span class="_ _5"></span> <span class="_ _2"></span>algorithm<span class="_ _5"></span> <span class="_ _2"></span>guts,</div><div class="t m0 x6 h2 y2 ff1 fs0 fc0 sc0 ls0 ws0">which<span class="_ _1"></span> <span class="_ _2"></span>performs<span class="_ _1"></span> <span class="_ _2"></span>filtering,<span class="_ _1"></span> <span class="_ _2"></span>generates<span class="_ _1"></span> <span class="_ _2"></span>estimates,<span class="_ _1"></span> <span class="_ _2"></span>and<span class="_ _1"></span> <span class="_ _2"></span>creates<span class="_ _2"></span> <span class="_ _1"></span>figure<span class="_ _2"></span> <span class="_ _1"></span>of<span class="_ _1"></span> <span class="_ _2"></span>merits<span class="_ _2"></span> <span class="_ _1"></span>data<span class="_ _1"></span> <span class="_ _2"></span>is<span class="_ _1"></span> <span class="_ _2"></span>done<span class="_ _1"></span> <span class="_ _2"></span>by<span class="_ _1"></span> <span class="_ _2"></span>IMU_core.</div><div class="t m0 x6 h2 y3 ff1 fs0 fc0 sc0 ls0 ws0">Sensor corre<span class="_ _1"></span>ction, used <span class="_ _1"></span>to <span class="_ _1"></span>compensate for<span class="_ _1"></span> subtle<span class="_ _1"></span> response di<span class="_ _1"></span>f<span class="_ _0"></span>ferences,<span class="_ _1"></span> is<span class="_ _1"></span> applied <span class="_ _1"></span>via IMU_rect.<span class="_ _1"></span> <span class="_ _1"></span> These</div><div class="t m0 x6 h2 y15 ff1 fs0 fc0 sc0 ls0 ws0">coefficients<span class="_ _1"></span> <span class="_ _2"></span>can<span class="_ _2"></span> <span class="_ _2"></span>be<span class="_ _2"></span> <span class="_ _2"></span>generated<span class="_ _2"></span> <span class="_ _2"></span>by<span class="_ _2"></span> <span class="_ _2"></span>IMU_calb,<span class="_ _2"></span> <span class="_ _2"></span>which<span class="_ _2"></span> <span class="_ _5"></span>takes<span class="_ _1"></span> <span class="_ _2"></span>user-directed,<span class="_ _1"></span> <span class="_ _2"></span>mul<span class="_ _1"></span>ti-point<span class="_ _1"></span> <span class="_ _2"></span>calibr<span class="_ _1"></span>ation<span class="_ _1"></span> <span class="_ _2"></span>inputs,</div><div class="t m0 x6 h2 y4 ff1 fs0 fc0 sc0 ls0 ws0">created<span class="_ _1"></span> <span class="_ _2"></span>by<span class="_ _1"></span> <span class="_ _2"></span>IMU_pnts,<span class="_ _1"></span> <span class="_ _1"></span>or<span class="_ _2"></span> <span class="_ _2"></span>continuous,<span class="_ _1"></span> <span class="_ _2"></span>background<span class="_ _1"></span> <span class="_ _2"></span>data<span class="_ _1"></span> <span class="_ _2"></span>generated<span class="_ _1"></span> <span class="_ _2"></span>by<span class="_ _1"></span> <span class="_ _2"></span>IMU_stat.<span class="_ _1"></span> <span class="_ _5"></span> <span class="_ _2"></span>Module<span class="_ _1"></span> <span class="_ _1"></span>configur<span class="_ _1"></span>ation</div><div class="t m0 x6 h2 y5 ff1 fs0 fc0 sc0 ls0 ws0">can by <span class="_ _1"></span>done via <span class="_ _1"></span>IMU_file, which reads/writes <span class="_ _1"></span>json files. This <span class="_ _1"></span>overview is <span class="_ _1"></span>capture in the<span class="_ _1"></span> block diagram</div><div class="t m0 x6 h2 y16 ff1 fs0 fc0 sc0 ls0 ws0">below<span class="_ _4"></span>. </div></div><div class="pi" data-data='{"ctm":[1.568627,0.000000,0.000000,1.568627,0.000000,0.000000]}'></div></div>