<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> <meta http-equiv="X-UA-Compatible" content="IE=9"/> <meta name="generator" content="Doxygen 1.8.16"/> <meta name="viewport" content="width=device-width, initial-scale=1"/> <title>RcdMathLib_doc: magnetic_based_position.h Source File</title> <link href="tabs.css" rel="stylesheet" type="text/css"/> <script type="text/javascript" src="jquery.js"></script> <script type="text/javascript" src="dynsections.js"></script> <link href="navtree.css" rel="stylesheet" type="text/css"/> <script type="text/javascript" src="resize.js"></script> <script type="text/javascript" src="navtreedata.js"></script> <script type="text/javascript" src="navtree.js"></script> <script type="text/javascript"> /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ $(document).ready(initResizable); /* @license-end */</script> <link href="search/search.css" rel="stylesheet" type="text/css"/> <script type="text/javascript" src="search/searchdata.js"></script> <script type="text/javascript" src="search/search.js"></script> <link href="doxygen.css" rel="stylesheet" type="text/css" /> </head> <body> <div id="top"><!-- do not remove this div, it is closed by doxygen! --> <div id="titlearea"> <table cellspacing="0" cellpadding="0"> <tbody> <tr style="height: 56px;"> <td id="projectalign" style="padding-left: 0.5em;"> <div id="projectname">RcdMathLib_doc </div> <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> </td> </tr> </tbody> </table> </div> <!-- end header part --> <!-- Generated by Doxygen 1.8.16 --> <script type="text/javascript"> /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ var searchBox = new SearchBox("searchBox", "search",false,'Search'); /* @license-end */ </script> <script type="text/javascript" src="menudata.js"></script> <script type="text/javascript" src="menu.js"></script> <script type="text/javascript"> /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ $(function() { initMenu('',true,false,'search.php','Search'); $(document).ready(function() { init_search(); }); }); /* @license-end */</script> <div id="main-nav"></div> </div><!-- top --> <div id="side-nav" class="ui-resizable side-nav-resizable"> <div id="nav-tree"> <div id="nav-tree-contents"> <div id="nav-sync" class="sync"></div> </div> </div> <div id="splitbar" style="-moz-user-select:none;" class="ui-resizable-handle"> </div> </div> <script type="text/javascript"> /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ $(document).ready(function(){initNavTree('magnetic__based__position_8h_source.html','');}); /* @license-end */ </script> <div id="doc-content"> <!-- window showing the filter options --> <div id="MSearchSelectWindow" onmouseover="return searchBox.OnSearchSelectShow()" onmouseout="return searchBox.OnSearchSelectHide()" onkeydown="return searchBox.OnSearchSelectKey(event)"> </div> <!-- iframe showing the search results (closed by default) --> <div id="MSearchResultsWindow"> <iframe src="javascript:void(0)" frameborder="0" name="MSearchResults" id="MSearchResults"> </iframe> </div> <div class="header"> <div class="headertitle"> <div class="title">magnetic_based_position.h</div> </div> </div><!--header--> <div class="contents"> <a href="magnetic__based__position_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/*</span></div> <div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> * Copyright (C) 2020 Zakaria Kasmi <zkasmi@inf.fu-berlin.de></span></div> <div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"> * 2020 Freie Universität Berlin</span></div> <div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> *</span></div> <div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> * This file is subject to the terms and conditions of the GNU Lesser General</span></div> <div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> * Public License v2.1. See the file LICENSE in the top level directory for more</span></div> <div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"> * details.</span></div> <div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment"> */</span></div> <div class="line"><a name="l00009"></a><span class="lineno"> 9</span>  </div> <div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor">#ifndef MAGNETIC_BASED_POSITION_H_</span></div> <div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="preprocessor">#define MAGNETIC_BASED_POSITION_H_</span></div> <div class="line"><a name="l00026"></a><span class="lineno"> 26</span>  </div> <div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="preprocessor">#include <inttypes.h></span></div> <div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="preprocessor">#include <math.h></span></div> <div class="line"><a name="l00029"></a><span class="lineno"> 29</span>  </div> <div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="preprocessor">#include "<a class="code" href="matrix_8h.html">matrix.h</a>"</span></div> <div class="line"><a name="l00031"></a><span class="lineno"> 31</span>  </div> <div class="line"><a name="l00035"></a><span class="lineno"><a class="line" href="magnetic__based__position_8h.html#a73d113d91ab7ec355ca707cc930eb718"> 35</a></span> <span class="preprocessor">#define I0 15</span></div> <div class="line"><a name="l00036"></a><span class="lineno"> 36</span>  </div> <div class="line"><a name="l00040"></a><span class="lineno"><a class="line" href="magnetic__based__position_8h.html#af9cccf331f045b89a9f12366df5f7687"> 40</a></span> <span class="preprocessor">#define NW 140</span></div> <div class="line"><a name="l00041"></a><span class="lineno"> 41</span>  </div> <div class="line"><a name="l00045"></a><span class="lineno"><a class="line" href="magnetic__based__position_8h.html#a30ab9da60435727bc80839d416461b8f"> 45</a></span> <span class="preprocessor">#define R0 0.25</span></div> <div class="line"><a name="l00046"></a><span class="lineno"> 46</span>  </div> <div class="line"><a name="l00050"></a><span class="lineno"><a class="line" href="magnetic__based__position_8h.html#a598a3330b3c21701223ee0ca14316eca"> 50</a></span> <span class="preprocessor">#define PI 3.14159265358979323846</span></div> <div class="line"><a name="l00051"></a><span class="lineno"> 51</span>  </div> <div class="line"><a name="l00055"></a><span class="lineno"><a class="line" href="magnetic__based__position_8h.html#a6f98ae7b0908254a0dfd1627e652bebe"> 55</a></span> <span class="preprocessor">#define AR PI * R0 * R0 //Loop area</span></div> <div class="line"><a name="l00056"></a><span class="lineno"> 56</span>  </div> <div class="line"><a name="l00060"></a><span class="lineno"><a class="line" href="magnetic__based__position_8h.html#a0fa11f33bdb89b468b60f19395381cc4"> 60</a></span> <span class="preprocessor">#define MU0 4 * PI * 1E-7 //TGm/A</span></div> <div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  </div> <div class="line"><a name="l00065"></a><span class="lineno"><a class="line" href="magnetic__based__position_8h.html#a97d832ae23af4f215e801e37e4f94254"> 65</a></span> <span class="preprocessor">#define K MU0 * NW * I0 * AR / (4 * PI)</span></div> <div class="line"><a name="l00066"></a><span class="lineno"> 66</span>  </div> <div class="line"><a name="l00070"></a><span class="lineno"><a class="line" href="magnetic__based__position_8h.html#a544d6868e9b6cf4f9b9db9e1ad413691"> 70</a></span> <span class="preprocessor">#define MG_TO_T 1E7</span></div> <div class="line"><a name="l00071"></a><span class="lineno"> 71</span>  </div> <div class="line"><a name="l00075"></a><span class="lineno"><a class="line" href="magnetic__based__position_8h.html#a3ee4ec231172a5fd866f72acead15bc4"> 75</a></span> <span class="preprocessor">#define K_T K * MG_TO_T</span></div> <div class="line"><a name="l00076"></a><span class="lineno"> 76</span>  </div> <div class="line"><a name="l00080"></a><span class="lineno"><a class="line" href="magnetic__based__position_8h.html#a2ab193fcd7e0bc8f46ce92c3299b99bc"> 80</a></span> <span class="preprocessor">#define MILPS_MAX_DIST 25</span></div> <div class="line"><a name="l00081"></a><span class="lineno"> 81</span>  </div> <div class="line"><a name="l00092"></a><span class="lineno"> 92</span> <span class="keywordtype">void</span> <a class="code" href="magnetic__based__position_8h.html#ad5a7513337486e277ea028480403569d">magnetic_based_get_absolute_error</a>(<a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> value_arr[],</div> <div class="line"><a name="l00093"></a><span class="lineno"> 93</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> approx_value_arr[],</div> <div class="line"><a name="l00094"></a><span class="lineno"> 94</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> absolute_error_arr[],</div> <div class="line"><a name="l00095"></a><span class="lineno"> 95</span>  uint8_t length);</div> <div class="line"><a name="l00096"></a><span class="lineno"> 96</span>  </div> <div class="line"><a name="l00109"></a><span class="lineno"> 109</span> <span class="keywordtype">void</span> <a class="code" href="magnetic__based__position_8h.html#ae584dff239a0111c47b7c5d1e197af59">magnetic_based_get_distances</a>(<a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> magnetic_field_strength_arr[],</div> <div class="line"><a name="l00110"></a><span class="lineno"> 110</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> angular_theta_arr[],</div> <div class="line"><a name="l00111"></a><span class="lineno"> 111</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> distance_arr[], uint8_t length,</div> <div class="line"><a name="l00112"></a><span class="lineno"> 112</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> k);</div> <div class="line"><a name="l00113"></a><span class="lineno"> 113</span>  </div> <div class="line"><a name="l00125"></a><span class="lineno"> 125</span> <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> <a class="code" href="magnetic__based__position_8h.html#a01bb024303e8eb202a19dbd70b291c06">magnetic_based_get_r</a>(<a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> B, <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> theta, <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> k);</div> <div class="line"><a name="l00126"></a><span class="lineno"> 126</span>  </div> <div class="line"><a name="l00137"></a><span class="lineno"> 137</span> <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> <a class="code" href="magnetic__based__position_8h.html#ac852e4c0dcb8e9901aa3fab5efd91599">magnetic_based_get_distances_to_anchors</a>(<a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> ref_point[3],</div> <div class="line"><a name="l00138"></a><span class="lineno"> 138</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> point[3]);</div> <div class="line"><a name="l00149"></a><span class="lineno"> 149</span> <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> <a class="code" href="magnetic__based__position_8h.html#a361f3f3c4f9516a1aa6107367ebfda8d">magnetic_based_get_magnetic_field</a>(<a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> ref_point[3],</div> <div class="line"><a name="l00150"></a><span class="lineno"> 150</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> target_point[3],</div> <div class="line"><a name="l00151"></a><span class="lineno"> 151</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> k);</div> <div class="line"><a name="l00163"></a><span class="lineno"> 163</span> <span class="keywordtype">void</span> <a class="code" href="magnetic__based__position_8h.html#aac026f28838a5b30c8f6f189e3ab354c">magnetic_based_get_magnetic_field_vec</a>(uint8_t m,</div> <div class="line"><a name="l00164"></a><span class="lineno"> 164</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> ref_point_matrix[m][3],</div> <div class="line"><a name="l00165"></a><span class="lineno"> 165</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> target_point[],</div> <div class="line"><a name="l00166"></a><span class="lineno"> 166</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> k,</div> <div class="line"><a name="l00167"></a><span class="lineno"> 167</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> magn_field_vec[]);</div> <div class="line"><a name="l00168"></a><span class="lineno"> 168</span>  </div> <div class="line"><a name="l00182"></a><span class="lineno"> 182</span> <span class="keywordtype">void</span> <a class="code" href="magnetic__based__position_8h.html#af316f67cb87759b57bc815326b8d1cef">magnetic_based_preprocessing_get_position</a>(uint8_t anchor_num,</div> <div class="line"><a name="l00183"></a><span class="lineno"> 183</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> anchor_pos_matrix[anchor_num][3],</div> <div class="line"><a name="l00184"></a><span class="lineno"> 184</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> pseudo_inv_matrix[4][anchor_num],</div> <div class="line"><a name="l00185"></a><span class="lineno"> 185</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> homog_sol_arr[],</div> <div class="line"><a name="l00186"></a><span class="lineno"> 186</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> solution_x1[],</div> <div class="line"><a name="l00187"></a><span class="lineno"> 187</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> solution_x2[]);</div> <div class="line"><a name="l00188"></a><span class="lineno"> 188</span>  </div> <div class="line"><a name="l00189"></a><span class="lineno"> 189</span> <span class="preprocessor">#endif </span><span class="comment">/* MAGNETIC_BASED_POSITION_H_ */</span><span class="preprocessor"></span></div> </div><!-- fragment --></div><!-- contents --> </div><!-- doc-content --> <div class="ttc" id="amagnetic__based__position_8h_html_ac852e4c0dcb8e9901aa3fab5efd91599"><div class="ttname"><a href="magnetic__based__position_8h.html#ac852e4c0dcb8e9901aa3fab5efd91599">magnetic_based_get_distances_to_anchors</a></div><div class="ttdeci">matrix_t magnetic_based_get_distances_to_anchors(matrix_t ref_point[3], matrix_t point[3])</div><div class="ttdoc">Computes the distance between a mobile station and a reference station of magnetic-based localization...</div><div class="ttdef"><b>Definition:</b> <a href="magnetic__based__position_8c_source.html#l00050">magnetic_based_position.c:50</a></div></div> <div class="ttc" id="amatrix_8h_html"><div class="ttname"><a href="matrix_8h.html">matrix.h</a></div><div class="ttdoc">Matrix computations.</div></div> <div class="ttc" id="amagnetic__based__position_8h_html_ae584dff239a0111c47b7c5d1e197af59"><div class="ttname"><a href="magnetic__based__position_8h.html#ae584dff239a0111c47b7c5d1e197af59">magnetic_based_get_distances</a></div><div class="ttdeci">void magnetic_based_get_distances(matrix_t magnetic_field_strength_arr[], matrix_t angular_theta_arr[], matrix_t distance_arr[], uint8_t length, matrix_t k)</div><div class="ttdoc">Computes the distances between a mobile station and the reference stations of a magnet-based localiza...</div><div class="ttdef"><b>Definition:</b> <a href="magnetic__based__position_8c_source.html#l00125">magnetic_based_position.c:125</a></div></div> <div class="ttc" id="amagnetic__based__position_8h_html_aac026f28838a5b30c8f6f189e3ab354c"><div class="ttname"><a href="magnetic__based__position_8h.html#aac026f28838a5b30c8f6f189e3ab354c">magnetic_based_get_magnetic_field_vec</a></div><div class="ttdeci">void magnetic_based_get_magnetic_field_vec(uint8_t m, matrix_t ref_point_matrix[m][3], matrix_t target_point[], matrix_t k, matrix_t magn_field_vec[])</div><div class="ttdoc">Computes the magnetic field strengths from a mobile station to various reference stations.</div><div class="ttdef"><b>Definition:</b> <a href="magnetic__based__position_8c_source.html#l00091">magnetic_based_position.c:91</a></div></div> <div class="ttc" id="amagnetic__based__position_8h_html_af316f67cb87759b57bc815326b8d1cef"><div class="ttname"><a href="magnetic__based__position_8h.html#af316f67cb87759b57bc815326b8d1cef">magnetic_based_preprocessing_get_position</a></div><div class="ttdeci">void magnetic_based_preprocessing_get_position(uint8_t anchor_num, matrix_t anchor_pos_matrix[anchor_num][3], matrix_t pseudo_inv_matrix[4][anchor_num], matrix_t homog_sol_arr[], matrix_t solution_x1[], matrix_t solution_x2[])</div><div class="ttdoc">Computes the position of a mobile station by a magnetic-based localization system.</div><div class="ttdef"><b>Definition:</b> <a href="magnetic__based__position_8c_source.html#l00188">magnetic_based_position.c:188</a></div></div> <div class="ttc" id="amatrix_8h_html_af38ac6b76d645fea9abd6caeb4d9dd31"><div class="ttname"><a href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a></div><div class="ttdeci">#define matrix_t</div><div class="ttdoc">Define the data type of the matrix elements.</div><div class="ttdef"><b>Definition:</b> <a href="matrix_8h_source.html#l00038">matrix.h:38</a></div></div> <div class="ttc" id="amagnetic__based__position_8h_html_a01bb024303e8eb202a19dbd70b291c06"><div class="ttname"><a href="magnetic__based__position_8h.html#a01bb024303e8eb202a19dbd70b291c06">magnetic_based_get_r</a></div><div class="ttdeci">matrix_t magnetic_based_get_r(matrix_t B, matrix_t theta, matrix_t k)</div><div class="ttdoc">Computes the distance between a mobile station and a reference stations of a magnet-based localizatio...</div><div class="ttdef"><b>Definition:</b> <a href="magnetic__based__position_8c_source.html#l00166">magnetic_based_position.c:166</a></div></div> <div class="ttc" id="amagnetic__based__position_8h_html_ad5a7513337486e277ea028480403569d"><div class="ttname"><a href="magnetic__based__position_8h.html#ad5a7513337486e277ea028480403569d">magnetic_based_get_absolute_error</a></div><div class="ttdeci">void magnetic_based_get_absolute_error(matrix_t value_arr[], matrix_t approx_value_arr[], matrix_t absolute_error_arr[], uint8_t length)</div><div class="ttdoc">Computes the absolute error of a position of magnet-based localization system.</div><div class="ttdef"><b>Definition:</b> <a href="magnetic__based__position_8c_source.html#l00034">magnetic_based_position.c:34</a></div></div> <div class="ttc" id="amagnetic__based__position_8h_html_a361f3f3c4f9516a1aa6107367ebfda8d"><div class="ttname"><a href="magnetic__based__position_8h.html#a361f3f3c4f9516a1aa6107367ebfda8d">magnetic_based_get_magnetic_field</a></div><div class="ttdeci">matrix_t magnetic_based_get_magnetic_field(matrix_t ref_point[3], matrix_t target_point[3], matrix_t k)</div><div class="ttdoc">Computes the magnetic field strength from a mobile station to a reference station.</div><div class="ttdef"><b>Definition:</b> <a href="magnetic__based__position_8c_source.html#l00062">magnetic_based_position.c:62</a></div></div> <!-- start footer part --> <div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> <ul> <li class="navelem"><a class="el" href="dir_ca7b3fe3a5c68321cdadecc73cd5d1a0.html">localization</a></li><li class="navelem"><a class="el" href="dir_fdc176930829c278cabf5fddd85dbef8.html">position_algos</a></li><li class="navelem"><a class="el" href="dir_9f6bed594baf424ccac6ba79953e888e.html">magnetic_based</a></li><li class="navelem"><a class="el" href="dir_b8d2d01ff28d5da2ee9069d013a4a508.html">include</a></li><li class="navelem"><a class="el" href="magnetic__based__position_8h.html">magnetic_based_position.h</a></li> <li class="footer">Generated by <a href="http://www.doxygen.org/index.html"> <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> </ul> </div> </body> </html>