def main():
    parser = argparse.ArgumentParser()

    parser.add_argument("--output", "-o", required=True)
    parser.add_argument("--nduckies", type=int, required=True)
    parser.add_argument("--ntiles", type=int, required=True)
    parser.add_argument("--scenario-name", type=str, required=True)
    parsed = parser.parse_args()

    scenario_name = parsed.scenario_name

    scenario = get_base_scenario(scenario_name=scenario_name,
                                 nduckies=parsed.nduckies,
                                 ntiles=parsed.ntiles)
    scenario_struct = ipce_from_object(scenario, Scenario, ieso=ieso)
    scenario_yaml = yaml.dump(scenario_struct)
    filename = parsed.output
    write_ustring_to_utf8_file(scenario_yaml, filename)
Ejemplo n.º 2
0
def make_scenario_main(args=None):
    setup_logging()
    parser = argparse.ArgumentParser()

    parser.add_argument("--config", help="Configuration", required=True)
    parser.add_argument("-o", "--output", help="Destination directory", required=True)
    parser.add_argument("-n", "--num", type=int, help="Number of scenarios to generate", required=True)

    parsed = parser.parse_args(args=args)
    config: str = parsed.config
    basename = os.path.basename(config).split(".")[0]
    data = read_ustring_from_utf8_file(config)
    interpreted = yaml.load(data, Loader=yaml.Loader)
    n: int = parsed.num
    output: str = parsed.output
    params = object_from_ipce(interpreted, ScenarioGenerationParam, iedo=iedo)
    for i in range(n):
        scenario_name = f"{basename}-{i:03d}"
        yaml_str = _get_map_yaml(params.map_name)
        scenario = make_scenario(
            yaml_str=yaml_str,
            scenario_name=scenario_name,
            only_straight=params.only_straight,
            min_dist=params.min_dist,
            delta_y_m=params.delta_y_m,
            robots_npcs=params.robots_npcs,
            robots_parked=params.robots_parked,
            robots_pcs=params.robots_parked,
            nduckies=params.nduckies,
            duckie_min_dist_from_other_duckie=params.duckie_min_dist_from_other_duckie,
            duckie_min_dist_from_robot=params.duckie_min_dist_from_robot,
            duckie_y_bounds=params.duckie_y_bounds,
            delta_theta_rad=np.deg2rad(params.theta_tol_deg),
        )
        scenario_struct = ipce_from_object(scenario, Scenario, ieso=ieso)
        scenario_yaml = yaml.dump(scenario_struct)
        filename = os.path.join(output, f"{scenario_name}.scenario.yaml")
        write_ustring_to_utf8_file(scenario_yaml, filename)
        dm = interpret_scenario(scenario)
        output_dir = os.path.join(output, scenario_name)
        dw.draw_static(dm, output_dir=output_dir)
        export_gltf(dm, output_dir, background=False)
Ejemplo n.º 3
0
    def as_dict(self):
        data = {}
        data["challenge"] = self.name
        data["title"] = self.title
        data["description"] = self.description
        data["protocol"] = self.protocol
        data["date-open"] = self.date_open.isoformat(
        ) if self.date_open else None
        data["date-close"] = self.date_close.isoformat(
        ) if self.date_close else None
        # data['roles'] = self.roles
        data["transitions"] = self.ct.as_list()

        steps = {}
        for k, v in self.steps.items():
            steps[k] = v.as_dict()
        data["steps"] = steps
        data["closure"] = self.closure
        data["tags"] = self.tags
        data["scoring"] = Scoring_as_dict(self.scoring)
        data["dependencies"] = ipce_from_object(self.dependencies,
                                                Dict[str, ChallengeDependency])
        return data
Ejemplo n.º 4
0
def main():
    parser = argparse.ArgumentParser()

    parser.add_argument("--output", "-o", required=True)
    parser.add_argument("--config", type=str, required=True)
    parser.add_argument("--seed", type=int, required=True)
    parser.add_argument("--ntilesx", type=int, required=True)
    parser.add_argument("--ntilesy", type=int, required=True)
    parser.add_argument("--scenario-name", type=str, required=True)
    parser.add_argument("--duckie-duckie-dist", type=float, default=0.3)
    parsed = parser.parse_args()

    scenario_name = parsed.scenario_name

    scenario = get_base_scenario(
        scenario_name=scenario_name,
        nduckies=parsed.nduckies,
        ntiles=parsed.ntiles,
        min_dist_from_other_duckie=parsed.duckie_duckie_dist,
    )
    scenario_struct = ipce_from_object(scenario, Scenario, ieso=ieso)
    scenario_yaml = yaml.dump(scenario_struct)
    filename = parsed.output
    write_ustring_to_utf8_file(scenario_yaml, filename)
def write_to_file(fn: str, ob: object, K: type):
    i = ipce_from_object(ob, K, ieso=IESO(with_schema=False))
    s = yaml.dump(i)
    # s['challenge'] = 'aido5-LFP-sim-validation'
    write_ustring_to_utf8_file(s, fn)