Showing 1 of 1 files from the diff.

@@ -15,6 +15,7 @@
Loading
15 15
use_jump_point = True
16 16
17 17
beam_capacity = 30
18 +
max_theta = 25
18 19
only_corners = False
19 20
w, epsilon, upper_bound_depth = 1, 4, 500
20 21
@@ -160,12 +161,14 @@
Loading
160 161
        i_temp, j_temp = i, j
161 162
        counter = 1
162 163
        got_goal = False
163 -
        while not self.obs_grid[(x + i_temp, y + j_temp)]:
164 +
        while not self.obs_grid[(x + i_temp, y + j_temp)] and \
165 +
                counter < max_theta:
164 166
            i_temp += i
165 167
            j_temp += j
166 168
            counter += 1
167 169
            if [x + i_temp, y + j_temp] == self.goal_pt:
168 170
                got_goal = True
171 +
                break
169 172
            if (x + i_temp, y + j_temp) not in self.obs_grid.keys():
170 173
                break
171 174
        return i_temp - 2*i, j_temp - 2*j, counter, got_goal
@@ -277,13 +280,14 @@
Loading
277 280
        elif use_dynamic_weighting:
278 281
            plt.title('A* with dynamic weighting')
279 282
        elif use_theta_star:
280 -
            plt.title('Theta *')
283 +
            plt.title('Theta*')
281 284
        else:
282 285
            plt.title('A*')
283 286
284 287
        goal_found = False
285 288
        curr_f_thresh = np.inf
286 289
        depth = 0
290 +
        no_valid_f = False
287 291
        while len(self.open_set) > 0:
288 292
            self.open_set = sorted(self.open_set, key=lambda x: x['fcost'])
289 293
            lowest_f = self.open_set[0]['fcost']
@@ -310,13 +314,16 @@
Loading
310 314
            f_cost_list = []
311 315
            if use_dynamic_weighting:
312 316
                w = (1 + epsilon - epsilon*depth/upper_bound_depth)
313 -
            for i in [-1, 0, 1]:
314 -
                for j in [-1, 0, 1]:
317 +
            for i in range(-1, 2):
318 +
                for j in range(-1, 2):
315 319
                    x, y = current_node['pos']
316 320
                    if (i == 0 and j == 0) or \
317 321
                            ((x + i, y + j) not in self.obs_grid.keys()):
318 322
                        continue
319 -
                    offset = 10 if min(i, j) == 0 else 14
323 +
                    if (i, j) in [(1, 0), (0, 1), (-1, 0), (0, -1)]:
324 +
                        offset = 10
325 +
                    else:
326 +
                        offset = 14
320 327
                    if use_theta_star:
321 328
                        new_i, new_j, counter, goal_found = \
322 329
                            self.get_farthest_point(x, y, i, j)
@@ -360,6 +367,9 @@
Loading
360 367
                                self.open_set.append(self.all_nodes[cand_pt])
361 368
                                self.all_nodes[cand_pt]['in_open_list'] = True
362 369
                            plt.plot(cand_pt[0], cand_pt[1], "r*")
370 +
                        if curr_f_thresh < f_cost < \
371 +
                                self.all_nodes[cand_pt]['fcost']:
372 +
                            no_valid_f = True
363 373
                if goal_found:
364 374
                    break
365 375
            plt.pause(0.001)
@@ -384,6 +394,9 @@
Loading
384 394
                curr_f_thresh = min(f_cost_list)
385 395
            if use_iterative_deepening and not f_cost_list:
386 396
                curr_f_thresh = np.inf
397 +
            if use_iterative_deepening and not f_cost_list and no_valid_f:
398 +
                current_node['fcost'], current_node['hcost'] = np.inf, np.inf
399 +
                continue
387 400
388 401
            current_node['open'] = False
389 402
            current_node['in_open_list'] = False
Files Coverage
AerialNavigation/drone_3d_trajectory_following 92.35%
ArmNavigation 94.93%
Localization 89.79%
Mapping 90.46%
PathPlanning 86.32%
PathTracking 91.10%
SLAM 97.50%
tests 93.00%
Bipedal/bipedal_planner/bipedal_planner.py 85.53%
Project Totals (129 files) 88.78%

No yaml found.

Create your codecov.yml to customize your Codecov experience

Sunburst
The inner-most circle is the entire project, moving away from the center are folders then, finally, a single file. The size and color of each slice is representing the number of statements and the coverage, respectively.
Icicle
The top section represents the entire project. Proceeding with folders and finally individual files. The size and color of each slice is representing the number of statements and the coverage, respectively.
Grid
Each block represents a single file in the project. The size and color of each block is represented by the number of statements and the coverage, respectively.
Loading