EgalYue / Mobile_Marker_Based_Navigation

2 stars 3 forks source link

Modified A* search algorithm, comparing with Artificial potential fields #14

Open EgalYue opened 6 years ago

EgalYue commented 6 years ago

I modified the A*, adding condition number to heuristic function: https://github.com/EgalYue/Mobile_Marker_Based_Navigation/blob/889976964e5a54d424c0edfbfcd5bb66b0c8aa9a/python/pathFinding/A_star_modified.py#L158

Currently I set d_diagnoal = 14, d_straight=10 which avoiding to compute the float, and set *_condNum = condNum 50_, i enlarge the condition number 50 times because we need to find a balance between h and condtion number(after many simulations i found 50** is a proper factor) https://github.com/EgalYue/Mobile_Marker_Based_Navigation/blob/889976964e5a54d424c0edfbfcd5bb66b0c8aa9a/python/pathFinding/A_star_modified.py#L157

compare_different_paths fixed_paths

position_error_ euclidean_distance

compare_different_paths

compare_r_error_and_t_error_of_different_paths

distance error: snapshot

R error: snapshot2

t error: snapshot3

I also implemented the idea just like you told me, mapping the condition number from 0 to 1 and set the undetected region as 1, but this idea seems not work now, i guess i need to set d_diagnoal = 1.4, d_straight=1.0 and also need to add a factor before h, just like following equation:

*h = factor h_normal + condNum**