1414import  scipy .spatial 
1515import  matplotlib .pyplot  as  plt 
1616import  reeds_shepp_path_planning  as  rs 
17+ import  heapq 
1718
1819EXTEND_AREA  =  5.0   # [m] 
20+ H_COST  =  1.0 
1921
2022show_animation  =  True 
2123
2224
2325class  Node :
24-     """ 
25-     Node 
26-     """ 
2726
2827    def  __init__ (self , xind , yind , yawind , direction , x , y , yaw , directions , steer , cost , pind ):
2928        # store kd-tree 
@@ -117,7 +116,7 @@ def hybrid_a_star_planning(start, goal, ox, oy, xyreso, yawreso):
117116    start [2 ], goal [2 ] =  rs .pi_2_pi (start [2 ]), rs .pi_2_pi (goal [2 ])
118117    tox , toy  =  ox [:], oy [:]
119118
120-     obkdtree  =  KDTree (np .vstack ((tox , toy )).T )
119+     #   obkdtree = KDTree(np.vstack((tox, toy)).T)
121120
122121    c  =  Config (tox , toy , xyreso , yawreso )
123122
@@ -126,11 +125,35 @@ def hybrid_a_star_planning(start, goal, ox, oy, xyreso, yawreso):
126125    ngoal  =  Node (int (goal [0 ] /  xyreso ), int (goal [1 ] /  xyreso ), int (goal [2 ] /  yawreso ),
127126                 True , [goal [0 ]], [goal [1 ]], [goal [2 ]], [True ], 0.0 , 0.0 , - 1 )
128127
128+     openList , closedList  =  {}, {}
129+     h  =  []
130+     #  goalqueue = queue.PriorityQueue() 
131+     pq  =  []
132+     openList [calc_index (nstart , c )] =  nstart 
133+     heapq .heappush (pq , (calc_index (nstart , c ), calc_cost (nstart , h , ngoal , c )))
134+ 
129135    rx , ry , ryaw  =  [], [], []
130136
131137    return  rx , ry , ryaw 
132138
133139
140+ def  calc_cost (n , h , ngoal , c ):
141+ 
142+     hcost  =  1.0 
143+ 
144+     return  (n .cost  +  H_COST  *  hcost )
145+ 
146+ 
147+ def  calc_index (node , c ):
148+     ind  =  (node .yawind  -  c .minyaw ) *  c .xw  *  c .yw  +  \
149+         (node .yind  -  c .miny ) *  c .xw  +  (node .xind  -  c .minx )
150+ 
151+     if  ind  <=  0 :
152+         print ("Error(calc_index):" , ind )
153+ 
154+     return  ind 
155+ 
156+ 
134157def  main ():
135158    print ("Start rrt start planning" )
136159    # ====Search Path with RRT==== 
0 commit comments