pyins.sim.generate_sine_velocity_motion

pyins.sim.generate_sine_velocity_motion(dt, total_time, lla0, velocity_mean, velocity_change_amplitude=0, velocity_change_period=60, velocity_change_phase_offset=[0, 90, 0], sensor_type='rate')

Generate trajectory with NED velocity changing as sine.

The NED velocity changes as:

V = V_mean + V_ampl * sin(2 * pi * t / period + phase_offset)

Roll is set to zero, pitch and heading angles are computed with zero lateral and vertical velocity assumptions.

Parameters:
dtfloat

Time step.

total_timefloat

Total motion time.

lla0array_like, shape (3,)

Initial latitude, longitude and altitude.

velocity_meanarray_like, shape (3,)

Mean velocity resolved in NED.

velocity_change_amplitudearray_like, optional

Velocity change amplitude. Default is 0.

velocity_change_periodfloat, optional

Period of sinusoidal velocity change in seconds. Default is 60.

velocity_change_phase_offsetarray_like, shape (3,), optional

Phase offset for sinusoid part in degrees. Default is [0, 90, 0] which will create an ellipse for latitude-longitude trajectory when the mean velocity is zero.

sensor_type: ‘rate’ or ‘increment’, optional

Type of sensor to generate. If ‘rate’ (default), then instantaneous rate values are generated (in rad/s and m/s^2). If ‘increment’, then integrals over sampling intervals are generated (in rad and m/s).

Returns:
trajectoryTrajectory

Trajectory dataframe with n rows.

imuImu

IMU dataframe with n rows. When sensor_type is ‘increment’ the first sample is duplicated for more convenient future processing.