Note that there are some explanatory texts on larger screens.

plurals
  1. POCalculating distance using Linear acceleration android
    primarykey
    data
    text
    <blockquote> <p><strong>Possible Duplicate:</strong><br> <a href="https://stackoverflow.com/questions/7829097/android-accelerometer-accuracy-inertial-navigation">Android accelerometer accuracy (Inertial navigation)</a> </p> </blockquote> <p>I am using the following code to calculate the distance. <code>tnew</code> and <code>anew</code> are <code>arraylists</code> containing <strong>timestamps</strong> and <strong>accelerations</strong> respectively. </p> <pre><code> double distance=0; double init_vel=0; long time_prev=tnew.next(); while(anew.hasNext()) { float temp_acc=anew.next(); long temp_time=tnew.next(); interval=(temp_time-time_prev)/1000f; //milliseconds to seconds double fin_vel=init_vel+(temp_acc*interval); distance+=(init_vel*interval)+0.5f*temp_acc*interval*interval; init_vel=fin_vel; time_prev=temp_time; } </code></pre> <p><br> Is there any logical mistake in the code? Because I am getting values much smaller than the actual length. <br><br> Output of <code>LogCat</code> : <br></p> <pre><code>--------- beginning of /dev/log/system --------- beginning of /dev/log/main V/PhonetapeActivity( 8842): Sensor Listener Registered V/PhonetapeActivity( 8842): Sensor Unregistered V/PhonetapeActivity( 8842): No. of Iterations : 49 V/PhonetapeActivity( 8842): Value of acceleration : 3.5762787E-7 V/PhonetapeActivity( 8842): Value of timestamp(milli) : 1350665585965 V/PhonetapeActivity( 8842): Value of acceleration : -0.15275347 V/PhonetapeActivity( 8842): Value of timestamp(milli) : 1350665586017 V/PhonetapeActivity( 8842): Value of acceleration : 0.15585232 V/PhonetapeActivity( 8842): Value of timestamp(milli) : 1350665586077 V/PhonetapeActivity( 8842): Value of acceleration : 1.075269 V/PhonetapeActivity( 8842): Value of timestamp(milli) : 1350665586138 V/PhonetapeActivity( 8842): Value of acceleration : 3.6529458 V/PhonetapeActivity( 8842): Value of timestamp(milli) : 1350665586199 V/PhonetapeActivity( 8842): Value of acceleration : 9.645137 V/PhonetapeActivity( 8842): Value of timestamp(milli) : 1350665586257 V/PhonetapeActivity( 8842): Value of acceleration : 17.022213 V/PhonetapeActivity( 8842): Value of timestamp(milli) : 1350665586316 V/PhonetapeActivity( 8842): Value of acceleration : 9.721476 V/PhonetapeActivity( 8842): Value of timestamp(milli) : 1350665586376 V/PhonetapeActivity( 8842): Value of acceleration : -18.729362 V/PhonetapeActivity( 8842): Value of timestamp(milli) : 1350665586437 V/PhonetapeActivity( 8842): Value of acceleration : -22.868385 V/PhonetapeActivity( 8842): Value of timestamp(milli) : 1350665586497 V/PhonetapeActivity( 8842): Value of acceleration : -16.777517 V/PhonetapeActivity( 8842): Value of timestamp(milli) : 1350665586557 V/PhonetapeActivity( 8842): Value of acceleration : -7.0492268 V/PhonetapeActivity( 8842): Value of timestamp(milli) : 1350665586617 V/PhonetapeActivity( 8842): Value of acceleration : -3.860828 V/PhonetapeActivity( 8842): Value of timestamp(milli) : 1350665586677 V/PhonetapeActivity( 8842): Value of acceleration : 1.7244682 V/PhonetapeActivity( 8842): Value of timestamp(milli) : 1350665586737 V/PhonetapeActivity( 8842): Value of acceleration : 5.0734243 V/PhonetapeActivity( 8842): Value of timestamp(milli) : 1350665586797 V/PhonetapeActivity( 8842): Value of acceleration : 6.4193974 V/PhonetapeActivity( 8842): Value of timestamp(milli) : 1350665586857 V/PhonetapeActivity( 8842): Value of acceleration : 2.739545 V/PhonetapeActivity( 8842): Value of timestamp(milli) : 1350665586917 V/PhonetapeActivity( 8842): Value of acceleration : 5.559997 V/PhonetapeActivity( 8842): Value of timestamp(milli) : 1350665586977 V/PhonetapeActivity( 8842): Value of acceleration : 4.2290807 V/PhonetapeActivity( 8842): Value of timestamp(milli) : 1350665587037 V/PhonetapeActivity( 8842): Value of acceleration : 5.0012918 V/PhonetapeActivity( 8842): Value of timestamp(milli) : 1350665587097 V/PhonetapeActivity( 8842): Value of acceleration : 5.9317436 V/PhonetapeActivity( 8842): Value of timestamp(milli) : 1350665587157 V/PhonetapeActivity( 8842): Value of acceleration : 5.20226 V/PhonetapeActivity( 8842): Value of timestamp(milli) : 1350665587217 V/PhonetapeActivity( 8842): Value of acceleration : 7.1381693 V/PhonetapeActivity( 8842): Value of timestamp(milli) : 1350665587276 V/PhonetapeActivity( 8842): Value of acceleration : 7.6460614 V/PhonetapeActivity( 8842): Value of timestamp(milli) : 1350665587337 V/PhonetapeActivity( 8842): Value of acceleration : 5.566694 V/PhonetapeActivity( 8842): Value of timestamp(milli) : 1350665587396 V/PhonetapeActivity( 8842): Value of acceleration : 3.355657 V/PhonetapeActivity( 8842): Value of timestamp(milli) : 1350665587457 V/PhonetapeActivity( 8842): Value of acceleration : 1.8876343 V/PhonetapeActivity( 8842): Value of timestamp(milli) : 1350665587517 V/PhonetapeActivity( 8842): Value of acceleration : -0.8815446 V/PhonetapeActivity( 8842): Value of timestamp(milli) : 1350665587577 V/PhonetapeActivity( 8842): Value of acceleration : -0.9595623 V/PhonetapeActivity( 8842): Value of timestamp(milli) : 1350665587646 V/PhonetapeActivity( 8842): Value of acceleration : -4.233544 V/PhonetapeActivity( 8842): Value of timestamp(milli) : 1350665587697 V/PhonetapeActivity( 8842): Value of acceleration : -1.9580669 V/PhonetapeActivity( 8842): Value of timestamp(milli) : 1350665587765 V/PhonetapeActivity( 8842): Value of acceleration : -1.4569702 V/PhonetapeActivity( 8842): Value of timestamp(milli) : 1350665587822 V/PhonetapeActivity( 8842): Value of acceleration : -0.6058636 V/PhonetapeActivity( 8842): Value of timestamp(milli) : 1350665587876 V/PhonetapeActivity( 8842): Value of acceleration : -0.21207428 V/PhonetapeActivity( 8842): Value of timestamp(milli) : 1350665587937 V/PhonetapeActivity( 8842): Value of acceleration : 0.5068469 V/PhonetapeActivity( 8842): Value of timestamp(milli) : 1350665587997 V/PhonetapeActivity( 8842): Value of acceleration : 5.614555 V/PhonetapeActivity( 8842): Value of timestamp(milli) : 1350665588057 V/PhonetapeActivity( 8842): Value of acceleration : -4.5297813 V/PhonetapeActivity( 8842): Value of timestamp(milli) : 1350665588122 V/PhonetapeActivity( 8842): Value of acceleration : -0.29250193 V/PhonetapeActivity( 8842): Value of timestamp(milli) : 1350665588178 V/PhonetapeActivity( 8842): Value of acceleration : -2.4922757 V/PhonetapeActivity( 8842): Value of timestamp(milli) : 1350665588237 V/PhonetapeActivity( 8842): Value of acceleration : -1.7652755 V/PhonetapeActivity( 8842): Value of timestamp(milli) : 1350665588297 V/PhonetapeActivity( 8842): Value of acceleration : -2.3279366 V/PhonetapeActivity( 8842): Value of timestamp(milli) : 1350665588357 V/PhonetapeActivity( 8842): Value of acceleration : -1.8127642 V/PhonetapeActivity( 8842): Value of timestamp(milli) : 1350665588419 V/PhonetapeActivity( 8842): Value of acceleration : -1.956768 V/PhonetapeActivity( 8842): Value of timestamp(milli) : 1350665588477 V/PhonetapeActivity( 8842): Value of acceleration : -0.8337221 V/PhonetapeActivity( 8842): Value of timestamp(milli) : 1350665588537 V/PhonetapeActivity( 8842): Value of acceleration : -0.24841261 V/PhonetapeActivity( 8842): Value of timestamp(milli) : 1350665588601 V/PhonetapeActivity( 8842): Value of acceleration : 0.23997736 V/PhonetapeActivity( 8842): Value of timestamp(milli) : 1350665588657 V/PhonetapeActivity( 8842): Value of acceleration : 0.14441395 V/PhonetapeActivity( 8842): Value of timestamp(milli) : 1350665588723 V/PhonetapeActivity( 8842): Value of acceleration : 0.23150349 V/PhonetapeActivity( 8842): Value of timestamp(milli) : 1350665588777 V/PhonetapeActivity( 8842): 1st while loop ended V/PhonetapeActivity( 8842): 2nd while loop ended V/PhonetapeActivity( 8842): Avg value : 0.4006781578063965 V/PhonetapeActivity( 8842): Max Value : 17.022213 V/PhonetapeActivity( 8842): Min Value : -22.868385 V/PhonetapeActivity( 8842): Standard Deviation : -0.0031174493 V/PhonetapeActivity( 8842): 3rd while loop started V/PhonetapeActivity( 8842): startpos=3 endpos=8 V/PhonetapeActivity( 8842): acceleration=0.1558523178100586 interval=0.061000000685453415 V/PhonetapeActivity( 8842): distance=5.799264876044276E-4 V/PhonetapeActivity( 8842): next init velocity=0.009506991493243078 V/PhonetapeActivity( 8842): acceleration=1.0752689838409424 interval=0.061000000685453415 V/PhonetapeActivity( 8842): distance=0.005160928954000712 V/PhonetapeActivity( 8842): next init velocity=0.07509840024458736 V/PhonetapeActivity( 8842): acceleration=3.6529457569122314 interval=0.057999998331069946 V/PhonetapeActivity( 8842): distance=0.021805144861910285 V/PhonetapeActivity( 8842): next init velocity=0.2869692480489858 V/PhonetapeActivity( 8842): acceleration=9.645136833190918 interval=0.05900000035762787 V/PhonetapeActivity( 8842): distance=0.07231105232279186 V/PhonetapeActivity( 8842): next init velocity=0.8560323246566197 V/PhonetapeActivity( 8842): acceleration=17.022212982177734 interval=0.05999999865889549 V/PhonetapeActivity( 8842): distance=0.18495295465057213 V/PhonetapeActivity( 8842): next init velocity=1.8773650807587172 V/PhonetapeActivity( 8842): 3rd while loop ended V/PhonetapeActivity( 8842): final distance=0.18495295465057213 V/PhonetapeActivity( 8842): values of acceleration, timestamp, distance, start_time and calibrating reset </code></pre> <p><br> If you observe the logcat, first it iterates through 49 values of acceleration and their respective time stamps in milliseconds. Then there is a avg, sum, max, min etc. <bR> Then if you see there is a <code>startpos=3</code> and <code>endpos=8</code>. This is the iteration number range, I am using to calculate the distance .i.e I am using the values of acceleration and timestamp only from iteration 3 to 8. <br>This is because, I detect the start of distance calculation from a <strong>rise in acceleration</strong> to a <strong>sudden change</strong> in the opposite direction. You can see that the values from 3-8 fit into the logic. From 3 there is a considerable rise in acceleration and after 8 there is a sudden decrease.</p>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload