def test_invalid_weather( self ): # Check that the API/Unity properly handles unexpected inputs with SimConnection() as sim: rain = sim.weather.rain fog = sim.weather.fog wetness = sim.weather.wetness self.assertAlmostEqual(rain, 0) self.assertAlmostEqual(fog, 0) self.assertAlmostEqual(wetness, 0) sim.weather = lgsvl.WeatherState(rain=1.4, fog=-3, wetness="a") rain = sim.weather.rain fog = sim.weather.fog wetness = sim.weather.wetness self.assertAlmostEqual(rain, 1) self.assertAlmostEqual(fog, 0) self.assertAlmostEqual(wetness, 0) sim.weather = lgsvl.WeatherState(rain=True, fog=0, wetness=0) rain = sim.weather.rain self.assertAlmostEqual(rain, 0)
def test_reset_weather( self): # Check that reset sets the weather variables back to 0 with SimConnection() as sim: rain = sim.weather.rain fog = sim.weather.fog wetness = sim.weather.wetness self.assertAlmostEqual(rain, 0) self.assertAlmostEqual(fog, 0) self.assertAlmostEqual(wetness, 0) sim.weather = lgsvl.WeatherState(rain=0.5, fog=0.3, wetness=0.8) rain = sim.weather.rain fog = sim.weather.fog wetness = sim.weather.wetness self.assertAlmostEqual(rain, 0.5) self.assertAlmostEqual(fog, 0.3) self.assertAlmostEqual(wetness, 0.8) sim.reset() rain = sim.weather.rain fog = sim.weather.fog wetness = sim.weather.wetness self.assertAlmostEqual(rain, 0) self.assertAlmostEqual(fog, 0) self.assertAlmostEqual(wetness, 0)
def test_weather( self ): # Check that the weather state can be read properly and changed with SimConnection() as sim: rain = sim.weather.rain fog = sim.weather.fog wetness = sim.weather.wetness self.assertAlmostEqual(rain, 0) self.assertAlmostEqual(fog, 0) self.assertAlmostEqual(wetness, 0) sim.weather = lgsvl.WeatherState(rain=0.5, fog=0.3, wetness=0.8, cloudiness=0, damage=0) rain = sim.weather.rain fog = sim.weather.fog wetness = sim.weather.wetness self.assertAlmostEqual(rain, 0.5) self.assertAlmostEqual(fog, 0.3) self.assertAlmostEqual(wetness, 0.8)
def step(self, waypoint): ''' move npc to new waypoint, adjust to new weather and time of day return reward (1/ttc) & done ''' self.npc.follow([waypoint]) sim.weather = lgsvl.WeatherState(rain=self.rain_rate, fog=self.fog_rate, wetness=self.wetness_rate) # sim.set_time_of_day(self.timeofday) if self.collided: reward = 100 done = True else: reward = 1 / self.calculate_ttc() done = False return reward, done
sim = cf.Simulator() startTime = time.time() index = 1 while len(scenarios) > 0: before = time.time() cur = scenarios.pop(0) # Load Map cf.LoadOrResetScene(sim, "BorregasAve") # Weather if "Weather" in cur: sim.weather = lgsvl.WeatherState(cur["Weather"]["Rain"], cur["Weather"]["Fog"], cur["Weather"]["Wetness"]) # Weather if "Time" in cur: sim.set_time_of_day(cur["Time"]["TimeOfDay"]) # TrafficLight if "TrafficLight" not in cur: cf.All_Green_Light(sim) else: pass # TODO # Log duration and index print("scenario: ", index)
for time in time_of_day: for weatherInfo in weather: # ego vehicle state = copy.deepcopy(lgsvl.AgentState()) state.transform = copy.deepcopy(spawns[0]) state.velocity = ego_speed * forward ego = sim.add_agent("Lincoln2017MKZ (Apollo 5.0)", lgsvl.AgentType.EGO, state) print("ego spawn", state.transform) turn() #set time of day sim.set_time_of_day(time) #set weather of day ## rainy day sim.weather = lgsvl.WeatherState(rain=weatherInfo[0], fog=weatherInfo[1], wetness=weatherInfo[2]) vehicles = { ego: "EGO", } input("Press Enter to run next scenario") print("The time is {} ".format(time_of_day)) print("The weather condition is rain={}, fog={}, wetness={}".format(weatherInfo[0],weatherInfo[1],weatherInfo[2])) sim.run(time_limit = 8.0) sim.reset()
else: sim.load("BorregasAve") spawns = sim.get_spawn() state = lgsvl.AgentState() state.transform = spawns[0] sim.add_agent(env.str("LGSVL__VEHICLE_0", "Lincoln2017MKZ (Apollo 5.0)"), lgsvl.AgentType.EGO, state) print(sim.weather) input("Press Enter to set rain to 80%") # Each weather variable is a float from 0 to 1 # There is no default value so each varible must be specified sim.weather = lgsvl.WeatherState(rain=0.8, fog=0, wetness=0, cloudiness=0, damage=0) print(sim.weather) sim.run(5) input("Press Enter to set fog to 50%") sim.weather = lgsvl.WeatherState(rain=0, fog=0.5, wetness=0, cloudiness=0, damage=0) print(sim.weather) sim.run(5) input("Press Enter to set wetness to 50%") sim.weather = lgsvl.WeatherState(rain=0, fog=0, wetness=0.5, cloudiness=0, damage=0) print(sim.weather)
sim = cf.Simulator() cf.LoadOrResetScene(sim, "BorregasAve") spawns = sim.get_spawn() state = lgsvl.AgentState() state.transform = spawns[0] a = sim.add_agent("Lincoln2017MKZ (Apollo 5.0)", lgsvl.AgentType.EGO, state) print(sim.weather) input("Press Enter to set rain to 80%") # Each weather variable is a float from 0 to 1 # There is no default value so each varible must be specified sim.weather = lgsvl.WeatherState(rain=0.8, fog=0, wetness=0) print(sim.weather) sim.run(5) input("Press Enter to set fog to 50%") sim.weather = lgsvl.WeatherState(rain=0, fog=0.5, wetness=0) print(sim.weather) sim.run(5) input("Press Enter to set wetness to 50%") sim.weather = lgsvl.WeatherState(rain=0, fog=0, wetness=0.5) print(sim.weather)
import os import lgsvl sim = lgsvl.Simulator(os.environ.get("SIMULATOR_HOST", "127.0.0.1"), 8181) if sim.current_scene == "Borregas Avenue": sim.reset() else: sim.load("Borregas Avenue") spawns = sim.get_spawn() state = lgsvl.AgentState() state.transform = spawns[0] state.transform.position.y = state.transform.position.y state.transform.position.x = state.transform.position.x state.transform.position.z = state.transform.position.z forward = lgsvl.utils.transform_to_forward(spawns[0]) state.velocity = 5 * forward agent = sim.add_agent("Lexus", lgsvl.AgentType.EGO, state) agent.connect_bridge(os.environ.get("BRIDGE_HOST", "127.0.0.1"), 9090) sim.weather = lgsvl.WeatherState(rain=0.8, fog=0.6, wetness=0.6) sim.set_time_of_day(12) sim.run(time_limit=30.0)
print("Bridge connected:", ego.bridge_connected) # The EGO is now looking for a bridge at the specified IP and port ego.connect_bridge("127.0.0.1", 9090) print("Waiting for connection...") while not ego.bridge_connected: time.sleep(1) print("Bridge connected:", ego.bridge_connected) print("Initializing simulation") sim.run(1) input("Press Enter to run") sim.run(1) ttc() sim.run(1) ttc() input("Press Enter to change weather") sim.weather = lgsvl.WeatherState(rain=0.9, fog=0.3, wetness=0.1) sim.run(1) ttc() sim.run(1) ttc() sim.run(1) ttc() sim.run(1) ttc() sim.run(1) ttc() sim.run(1) ttc() sim.run(1) ttc() sim.run(1)
# Scenario cf = config.Config() sim = cf.Simulator() cf.LoadOrResetScene(sim, "BorregasAve") spawns = sim.get_spawn() state = lgsvl.AgentState() state.transform = spawns[0] a = sim.add_agent("Lincoln2017MKZ (Apollo 5.0)", lgsvl.AgentType.EGO, state) startTime = time.time() while len(queue) > 0: before = time.time() cur = queue.pop(0) sim.weather = lgsvl.WeatherState(cur["weather"]["rain"], cur["weather"]["fog"], cur["weather"]["wetness"]) print(sim.weather) sim.run(1) # Time of day can be set from 0 ... 24 sim.set_time_of_day(cur["time"]["time_of_day"]) print("Time of Day:", sim.time_of_day) sim.run(1) print("Time spent:", time.time() - before) print("Total time spent:", time.time() - startTime)
static_time = env.bool("LGSVL__TIME_STATIC", True) if date_time == "1970-01-01T00:00:00": time_of_day = clamp(env.float("LGSVL__TIME_OF_DAY", 12), 0, 24) sim.set_time_of_day(time_of_day, static_time) else: sim.set_date_time( datetime.strptime(date_time[:19], '%Y-%m-%dT%H:%M:%S'), static_time) rain = clamp(env.float("LGSVL__ENVIRONMENT_RAIN", 0), 0, 1) fog = clamp(env.float("LGSVL__ENVIRONMENT_FOG", 0), 0, 1) wetness = clamp(env.float("LGSVL__ENVIRONMENT_WETNESS", 0), 0, 1) cloudiness = clamp(env.float("LGSVL__ENVIRONMENT_CLOUDINESS", 0), 0, 1) damage = clamp(env.float("LGSVL__ENVIRONMENT_DAMAGE", 0), 0, 1) sim.weather = lgsvl.WeatherState(rain, fog, wetness, cloudiness, damage) spawns = sim.get_spawn() spawn_index = random.randrange(len(spawns)) state = lgsvl.AgentState() state.transform = spawns[ spawn_index] # TODO some sort of Env Variable so that user/wise can select from list ego = sim.add_agent( env.str("LGSVL__VEHICLE_0", lgsvl.wise.DefaultAssets.ego_lincoln2017mkz_apollo5_full_analysis), lgsvl.AgentType.EGO, state) # The EGO is now looking for a bridge at the specified IP and port BRIDGE_HOST = env.str("LGSVL__AUTOPILOT_0_HOST", "127.0.0.1") ego.connect_bridge(BRIDGE_HOST, env.int("LGSVL__AUTOPILOT_0_PORT", 9090))
3: { 'ego_speed': 5, 'weather': 1, 'npc_type': "SUV", 'npc_speed': 20.0 } } cf = config.Config() sim = cf.Simulator() cf.LoadOrResetScene(sim, "BorregasAve") cf.All_Green_Light(sim) for i in range(1, 4): sim.weather = lgsvl.WeatherState(rain=dict[i]['weather'], fog=0, wetness=0) spawns = sim.get_spawn() sx = spawns[0].position.x sz = spawns[0].position.z ry = spawns[0].rotation.y # ego vehicle state = lgsvl.AgentState() state.transform = spawns[0] forward = lgsvl.utils.transform_to_forward(spawns[0]) right = lgsvl.utils.transform_to_right(spawns[0]) state.velocity = dict[i]['ego_speed'] * forward ego = sim.add_agent("Lincoln2017MKZ (Apollo 5.0)", lgsvl.AgentType.EGO,