Added generation to manual_control and generate_traffic
This commit is contained in:
parent
63227ba665
commit
bb8e6b08c5
|
@ -29,6 +29,25 @@ import argparse
|
|||
import logging
|
||||
from numpy import random
|
||||
|
||||
def get_actor_blueprints(world, filter, generation):
|
||||
bps = world.get_blueprint_library().filter(filter)
|
||||
|
||||
if generation == "All":
|
||||
return bps
|
||||
|
||||
try:
|
||||
int_generation = int(generation)
|
||||
# Check if generation is in available generations
|
||||
if int_generation in [1, 2]:
|
||||
bps = [x for x in bps if int(x.get_attribute('generation')) == int_generation]
|
||||
return bps
|
||||
else:
|
||||
print(" Warning! Actor Generation is not valid. No actor will be spawned.")
|
||||
return []
|
||||
except:
|
||||
print(" Warning! Actor Generation is not valid. No actor will be spawned.")
|
||||
return []
|
||||
|
||||
def main():
|
||||
argparser = argparse.ArgumentParser(
|
||||
description=__doc__)
|
||||
|
@ -64,11 +83,21 @@ def main():
|
|||
metavar='PATTERN',
|
||||
default='vehicle.*',
|
||||
help='Filter vehicle model (default: "vehicle.*")')
|
||||
argparser.add_argument(
|
||||
'--generationv',
|
||||
metavar='G',
|
||||
default='All',
|
||||
help='restrict to certain vehicle generation (values: "1","2","All" - default: "2")')
|
||||
argparser.add_argument(
|
||||
'--filterw',
|
||||
metavar='PATTERN',
|
||||
default='walker.pedestrian.*',
|
||||
help='Filter pedestrian type (default: "walker.pedestrian.*")')
|
||||
argparser.add_argument(
|
||||
'--generationw',
|
||||
metavar='G',
|
||||
default='2',
|
||||
help='restrict to certain pedestrian generation (values: "1","2","All" - default: "2")')
|
||||
argparser.add_argument(
|
||||
'--tm-port',
|
||||
metavar='P',
|
||||
|
@ -152,8 +181,8 @@ def main():
|
|||
settings.no_rendering_mode = True
|
||||
world.apply_settings(settings)
|
||||
|
||||
blueprints = world.get_blueprint_library().filter(args.filterv)
|
||||
blueprintsWalkers = world.get_blueprint_library().filter(args.filterw)
|
||||
blueprints = get_actor_blueprints(world, args.filterv, args.generationv)
|
||||
blueprintsWalkers = get_actor_blueprints(world, args.filterw, args.generationw)
|
||||
|
||||
if args.safe:
|
||||
blueprints = [x for x in blueprints if int(x.get_attribute('number_of_wheels')) == 4]
|
||||
|
|
|
@ -156,6 +156,26 @@ def get_actor_display_name(actor, truncate=250):
|
|||
name = ' '.join(actor.type_id.replace('_', '.').title().split('.')[1:])
|
||||
return (name[:truncate - 1] + u'\u2026') if len(name) > truncate else name
|
||||
|
||||
def get_actor_blueprints(world, filter, generation):
|
||||
bps = world.get_blueprint_library().filter(filter)
|
||||
|
||||
if generation == "All":
|
||||
return bps
|
||||
|
||||
try:
|
||||
int_generation = int(generation)
|
||||
# Check if generation is in available generations
|
||||
if int_generation in [1, 2]:
|
||||
bps = [x for x in bps if int(x.get_attribute('generation')) == int_generation]
|
||||
return bps
|
||||
else:
|
||||
print(" Warning! Actor Generation is not valid. No actor will be spawned.")
|
||||
return []
|
||||
except:
|
||||
print(" Warning! Actor Generation is not valid. No actor will be spawned.")
|
||||
return []
|
||||
|
||||
|
||||
# ==============================================================================
|
||||
# -- World ---------------------------------------------------------------------
|
||||
# ==============================================================================
|
||||
|
@ -184,6 +204,7 @@ class World(object):
|
|||
self._weather_presets = find_weather_presets()
|
||||
self._weather_index = 0
|
||||
self._actor_filter = args.filter
|
||||
self._actor_generation = args.generation
|
||||
self._gamma = args.gamma
|
||||
self.restart()
|
||||
self.world.on_tick(hud.on_world_tick)
|
||||
|
@ -213,7 +234,7 @@ class World(object):
|
|||
cam_index = self.camera_manager.index if self.camera_manager is not None else 0
|
||||
cam_pos_index = self.camera_manager.transform_index if self.camera_manager is not None else 0
|
||||
# Get a random blueprint.
|
||||
blueprint = random.choice(self.world.get_blueprint_library().filter(self._actor_filter))
|
||||
blueprint = random.choice(get_actor_blueprints(self.world, self._actor_filter, self._actor_generation))
|
||||
blueprint.set_attribute('role_name', self.actor_role_name)
|
||||
if blueprint.has_attribute('color'):
|
||||
color = random.choice(blueprint.get_attribute('color').recommended_values)
|
||||
|
@ -1235,6 +1256,11 @@ def main():
|
|||
metavar='PATTERN',
|
||||
default='vehicle.*',
|
||||
help='actor filter (default: "vehicle.*")')
|
||||
argparser.add_argument(
|
||||
'--generation',
|
||||
metavar='G',
|
||||
default='2',
|
||||
help='restrict to certain actor generation (values: "1","2","All" - default: "2")')
|
||||
argparser.add_argument(
|
||||
'--rolename',
|
||||
metavar='NAME',
|
||||
|
|
Loading…
Reference in New Issue