diff --git a/carla_real_traffic_scenarios/artificial_lane_change/lane_change_scenario.py b/carla_real_traffic_scenarios/artificial_lane_change/lane_change_scenario.py index 448fc11..2ee38ee 100644 --- a/carla_real_traffic_scenarios/artificial_lane_change/lane_change_scenario.py +++ b/carla_real_traffic_scenarios/artificial_lane_change/lane_change_scenario.py @@ -84,7 +84,7 @@ def __init__(self, *, client: carla.Client, cmd_for_changing_lane=ChauffeurComma self._env_vehicle_column_ahead_range_m = (5, 30) route_length_m = max(MAX_MANEUVER_LENGTH_M + BIRD_VIEW_HEIGHT_M, - max_env_vehicles_number * (MAX_VEHICLE_RANDOM_SPACE_M + VEHICLE_SLOT_LENGTH_M)) * 2 + max_env_vehicles_number * (MAX_VEHICLE_RANDOM_SPACE_M + VEHICLE_SLOT_LENGTH_M)) * 3 self._topology = Topology(self._world_map) self._routes: List[List[carla.Transform]] = self._obtain_routes(self._target_lane_waypoint, route_length_m) @@ -115,6 +115,7 @@ def _spawn_env_vehicles(self, n: int): blueprints = self._world.get_blueprint_library().filter('vehicle.*') blueprints = [b for b in blueprints if int(b.get_attribute('number_of_wheels')) == 4] spawn_points = self._world_map.get_spawn_points() + max_ticks = 4 def _get_env_vehicles(): return [ @@ -122,6 +123,14 @@ def _get_env_vehicles(): if v.attributes.get('role_name') != 'hero' and v.is_alive ] + def _wait_for_env_vehicles(total_number, max_ticks): + env_vehicles = _get_env_vehicles() + while len(env_vehicles) < total_number and max_ticks > 0: + self._world.tick() + max_ticks -= 1 + env_vehicles = _get_env_vehicles() + return env_vehicles + env_vehicles = _get_env_vehicles() missing_vehicles = n - len(env_vehicles) while missing_vehicles: @@ -131,7 +140,7 @@ def _get_env_vehicles(): random.sample(spawn_points, k=missing_vehicles)) ] self._client.apply_batch_sync(cmds, do_tick=True) - env_vehicles = _get_env_vehicles() + env_vehicles = _wait_for_env_vehicles(n, max_ticks) missing_vehicles = n - len(env_vehicles) return env_vehicles diff --git a/setup.py b/setup.py index 57399cc..5ff452a 100755 --- a/setup.py +++ b/setup.py @@ -10,7 +10,7 @@ setup( name='carla_real_traffic_scenarios', - version='0.2.0', + version='0.2.1', long_description=readme, author='TODO', author_email='TODO',