Skip to content

Commit

Permalink
Merge pull request #116 from inverted-ai/develop
Browse files Browse the repository at this point in the history
Develop
  • Loading branch information
Ruishenl committed Feb 8, 2023
2 parents 103d518 + 0b23019 commit e8e6575
Show file tree
Hide file tree
Showing 29 changed files with 477,601 additions and 44 deletions.
3 changes: 2 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
# Dev Stuff
dev/
dev.py

img/
gifs/
# Byte-compiled / optimized / DLL files
__pycache__/
*.py[cod]
Expand Down
28 changes: 18 additions & 10 deletions examples/carla/carla_demo.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,25 +12,24 @@
the supported area, so that's where the NPCs need to be maximally realistic.
"""
import invertedai as iai
from carla_simulator import CarlaEnv, CarlaSimulationConfig
from carla_simulator import CarlaEnv, CarlaSimulationConfig, PreSets
import argparse
import pygame
from tqdm import tqdm


# Configuration options to set from command line.
parser = argparse.ArgumentParser(description="Simulation Parameters.")
parser.add_argument("-n", "--location", type=str, default="carla:Town03:Roundabout",
parser.add_argument("-n", "--location", type=str, default="carla:Town03",
help='See data/static_carla.py for a list of available locations.')
parser.add_argument("-c", "--agent_count", type=int, default=8)
parser.add_argument("-l", "--episode_length", type=int, default=30)
parser.add_argument("-e", "--ego_spawn_point", default="demo")
parser.add_argument("-s", "--spectator_transform", default=None)
parser.add_argument("-i", "--initial_states", default=None)
parser.add_argument("-m", "--non_roi_npc_mode", type=int, default=1)
parser.add_argument("-m", "--non_roi_npc_mode", type=int, default=2)
parser.add_argument("-pi", "--npc_population_interval", type=int, default=6)
parser.add_argument("-ca", "--max_cars_in_map", type=int, default=100)
parser.add_argument("-ep", "--episodes", type=int, default=5)
parser.add_argument("-ep", "--episodes", type=int, default=1)
parser.add_argument("--api_key", type=str, default=None)
parser.add_argument("-mc", "--manual_control_ego", action="store_true")

Expand All @@ -54,16 +53,25 @@
npc_population_interval=args.npc_population_interval,
max_cars_in_map=args.max_cars_in_map,
manual_control_ego=args.manual_control_ego,
map_center=PreSets.map_centers["carla:Town03:Roundabout"]
)
sim = CarlaEnv(
cfg=carla_cfg,
)

# Initialize simulation with an API call
response = iai.initialize(
location=args.location,
agent_count=args.agent_count,
)
for _ in range(10):
try:
# Initialize simulation with an API call
response = iai.initialize(
location=args.location,
agent_count=args.agent_count,
location_of_interest=carla_cfg.map_center,
)
break
except:
print("Re-initializing")
else:
raise Exception("Unable to initialize")

pygame.init()

Expand Down
5 changes: 2 additions & 3 deletions examples/carla/carla_demo_traffic_light.py
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@

# Configuration options to set from command line.
parser = argparse.ArgumentParser(description="Simulation Parameters.")
parser.add_argument("-n", "--location", type=str, default="carla:Town03:Roundabout",
parser.add_argument("-n", "--location", type=str, default="carla:Town03",
help='See data/static_carla.py for a list of available locations.')
parser.add_argument("-c", "--agent_count", type=int, default=8)
parser.add_argument("-l", "--episode_length", type=int, default=30)
Expand All @@ -32,7 +32,7 @@
parser.add_argument("-m", "--non_roi_npc_mode", type=int, default=1)
parser.add_argument("-pi", "--npc_population_interval", type=int, default=6)
parser.add_argument("-ca", "--max_cars_in_map", type=int, default=100)
parser.add_argument("-ep", "--episodes", type=int, default=5)
parser.add_argument("-ep", "--episodes", type=int, default=1)
parser.add_argument("--api_key", type=str, default=None)
parser.add_argument("-mc", "--manual_control_ego", action="store_true")

Expand Down Expand Up @@ -60,7 +60,6 @@
npc_population_interval=args.npc_population_interval,
max_cars_in_map=args.max_cars_in_map,
manual_control_ego=args.manual_control_ego,
pygame_window=False,
spectator_fov=150
)
sim = CarlaEnv(
Expand Down
14 changes: 11 additions & 3 deletions examples/carla/carla_simulator.py
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,13 @@
import pygame


@dataclass
class PreSets:
map_centers = MAP_CENTERS
demo_locations = DEMO_LOCATIONS
npc_bps = NPC_BPS


@dataclass
class CarlaSimulationConfig:
"""
Expand All @@ -36,7 +43,8 @@ class CarlaSimulationConfig:
"""
ego_bp: str = "vehicle.tesla.model3" #: blueprint name for the ego vehicle
npc_bps: Tuple[str] = NPC_BPS #: blueprint names for NPC vehicles
location: str = "CARLA:Town03:Roundabout" #: in format recognized by Inverted AI API
location: str = "carla:Town03" #: in format recognized by Inverted AI API center map coordinate of the selected carla town
map_center: Tuple[float] = (0.0, 0.0)
fps: int = 10 #: 10 is the only value currently compatible with Inverted AI API
traffic_count: int = 20 #: total number of vehicles to place in simulation
episode_length: int = 20 #: in seconds
Expand Down Expand Up @@ -162,7 +170,7 @@ def __init__(
self.rng = random.Random(cfg.seed)

# assemble information about area where Inverted AI NPCs will be deployed
centers = MAP_CENTERS[cfg.location]
centers = cfg.map_center
self.roi_center = cord(x=centers[0], y=centers[1])
self.proximity_threshold = (
50
Expand Down Expand Up @@ -195,7 +203,7 @@ def __init__(
if tl.agent_type == "traffic-light-actor":
for tlo in traffic_lights_obj:
x, y = tlo.get_transform().location.x, tlo.get_transform().location.y
if (abs(x + tl.center.x) + abs(y - tl.center.y)) < 1:
if (abs(x - tl.center.x) + abs(y - tl.center.y)) < 1:
for traffic_line in tl.dependant:
self.traffic_lights[traffic_line] = tlo

Expand Down

0 comments on commit e8e6575

Please sign in to comment.