def create_env(task_index): """ Creates and returns an Environment which contains a single sender-receiver connection. The environment is run inside mahimahi shells. The environment knows the best cwnd to pass to the expert policy. """ best_cwnds_file = path.join(project_root.DIR, 'dagger', 'best_cwnds.yml') best_cwnd_map = yaml.load(open(best_cwnds_file)) if task_index == 0: trace_path = path.join(project_root.DIR, 'env', '0.57mbps-poisson.trace') mm_cmd = 'mm-delay 28 mm-loss uplink 0.0477 mm-link %s %s --uplink-queue=droptail --uplink-queue-args=packets=14' % (trace_path, trace_path) best_cwnd = 5 elif task_index == 1: trace_path = path.join(project_root.DIR, 'env', '2.64mbps-poisson.trace') mm_cmd = 'mm-delay 88 mm-link %s %s --uplink-queue=droptail --uplink-queue-args=packets=130' % (trace_path, trace_path) best_cwnd = 40 elif task_index == 2: trace_path = path.join(project_root.DIR, 'env', '3.04mbps-poisson.trace') mm_cmd = 'mm-delay 130 mm-link %s %s --uplink-queue=droptail --uplink-queue-args=packets=426' % (trace_path, trace_path) best_cwnd = 70 elif task_index <= 18: bandwidth = [5, 10, 20, 50] delay = [10, 20, 40, 80] cartesian = [(b, d) for b in bandwidth for d in delay] bandwidth, delay = cartesian[task_index - 3] uplink_trace, downlink_trace = prepare_traces(bandwidth) mm_cmd = 'mm-delay %d mm-link %s %s' % (delay, uplink_trace, downlink_trace) best_cwnd = best_cwnd_map[bandwidth][delay] elif task_index == 19: trace_path = path.join(project_root.DIR, 'env', '100.42mbps.trace') mm_cmd = 'mm-delay 27 mm-link %s %s --uplink-queue=droptail --uplink-queue-args=packets=173' % (trace_path, trace_path) best_cwnd = 500 elif task_index == 20: trace_path = path.join(project_root.DIR, 'env', '77.72mbps.trace') mm_cmd = 'mm-delay 51 mm-loss uplink 0.0006 mm-link %s %s --uplink-queue=droptail --uplink-queue-args=packets=94' % (trace_path, trace_path) best_cwnd = 690 elif task_index == 21: trace_path = path.join(project_root.DIR, 'env', '114.68mbps.trace') mm_cmd = 'mm-delay 45 mm-link %s %s --uplink-queue=droptail --uplink-queue-args=packets=450' % (trace_path, trace_path) best_cwnd = 870 elif task_index <= 29: bandwidth = [100, 200] delay = [10, 20, 40, 80] cartesian = [(b, d) for b in bandwidth for d in delay] bandwidth, delay = cartesian[task_index - 26] uplink_trace, downlink_trace = prepare_traces(bandwidth) mm_cmd = 'mm-delay %d mm-link %s %s' % (delay, uplink_trace, downlink_trace) best_cwnd = best_cwnd_map[bandwidth][delay] env = Environment(mm_cmd) env.best_cwnd = best_cwnd return env
def load_task(filename: str, render: bool, fallback: bool) -> Environment: """Загружает параметры задачи из json-файла filename""" with open(filename, 'r') as fp: td: TaskData = json.load(fp, object_hook=task_json_parse) E = Environment(render, fallback) E.load_task(td) log()['PYBULLET'].log('environment loaded successfully') return E
def create_env(task_index): bandwidth = int(np.linspace(30, 60, num=4, dtype=np.int)[task_index]) delay = 25 queue = None uplink_trace, downlink_trace = prepare_traces(bandwidth) mm_cmd = ('mm-delay %d mm-link %s %s' % (delay, uplink_trace, downlink_trace)) if queue is not None: mm_cmd += (' --downlink-queue=droptail ' '--downlink-queue-args=packets=%d' % queue) env = Environment(mm_cmd) env.setup() return env
def create_env(task_index): bandwidth_list = [100, 200] delay_list = [5, 10, 20] # queue = [100,200,400] # loss = [0.0001,0.001,0.01] loss_list = [0.1, 0.001] cartesian = [(b, d, k) for b in bandwidth_list for d in delay_list for k in loss_list] bandwidth, delay, loss = cartesian[task_index] # sys.stderr.write('\nhesy debug: env len is %d\n' % len(cartesian)) uplink_trace, downlink_trace = prepare_traces(bandwidth) mm_cmd = 'mm-delay %d mm-loss uplink %f mm-link %s %s' % ( delay, loss, uplink_trace, downlink_trace) """ bandwidth = int(np.linspace(30, 60, num=4, dtype=np.int)[task_index]) delay = 25 queue = None uplink_trace, downlink_trace = prepare_traces(bandwidth) mm_cmd = ('mm-delay %d mm-link %s %s' % (delay, uplink_trace, downlink_trace)) if queue is not None: mm_cmd += (' --downlink-queue=droptail ' '--downlink-queue-args=packets=%d' % queue) """ env = Environment(mm_cmd) #env.setup() return env
def create_env(): uplink_trace = path.join(project_root.DIR, 'env', '12mbps.trace') downlink_trace = uplink_trace mahimahi_cmd = ( 'mm-delay 20 mm-link %s %s ' '--downlink-queue=droptail --downlink-queue-args=packets=200' % (uplink_trace, downlink_trace)) env = Environment(mahimahi_cmd) return env
def load_task(filename, render, fallback): """Загружает параметры задачи из json-файла filename""" with open(filename, 'r') as fp: task_data = json.load(fp, object_hook=task_json_parse) # получение путей к urdf и sdf файлам urdf_filename = filename.parent / pathlib.Path(task_data['urdf_name']) if task_data['sdf_name'] is None: sdf_filename = None else: sdf_filename = filename.parent / pathlib.Path(task_data['sdf_name']) E = Environment(render, fallback, None if sdf_filename is None else str(sdf_filename)) E.set_endpoint(task_data['endpoint']) E.add_robot(filename=str(urdf_filename), eff_name=task_data['effector_name'], pos=task_data['pos'], orn=task_data['orn'], fixed=task_data['fixed_base'], kin_eps=task_data['eps']) if task_data['dofs'] is not None: E.robot.state = task_data['dofs'] log()['PYBULLET'].log('environment loaded successfully') return E, task_data['endpoint'], task_data['emp_best']
from fastapi import FastAPI from ariadne.asgi import GraphQL from gql import schema from env.environment import Environment env = Environment() app = FastAPI() app.mount("/graphql", GraphQL(schema, debug=True))