Example #1
0
def main():
    print("Input custom string?")
    run = pda.PDA()
    answer = input("Type 'Y' or 'N': ").upper()
    if answer == 'Y':
        while answer == 'Y':
            print("This program accepts a string input for a pushdown automata")
            string = input("String input (don't forget the '$'): ").lower()
            run.pushdown(string)
            print('\n New string input?')
            answer = input("Type 'Y' or 'N': ").upper()
    else:
        print("Here are some example strings:")
        input_strings = []
        for i in range(1, 11):
            input_strings.append('a'*i+'b'*i+'$')
        for t in input_strings:
            run.pushdown(t)
Example #2
0
clutter_intensity = 4 / (4000 * 4000)
gate_size = 5

useTurnRateModel = True

if useTurnRateModel:
    sigma_a = 4  # works really well with sigma_omega = 0.1
    dynamic_model = dynamicmodels.ConstantTurnrate(sigma_a, sigma_omega)
else:  # constant velocity model
    sigma_a = 2
    dynamic_model = dynamicmodels.WhitenoiseAccelleration(sigma_a, n=5)

measurement_model = measurementmodels.CartesianPosition(sigma_z, state_dim=5)
ekf_filter = ekf.EKF(dynamic_model, measurement_model)

tracker = pda.PDA(ekf_filter, clutter_intensity, PD, gate_size)

# allocate
NEES = np.zeros(K)
NEESpos = np.zeros(K)
NEESvel = np.zeros(K)

# initialize
x_bar_init = np.array([7100, 3620, 0, 0, 0])

P_bar_init = np.diag([40, 40, 10, 10, 0.1])**2

#init_state = tracker.init_filter_state({"mean": x_bar_init, "cov": P_bar_init})
init_state = GaussParams(x_bar_init, P_bar_init)

tracker_update = init_state
Example #3
0
# make model
measurement_model = measurementmodels.CartesianPosition(sigma_z, state_dim=5)
dynamic_models: List[dynamicmodels.DynamicModel] = []
dynamic_models.append(dynamicmodels.WhitenoiseAccelleration(sigma_a_CV, n=5))
dynamic_models.append(dynamicmodels.ConstantTurnrate(sigma_a_CT, sigma_omega))
<<<<<<< Updated upstream
dynamic_models.append(dynamicmodels.WhitenoiseAccelleration(sigma_a_CV_H, n=5))

ekf_filters = []
ekf_filters.append(ekf.EKF(dynamic_models[0], measurement_model))
ekf_filters.append(ekf.EKF(dynamic_models[1], measurement_model))
imm_filter1 = imm.IMM(ekf_filters, PI1)
ekf_filters.append(ekf.EKF(dynamic_models[2], measurement_model))
imm_filter2 = imm.IMM(ekf_filters, PI2)
tracker1 = pda.PDA(imm_filter1, clutter_intensity, PD, gate_size)
tracker2 = pda.PDA(imm_filter2, clutter_intensity, PD, gate_size)
=======
dynamic_models.append(dynamicmodels.WhitenoiseAccelleration(sigma_a_CV_HIGH, n=5)) #ADDED AV NADIA!!!

ekf_filters1 = []
ekf_filters1.append(ekf.EKF(dynamic_models[0], measurement_model))
ekf_filters1.append(ekf.EKF(dynamic_models[1], measurement_model))
imm_filter1 = imm.IMM(ekf_filters, PI)

#CV, CT and CV_high
PI2 = tunes... (?????)

ekf_filters2 = []
ekf_filters2.append(ekf.EKF(dynamic_models[0], measurement_model))
ekf_filters2.append(ekf.EKF(dynamic_models[1], measurement_model))
mean_init = Xgt[0]
mean_init = np.append(mean_init, 0.1)
cov_init = np.diag([sigma_z, sigma_z, 3, 3, 0.1]) ** 2

# make model
measurement_model = measurementmodels.CartesianPosition(sigma_z, state_dim=5)
dynamic_models: List[dynamicmodels.DynamicModel] = []
dynamic_models.append(dynamicmodels.WhitenoiseAccelleration(sigma_a_CV, n=5))
dynamic_models.append(dynamicmodels.ConstantTurnrate(sigma_a_CT, sigma_omega))
ekf_filters = []
ekf_filters.append(ekf.EKF(dynamic_models[0], measurement_model))
ekf_filters.append(ekf.EKF(dynamic_models[1], measurement_model))

trackers = []
trackers.append(pda.PDA(ekf_filters[0], clutter_intensity, PD, gate_size)) # EKF CV
trackers.append(pda.PDA(ekf_filters[1], clutter_intensity, PD, gate_size)) # EKF CT

names = ["CV_EKF", "CT_EKF"]

init_ekf_state = GaussParams(mean_init, cov_init)
# init_imm_pda_state = tracker.init_filter_state(init_ekf_state)

NEES = np.zeros(K)
NEESpos = np.zeros(K)
NEESvel = np.zeros(K)

tracker_update_init = [init_ekf_state, init_ekf_state]
tracker_update_list = np.empty((len(trackers), len(Xgt)), dtype=MixtureParameters)
tracker_predict_list = np.empty((len(trackers), len(Xgt)), dtype=MixtureParameters)
tracker_estimate_list = np.empty((len(trackers), len(Xgt)), dtype=MixtureParameters)