Skip to content

Commit

Permalink
Remove gym_carla submodule
Browse files Browse the repository at this point in the history
  • Loading branch information
faizansana committed Apr 5, 2024
1 parent 4ec1de6 commit 2f8642a
Show file tree
Hide file tree
Showing 4 changed files with 8 additions and 62 deletions.
3 changes: 0 additions & 3 deletions .gitmodules
Original file line number Diff line number Diff line change
@@ -1,6 +1,3 @@
[submodule "src/gym-carla"]
path = src/gym_carla
url = https://github.com/faizansana/gym-carla.git
[submodule "src/custom_carla_gym"]
path = src/custom_carla_gym
url = https://github.com/faizansana/intersection-carla-gym.git
1 change: 0 additions & 1 deletion src/gym_carla
Submodule gym_carla deleted from 0fbb8e
9 changes: 1 addition & 8 deletions src/test_model.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,13 +16,6 @@ def parse_arguments():
help="Path to model to test",
metavar="PATH",
type=str)
argparser.add_argument(
"-e", "--env",
help="Environment to test on. Path of env is appended",
default="custom_carla_gym",
metavar="NAME",
choices=["custom_carla_gym", "gym_carla"],
type=str)
argparser.add_argument(
"-v", "--verbose",
help="Verbosity level",
Expand Down Expand Up @@ -71,7 +64,7 @@ def main():
args = parse_arguments().parse_args()

# Setup environment
env = setup_env(env_name=args.env, log_dir="", carla_host=args.carla_host, carla_port=args.carla_port, config_file=args.config_file)
env = setup_env(log_dir="", carla_host=args.carla_host, carla_port=args.carla_port, config_file=args.config_file)

# Only setup model if random model is not selected
if not args.random_model:
Expand Down
57 changes: 7 additions & 50 deletions src/train.py
Original file line number Diff line number Diff line change
Expand Up @@ -23,12 +23,6 @@ def parse_arguments():
default="DDPG",
metavar="NAME",
choices=["DDPG", "PPO", "RecurrentPPO", "SAC", "DQN"])
argparser.add_argument(
"-e", "--env",
help="Environment to train on. Path of env is appended",
default="custom_carla_gym",
metavar="NAME",
choices=["custom_carla_gym", "gym_carla"])
argparser.add_argument(
"-t", "--timesteps",
help="Number of timesteps to train for",
Expand Down Expand Up @@ -56,7 +50,7 @@ def parse_arguments():
argparser.add_argument(
"--config-file",
help="Path to config file",
default="./custom_carla_gym/src/config.yaml",
default="./custom_carla_gym/src/config_discrete.yaml",
metavar="PATH",
type=str)
argparser.add_argument(
Expand Down Expand Up @@ -86,48 +80,12 @@ def train(model: BaseAlgorithm, timesteps: int, model_dir: os.path, log_dir: os.
model.save(os.path.join(model_dir, "final_model"))


def setup_env(env_name: str, log_dir: str, carla_host: str, carla_port: int, config_file: str = "./custom_carla_gym/config.yaml") -> gym.Env:
def setup_env(log_dir: str, carla_host: str, carla_port: int, config_file: str = "./custom_carla_gym/config.yaml") -> gym.Env:
"""Setup environment"""
if env_name == "custom_carla_gym":
sys.path.append("./custom_carla_gym/src")
from custom_carla_gym.src.carla_env_custom import CarlaEnv
cfg = yaml.safe_load(open(config_file))
env = CarlaEnv(cfg=cfg, host=carla_host, port=carla_port)

elif env_name == "gym_carla":
sys.path.append("./gym_carla")
from gym_carla.envs.carla_env import CarlaEnv
params = {
"number_of_vehicles": 40,
"number_of_walkers": 10,
"display_size": 256, # screen size of bird-eye render
"max_past_step": 1, # the number of past steps to draw
"dt": 0.1, # time interval between two frames
"discrete": False, # whether to use discrete control space
"discrete_acc": [-3.0, 0.0, 3.0], # discrete value of accelerations
"discrete_steer": [-0.2, 0.0, 0.2], # discrete value of steering angles
"continuous_accel_range": [-3.0, 3.0], # continuous acceleration range
"continuous_steer_range": [-0.3, 0.3], # continuous steering angle range
"ego_vehicle_filter": "vehicle.lincoln*", # filter for defining ego vehicle
"host": carla_host, # which host to use
"port": 2000, # connection port
"town": "Town03", # which town to simulate
"task_mode": "intersection", # mode of the task, [random, roundabout (only for Town03)]
"max_time_episode": 500, # maximum timesteps per episode
"max_waypt": 12, # maximum number of waypoints
"obs_range": 32, # observation range (meter)
"lidar_bin": 0.125, # bin size of lidar sensor (meter)
"d_behind": 12, # distance behind the ego vehicle (meter)
"out_lane_thres": 2.0, # threshold for out of lane
"desired_speed": 8, # desired speed (m/s)
"max_ego_spawn_times": 200, # maximum times to spawn ego vehicle
"display_route": True, # whether to render the desired route
"pixor_size": 64, # size of the pixor labels
"pixor": False # whether to output PIXOR observation
}
env = gym.make('carla-v0', params=params, apply_api_compatibility=True)
else:
raise ValueError(f"Unknown environment: {env_name}")
sys.path.append("./custom_carla_gym/src")
from custom_carla_gym.src.carla_env_custom import CarlaEnv
cfg = yaml.safe_load(open(config_file))
env = CarlaEnv(cfg=cfg, host=carla_host, port=carla_port)

if log_dir:
# There seems to be a bug in Monitor, so this workaround is used.
Expand Down Expand Up @@ -244,12 +202,11 @@ def main():
log_dir = os.path.join(model_dir, "logs")
os.makedirs(log_dir, exist_ok=True)

print("------", args.env, "------")
print(f"------ {args.timesteps:,} ------")

try:
# Create environment
env = setup_env(args.env, log_dir, args.carla_host, args.carla_port, args.config_file)
env = setup_env(log_dir, args.carla_host, args.carla_port, args.config_file)

# Load model
if args.model_path:
Expand Down

0 comments on commit 2f8642a

Please sign in to comment.