def create_rgb_trainer_params():
    from params.simulator.sbpd_simulator_params import create_params as create_simulator_params
    from params.visual_navigation_trainer_params import create_params as create_trainer_params

    from params.waypoint_grid.sbpd_image_space_grid import create_params as create_waypoint_params
    from params.model.resnet50_arch_v1_params import create_params as create_model_params

    from params.reachability_map.reachability_map_params import create_params as create_reachability_map_params

    # Load the dependencies
    simulator_params = create_simulator_params()

    # Seed
    simulator_params.seed = 10

    # Ensure the waypoint grid is projected SBPD Grid
    simulator_params.planner_params.control_pipeline_params.waypoint_params = create_waypoint_params(
    )

    # Ensure the renderer modality is rgb
    simulator_params.obstacle_map_params.renderer_params.camera_params.modalities = [
        'rgb'
    ]
    simulator_params.obstacle_map_params.renderer_params.camera_params.img_channels = 3
    simulator_params.obstacle_map_params.renderer_params.camera_params.width = 1024
    simulator_params.obstacle_map_params.renderer_params.camera_params.height = 1024
    simulator_params.obstacle_map_params.renderer_params.camera_params.im_resize = 0.21875

    # Change episode horizon
    simulator_params.episode_horizon_s = 80.0

    # Ensure the renderer is using area3
    # TODO: When generating our own data, choose area 3, area4, area5
    #  When testing, choosing area 1
    simulator_params.obstacle_map_params.renderer_params.building_name = 'area4'
    # TODO: area3: thread='v1'; area4: thread='v2'; area5a: thread='v3'
    simulator_params.reachability_map_params.thread = 'v2'
    # specify reachability data dir name according to building_name and thread
    create_reachability_data_dir_params(
        simulator_params.reachability_map_params)

    # Save trajectory data
    simulator_params.save_trajectory_data = True

    # Choose cost function
    # TODO: in training, always use 'heuristics'
    # simulator_params.cost = 'heuristics'  # heuristics cost.
    simulator_params.cost = 'reachability'

    p = create_trainer_params(simulator_params=simulator_params)

    # Create the model params
    p.model = create_model_params()

    return p
def create_rgb_trainer_params():
    from params.simulator.sbpd_simulator_params import create_params as create_simulator_params
    from params.visual_navigation_trainer_params import create_params as create_trainer_params

    from params.waypoint_grid.sbpd_image_space_grid import create_params as create_waypoint_params
    from params.model.resnet50_arch_v1_params import create_params as create_model_params

    # Load the dependencies
    simulator_params = create_simulator_params()

    # Ensure the waypoint grid is projected SBPD Grid
    simulator_params.planner_params.control_pipeline_params.waypoint_params = create_waypoint_params(
    )

    # Ensure the renderer modality is rgb
    simulator_params.obstacle_map_params.renderer_params.camera_params.modalities = [
        'rgb'
    ]
    simulator_params.obstacle_map_params.renderer_params.camera_params.img_channels = 3
    simulator_params.obstacle_map_params.renderer_params.camera_params.width = 1024
    simulator_params.obstacle_map_params.renderer_params.camera_params.height = 1024
    simulator_params.obstacle_map_params.renderer_params.camera_params.im_resize = 0.21875

    # Ensure the renderer is using area1
    simulator_params.obstacle_map_params.renderer_params.building_name = 'area1'

    # Change the episode horizon
    simulator_params.episode_horizon_s = 80.0

    # Save trajectory data
    simulator_params.save_trajectory_data = True

    p = create_trainer_params(simulator_params=simulator_params)

    # Create the model params
    p.model = create_model_params()

    return p