Minor fixes
This commit is contained in:
parent
c84747676e
commit
f510803567
|
@ -280,53 +280,55 @@ def create_environment(world, sensors, n_vehicles, n_walkers, spawn_points, clie
|
|||
# some settings
|
||||
percentagePedestriansRunning = 0.0 # how many pedestrians will run
|
||||
percentagePedestriansCrossing = 0.0 # how many pedestrians will walk through the road
|
||||
# 1. take all the random locations to spawn
|
||||
spawn_points = []
|
||||
for i in range(n_walkers):
|
||||
spawn_point = carla.Transform()
|
||||
loc = world.get_random_location_from_navigation()
|
||||
if (loc != None):
|
||||
spawn_point.location = loc
|
||||
spawn_points.append(spawn_point)
|
||||
# 2. we spawn the walker object
|
||||
batch = []
|
||||
walker_speed = []
|
||||
for spawn_point in spawn_points:
|
||||
# set as not invincible
|
||||
if walker_bp.has_attribute('is_invincible'):
|
||||
walker_bp.set_attribute('is_invincible', 'false')
|
||||
# set the max speed
|
||||
if walker_bp.has_attribute('speed'):
|
||||
# walking
|
||||
walker_speed.append(walker_bp.get_attribute('speed').recommended_values[1])
|
||||
else:
|
||||
print("Walker has no speed")
|
||||
walker_speed.append(0.0)
|
||||
batch.append(SpawnActor(walker_bp, spawn_point))
|
||||
results = client.apply_batch_sync(batch, True)
|
||||
walker_speed2 = []
|
||||
for i in range(len(results)):
|
||||
if results[i].error:
|
||||
logging.error(results[i].error)
|
||||
else:
|
||||
walkers_list.append({"id": results[i].actor_id})
|
||||
walker_speed2.append(walker_speed[i])
|
||||
walker_speed = walker_speed2
|
||||
# 3. we spawn the walker controller
|
||||
batch = []
|
||||
walker_controller_bp = world.get_blueprint_library().find('controller.ai.walker')
|
||||
for i in range(len(walkers_list)):
|
||||
batch.append(SpawnActor(walker_controller_bp, carla.Transform(), walkers_list[i]["id"]))
|
||||
results = client.apply_batch_sync(batch, True)
|
||||
for i in range(len(results)):
|
||||
if results[i].error:
|
||||
logging.error(results[i].error)
|
||||
else:
|
||||
walkers_list[i]["con"] = results[i].actor_id
|
||||
# 4. we put altogether the walkers and controllers id to get the objects from their id
|
||||
for i in range(len(walkers_list)):
|
||||
all_id.append(walkers_list[i]["con"])
|
||||
all_id.append(walkers_list[i]["id"])
|
||||
if n_walkers > 0:
|
||||
# 1. take all the random locations to spawn
|
||||
spawn_points = []
|
||||
for i in range(n_walkers):
|
||||
spawn_point = carla.Transform()
|
||||
loc = world.get_random_location_from_navigation()
|
||||
if (loc != None):
|
||||
spawn_point.location = loc
|
||||
spawn_points.append(spawn_point)
|
||||
# 2. we spawn the walker object
|
||||
batch = []
|
||||
walker_speed = []
|
||||
for spawn_point in spawn_points:
|
||||
# set as not invincible
|
||||
if walker_bp.has_attribute('is_invincible'):
|
||||
walker_bp.set_attribute('is_invincible', 'false')
|
||||
# set the max speed
|
||||
if walker_bp.has_attribute('speed'):
|
||||
# walking
|
||||
walker_speed.append(walker_bp.get_attribute('speed').recommended_values[1])
|
||||
else:
|
||||
print("Walker has no speed")
|
||||
walker_speed.append(0.0)
|
||||
batch.append(SpawnActor(walker_bp, spawn_point))
|
||||
results = client.apply_batch_sync(batch, True)
|
||||
walker_speed2 = []
|
||||
for i in range(len(results)):
|
||||
if results[i].error:
|
||||
logging.error(results[i].error)
|
||||
else:
|
||||
walkers_list.append({"id": results[i].actor_id})
|
||||
walker_speed2.append(walker_speed[i])
|
||||
walker_speed = walker_speed2
|
||||
# 3. we spawn the walker controller
|
||||
batch = []
|
||||
walker_controller_bp = world.get_blueprint_library().find('controller.ai.walker')
|
||||
for i in range(len(walkers_list)):
|
||||
batch.append(SpawnActor(walker_controller_bp, carla.Transform(), walkers_list[i]["id"]))
|
||||
results = client.apply_batch_sync(batch, True)
|
||||
for i in range(len(results)):
|
||||
if results[i].error:
|
||||
logging.error(results[i].error)
|
||||
else:
|
||||
walkers_list[i]["con"] = results[i].actor_id
|
||||
# 4. we put altogether the walkers and controllers id to get the objects from their id
|
||||
for i in range(len(walkers_list)):
|
||||
all_id.append(walkers_list[i]["con"])
|
||||
all_id.append(walkers_list[i]["id"])
|
||||
|
||||
all_actors = world.get_actors(all_id)
|
||||
|
||||
# ensures client has received the last transform of the walkers we have just created
|
||||
|
@ -507,7 +509,7 @@ def main(args):
|
|||
|
||||
try:
|
||||
client = carla.Client(args.host, int(args.port))
|
||||
client.set_timeout(60.0)
|
||||
client.set_timeout(150.0)
|
||||
pygame.init()
|
||||
|
||||
records = {}
|
||||
|
@ -521,6 +523,7 @@ def main(args):
|
|||
|
||||
for town in maps:
|
||||
world = client.load_world(town)
|
||||
time.sleep(5)
|
||||
|
||||
# set to async mode
|
||||
set_world_settings(world)
|
||||
|
|
Loading…
Reference in New Issue