Skip to content

Instantly share code, notes, and snippets.

@xaedes
Created July 31, 2016 22:11
Show Gist options
  • Save xaedes/d46fe87aee7c690f0f8cad121674c4d3 to your computer and use it in GitHub Desktop.
Save xaedes/d46fe87aee7c690f0f8cad121674c4d3 to your computer and use it in GitHub Desktop.
ins stabilization.pxd with flow chart
import numpy as np
cimport numpy as np
from ins_stabilization.algorithms.indirect_filter cimport *
# """
# +----------------+ estimated velocity
# | |
# acceleration +---------------> Indirect +----------------------------+
# | Wiener Process | |
# velocity +---------------> Filter | |
# | | |
# +----------------+ |
# |
# |
# +----------------+ estimated orientation |
# | | |
# angular velocity +-----------> Indirect +-------------------------+ |
# | Wiener Process | | |
# magnetometer orientation +-^-> Filter | | |
# | | | | |
# | +----------------+ | |
# additional orientation aid + | |
# +------------+ | |
# | <----+ |
# +-----------------------------+ resolution | |
# | carthesian | <-------+
# | velocity +------------+
# |
# |
# | +----------------+ estimated position
# | | |
# +----> Indirect +--------------------->
# | Wiener Process |
# position aid +--------------> Filter |
# | |
# +----------------+
# """
cdef struct InsInput:
double time
double sensor_acceleration
double sensor_velocity
double sensor_angular_velocity
double sensor_orientation
cdef struct InsCorrectionInput:
double time
Vector2 sensor_position
cdef struct InsState:
IndirectWienerFilterState velocity
IndirectWienerFilterState orientation
IndirectWienerFilterState2 position
cdef struct InsParams:
IndirectWienerFilterParams velocity
IndirectWienerFilterParams orientation
IndirectWienerFilterParams2 position
cdef initial_state(InsState* out)
cdef default_params(InsParams* out)
cdef update_ins(
InsParams* params,
InsInput* input,
InsState* state,
InsState* out)
cdef correct_ins(
InsParams* params,
InsCorrectionInput* input,
InsState* state,
InsState* out)
cdef double get_orientation(InsState* state)
cdef double get_x(InsState* state)
cdef double get_y(InsState* state)
cdef double get_velocity(InsState* state)
cdef void copy_state(InsState* state, InsState* out)
cdef calibrate_ins(np.ndarray[double,ndim=2] ins_inputs,
np.ndarray[double,ndim=2] reference,
InsParams* out)
cpdef calibrate_ins_dict(np.ndarray[double,ndim=2] ins_inputs,
np.ndarray[double,ndim=2] reference)
cdef calibrate_ins_from_dict(object params_dict, InsParams* out)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment