def get_agent_info(self, agent): """ return a blueprint for a new agent """ for a in constants.WALL_RAY_SENSORS: agent.add_sensor(OpenNero.RaySensor( math.cos(math.radians(a)), math.sin(math.radians(a)), 0, constants.WALL_SENSOR_RADIUS, constants.OBJECT_TYPE_OBSTACLE, False)) for a0, a1 in constants.FLAG_RADAR_SENSORS: agent.add_sensor(OpenNero.RadarSensor( a0, a1, -90, 90, constants.MAX_VISION_RADIUS, constants.OBJECT_TYPE_FLAG, False)) sense = constants.OBJECT_TYPE_TEAM_0 if agent.get_team() == sense: sense = constants.OBJECT_TYPE_TEAM_1 for a0, a1 in constants.ENEMY_RADAR_SENSORS: agent.add_sensor(OpenNero.RadarSensor( a0, a1, -90, 90, constants.MAX_VISION_RADIUS, sense, False)) for a in constants.TARGETING_SENSORS: agent.add_sensor(OpenNero.RaySensor( math.cos(math.radians(a)), math.sin(math.radians(a)), 0, constants.TARGET_SENSOR_RADIUS, sense, False)) return agent.info
def get_agent_info(self, agent): """ return a blueprint for a new agent """ if isinstance(agent, FirstPersonAgent): # don't add built in sensors for now return self.agent_info for a in constants.WALL_RAY_SENSORS: agent.add_sensor( OpenNero.RaySensor(math.cos(math.radians(a)), math.sin(math.radians(a)), 0, 50, constants.OBJECT_TYPE_OBSTACLE, False)) for a0, a1 in constants.FLAG_RADAR_SENSORS: agent.add_sensor( OpenNero.RadarSensor(a0, a1, -90, 90, constants.MAX_VISION_RADIUS, constants.OBJECT_TYPE_FLAG, False)) for a0, a1 in constants.ENEMY_RADAR_SENSORS: sense = constants.OBJECT_TYPE_TEAM_0 if agent.get_team() == 0: sense = constants.OBJECT_TYPE_TEAM_1 agent.add_sensor( OpenNero.RadarSensor(a0, a1, -90, 90, constants.MAX_VISION_RADIUS, sense, False)) return self.agent_info
def get_agent_info(self, agent): """ return a blueprint for a new agent """ for a in constants.WALL_RAY_SENSORS: agent.add_sensor(OpenNero.RaySensor( math.cos(math.radians(a)), math.sin(math.radians(a)), 0, constants.WALL_SENSOR_RADIUS, constants.OBJECT_TYPE_OBSTACLE, False)) for a0, a1 in constants.FLAG_RADAR_SENSORS: agent.add_sensor(OpenNero.RadarSensor( a0, a1, -90, 90, constants.MAX_VISION_RADIUS, constants.OBJECT_TYPE_FLAG, False)) sense = constants.OBJECT_TYPE_TEAM_0 if agent.team_type == sense: sense = constants.OBJECT_TYPE_TEAM_1 for a0, a1 in constants.ENEMY_RADAR_SENSORS: agent.add_sensor(OpenNero.RadarSensor( a0, a1, -90, 90, constants.MAX_VISION_RADIUS, sense, False)) for a in constants.TARGETING_SENSORS: agent.add_sensor(OpenNero.RaySensor( math.cos(math.radians(a)), math.sin(math.radians(a)), 0, constants.TARGET_SENSOR_RADIUS, sense, False)) abound = OpenNero.FeatureVectorInfo() # actions sbound = OpenNero.FeatureVectorInfo() # sensors # actions abound.add_continuous(-1, 1) # forward/backward speed abound.add_continuous(-constants.MAX_TURNING_RATE, constants.MAX_TURNING_RATE) # left/right turn (in radians) abound.add_continuous(0, 1) # fire abound.add_continuous(0, 1) # omit friend sensors # sensor dimensions for a in range(constants.N_SENSORS): sbound.add_continuous(0, 1) rbound = OpenNero.FeatureVectorInfo() rbound.add_continuous(0, 1) return OpenNero.AgentInitInfo(sbound, abound, rbound)