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)
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)
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
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)