diff --git a/src/map.py b/src/map.py index 457403b..e14d160 100644 --- a/src/map.py +++ b/src/map.py @@ -156,7 +156,7 @@ class Map: if __name__ == '__main__': - map = Map('real_map.png') - # map = Map('sim_map.png') + map = Map('maps/real_map.png') + # map = Map('maps/sim_map.png') plt.imshow(np.flipud(map.data), cmap='gray') plt.show() diff --git a/src/reference_path.py b/src/reference_path.py index 03805d4..0b90cfd 100644 --- a/src/reference_path.py +++ b/src/reference_path.py @@ -118,7 +118,7 @@ class ReferencePath: # Number of waypoints n_wp = [int(np.sqrt((wp_x[i + 1] - wp_x[i]) ** 2 + (wp_y[i + 1] - wp_y[i]) ** 2) / - self.resolution) for i in range(len(wp_x) - 1)] + self.resolution) for i in range(len(wp_x) - 1)] # Construct waypoints with specified resolution gp_x, gp_y = wp_x[-1], wp_y[-1] @@ -656,7 +656,7 @@ if __name__ == '__main__': if path == 'Sim_Track': # Load map file - map = Map(file_path='sim_map.png', origin=[-1, -2], resolution=0.005) + map = Map(file_path='maps/sim_map.png', origin=[-1, -2], resolution=0.005) # Specify waypoints wp_x = [-0.75, -0.25, -0.25, 0.25, 0.25, 1.25, 1.25, 0.75, 0.75, 1.25, @@ -687,7 +687,7 @@ if __name__ == '__main__': elif path == 'Real_Track': # Load map file - map = Map(file_path='real_map.png', origin=(-30.0, -24.0), + map = Map(file_path='maps/real_map.png', origin=(-30.0, -24.0), resolution=0.06) # Specify waypoints @@ -727,8 +727,9 @@ if __name__ == '__main__': print('Invalid path!') exit(1) - ub, lb, border_cells = reference_path.update_path_constraints(0, - reference_path.n_waypoints, 0.1, 0.01) + ub, lb, border_cells = \ + reference_path.update_path_constraints(0, reference_path.n_waypoints, + 0.1, 0.01) SpeedProfileConstraints = {'a_min': -0.1, 'a_max': 0.5, 'v_min': 0, 'v_max': 1.0, 'ay_max': 4.0} reference_path.compute_speed_profile(SpeedProfileConstraints) diff --git a/src/simulation.py b/src/simulation.py index 676bc92..3a0c609 100644 --- a/src/simulation.py +++ b/src/simulation.py @@ -17,7 +17,8 @@ if __name__ == '__main__': if sim_mode == 'Sim_Track': # Load map file - map = Map(file_path='sim_map.png', origin=[-1, -2], resolution=0.005) + map = Map(file_path='maps/sim_map.png', origin=[-1, -2], + resolution=0.005) # Specify waypoints wp_x = [-0.75, -0.25, -0.25, 0.25, 0.25, 1.25, 1.25, 0.75, 0.75, 1.25, @@ -34,7 +35,7 @@ if __name__ == '__main__': circular=True) # Add obstacles - use_obstacles = False + use_obstacles = True if use_obstacles: obs1 = Obstacle(cx=0.0, cy=0.0, radius=0.05) obs2 = Obstacle(cx=-0.8, cy=-0.5, radius=0.08) @@ -50,14 +51,14 @@ if __name__ == '__main__': # Instantiate motion model car = BicycleModel(length=0.12, width=0.06, - reference_path=reference_path, Ts=0.05) + reference_path=reference_path, Ts=0.05) # Real-World Environment. Track used for testing the algorithm on a 1:12 # RC car. elif sim_mode == 'Real_Track': # Load map file - map = Map(file_path='real_map.png', origin=(-30.0, -24.0), + map = Map(file_path='maps/real_map.png', origin=(-30.0, -24.0), resolution=0.06) # Specify waypoints @@ -132,18 +133,18 @@ if __name__ == '__main__': # Until arrival at end of path while car.s < reference_path.length: - # get control signals + # Get control signals u = mpc.get_control() - # drive car + # Simulate car car.drive(u) - # log + # Log car state x_log.append(car.temporal_state.x) y_log.append(car.temporal_state.y) v_log.append(u[0]) - # Increase simulation time + # Increment simulation time t += car.Ts # Plot path and drivable area diff --git a/src/spatial_bicycle_models.py b/src/spatial_bicycle_models.py index 0df8390..0b770ca 100644 --- a/src/spatial_bicycle_models.py +++ b/src/spatial_bicycle_models.py @@ -1,13 +1,11 @@ import numpy as np from abc import abstractmethod - try: from abc import ABC except: # for Python 2.7 from abc import ABCMeta - class ABC(object): __metaclass__ = ABCMeta pass