def make_world(self): world = World() world.num_UAVs = 2 world.num_landmarks = 30 # 50 world.UAVs = [UAV() for i in range(world.num_UAVs)] world.association = [] world.probability_LoS = 1 / (1 + A) for i, uav in enumerate(world.UAVs): uav.name = 'UAV %d'.format(i) uav.id = i uav.size = 10 uav.state.energy = Energy # # 列表形式的landmarks # world.landmarks = [Landmark() for i in range(world.num_landmarks)] # for i, landmark in enumerate(world.landmarks): # landmark.name = 'landmark %d'.format(i) # landmark.id = i # landmark.size = 10 # 字典形式的landmarks for i in range(world.num_landmarks): dic = {str(i): Landmark()} world.landmarks.update(dic) for i, landmark in enumerate(world.landmarks.values()): landmark.name = 'landmark %d'.format(i) landmark.id = i landmark.size = 5 self.reset_world( world) # 这里不reset会导致MultiUAVEnv中init中获得observation维度报错 return world