Velocity, acceleration and jerk: Difference between revisions

From wikiluntti
Line 62: Line 62:
== Theory ==
== Theory ==


The time derivative of position is velocity, then we have acceleration, and the derivative of acceleration is called jerk. Then we have snap, crackle and pop.
The time derivative of position is velocity, then we have acceleration, and the derivative of acceleration is called jerk, <math>j</math>.  
<math>
<math>
\frac{d a}{dt} = j
\frac{d a}{dt} = j
</math>
Then we have snap, crackle and pop.
See the Wikipedia page on the [https://en.wikipedia.org/wiki/Jerk_%28physics%29#Physiological_effects_and_human_perception physiological_effects] of jerk. Anyway, there might be jerky rides.
We measure the acceleration of robot, and use a numerical differential method to estimate the jerk. We use the symmetric differential;
<math>
j(t) =
\frac{d a}{dt} = j
= \frac{f(t-h) + f(t+h)}{2h}
</math>
</math>



Revision as of 20:02, 24 September 2020

Introduction

The Newton force rule states that force and acceleration are proportionally related. Is it possible to accelerate without noticing the jerk? The method is used in elevators, for example, and hopefully in modern (electric) cars.

We consider the acceleration the robot is subjected to while accelerating it using different acceleration functions.


Robot

Almost any robot will be ok, we use Asimov 2/ Verne.

Sensor

The Vernier acceleration sensor with the NXT Adapter is used. The sensor is attached to port number 4.

Very simple test program to see what are the measured values is shown below. The values are in arbitrary scale, and need to be normalized. We found, that the

#!/usr/bin/env python3
# https://sites.google.com/site/ev3devpython/

from ev3dev2.sensor import *
from ev3dev2.sensor import INPUT_4

import time
import os
import csv 

os.system('setfont Lat15-TerminusBold32x16')  # Try this larger font

p = Sensor( INPUT_4 )
p.mode="ANALOG-1"

def measureAcc(p):
    acc = p.value(0)
    return acc

f = open('acc.csv',"w")
writer = csv.writer(f) 
tstep = 0.001

while True:
    acc = measureAcc(p)
    print( acc )
    writer.writerow((time.time(), acc ))
    time.sleep( tstep )

The resulted file acc.csv is then manually downloaded into a computer, and plotted using Python Pandas:

import pandas as pd
import matplotlib.pyplot as plt

# Read CSV file into DataFrame df
df = pd.read_csv('acc.csv', index_col=0)

# Show thedataframe
print(df)
plt.plot(df)

Theory

The time derivative of position is velocity, then we have acceleration, and the derivative of acceleration is called jerk, . Then we have snap, crackle and pop.

See the Wikipedia page on the physiological_effects of jerk. Anyway, there might be jerky rides.

We measure the acceleration of robot, and use a numerical differential method to estimate the jerk. We use the symmetric differential;

Example Codes

Exercises