Beispiel #1
0
    def game_loop(self):
        """The main game loop. This is where your hivemind code goes."""

        # Setting up rate limiter.
        rate_limit = rate_limiter.RateLimiter(120)

        # Setting up data.
        field_info = FieldInfoPacket()
        self.game_interface.update_field_info_packet(field_info)
        packet = GameTickPacket()
        self.game_interface.update_live_data_packet(packet)

        data.setup(self, packet, field_info, self.running_indices)

        self.ball.predict = BallPrediction()
        # https://github.com/RLBot/RLBotPythonExample/wiki/Ball-Path-Prediction

        # MAIN LOOP:
        while True:
            # Updating the game packet from the game.
            self.game_interface.update_live_data_packet(packet)

            # Processing packet.
            data.process(self, packet)

            # Ball prediction.
            self.game_interface.update_ball_prediction(self.ball.predict)

            # Planning.
            brain.plan(self)

            # Rendering.
            self.render_debug(self.game_interface.renderer)

            # For each drone under the hivemind's control, do something.
            for drone in self.drones:

                # The controls are reset each frame.
                drone.ctrl = PlayerInput(
                )  # Basically the same as SimpleControllerState().

                # Role execution.
                if drone.role is not None:
                    drone.role.execute(self, drone)

                    self.render_role(self.game_interface.renderer, drone)

                # Send the controls to the bots.
                self.game_interface.update_player_input(
                    drone.ctrl, drone.index)

            # Rate limit sleep.
            rate_limit.acquire()
Beispiel #2
0
    def game_loop(self):
        """The main game loop. This is where your hivemind code goes."""

        # Setting up rate limiter.
        rate_limit = rate_limiter.RateLimiter(120)

        # Setting up data.
        field_info = FieldInfoPacket()
        self.game_interface.update_field_info_packet(field_info)
        packet = GameTickPacket()
        self.game_interface.update_live_data_packet(packet)

        data.setup(self, packet, field_info, self.running_indices)

        self.ball.predict = BallPrediction()

        # MAIN LOOP:
        while True:
            # Updating the game packet from the game.
            self.game_interface.update_live_data_packet(packet)

            # Processing packet.
            data.process(self, packet)

            # Ball prediction.
            self.game_interface.update_ball_prediction(self.ball.predict)

            brain.think(self)

            for drone in self.drones:
                drone.ctrl = PlayerInput()
                if drone.role is not None:
                    drone.role.execute(self, drone)
                self.game_interface.update_player_input(
                    drone.ctrl, drone.index)

            self.draw_debug()

            # Rate limit sleep.
            rate_limit.acquire()
Beispiel #3
0
    def get_output(self, packet: GameTickPacket) -> SimpleControllerState:
        # Runs setup.
        if self.need_setup:
            field_info = self.get_field_info()
            data.setup(self, packet, field_info)
            self.need_setup = False

        # Preprocessing.
        data.process(self, packet)
        self.ctrl = SimpleControllerState()

        # Handle states.
        self.checkState()

        # Execute state.
        if not self.state.expired:
            self.state.execute(self)

        # Render.
        self.render(self.renderer)

        return self.ctrl 
#    
    return sequence_groups

        
#### Load data
# sequence_groups[i] contains data for class i
# 4-dimensional data structure: (class, sequence_num, timestep, channel_num)
#
# PROVIDED DATASETS:
#   digits_session_1_dataset
#   digits_session_2_dataset
#   digits_session_3_dataset
#   digits_session_4_dataset

sequence_groups = transform_data(data.join([
            data.process(1, ['data/data/utkarsh1.txt'], sample_rate=1000),
            data.process(1, ['data/data/utkarsh2.txt'], sample_rate=1000),
            data.process(1, ['data/data/utkarsh3.txt'], sample_rate=1000),
        ]))

# Split sequence_groups into training and validation data
training_sequence_groups, validation_sequence_groups = data.split(sequence_groups, 1./6)

# Manually selecting different training and validation datasets
#training_sequence_groups = transform_data(data.digits_session_1_dataset())
#validation_sequence_groups = transform_data(data.digits_session_4_dataset())

# Pads or truncates each sequence to length
length = 2400 # 300,600
training_sequence_groups = data.transform.pad_truncate(training_sequence_groups, length)
validation_sequence_groups = data.transform.pad_truncate(validation_sequence_groups, length)
    return sequence_groups


#### Load data
# sequence_groups[i] contains data for class i
# 4-dimensional data structure: (class, sequence_num, timestep, channel_num)
#
# PROVIDED DATASETS:
#   digits_session_1_dataset
#   digits_session_2_dataset
#   digits_session_3_dataset
#   digits_session_4_dataset

sequence_groups = transform_data(
    data.join([
        data.process(1, ['data/data/181_silence1_50.txt'], sample_rate=1000),
        #        data.process(1, ['data/data/182_silence2_50.txt'], sample_rate=1000),
        data.process(1, ['data/data/183_silence3_50.txt'], sample_rate=1000),
        #        data.process(1, ['data/data/95_subvocal_silence_300_trials.txt'])[:,:50],
        #        data.process(1, ['data/data/107_subvocal_silence_300_trials.txt'])[:,:50],
        ##        data.process(1, ['data/data/119_subvocal_silence_300_trials.txt']),
    ]),
    sample_rate=1000)

print np.shape(sequence_groups[0][0])

sequence_groups = data.transform.downsample(sequence_groups, 4)

print np.shape(sequence_groups[0][0])

#plt.figure()
Beispiel #6
0
import numpy as np
import matplotlib
matplotlib.use('TkAgg')
import matplotlib.pyplot as plt

import data

#sequence_groups = data.silence_and_not_silence_dataset()

sequence_groups1 = data.digits_session_2_dataset()
sequence_groups2 = data.join([
    data.process(1, ['data/test_data/testing_0_s2.txt']),
    data.process(1, ['data/test_data/testing_1_s2.txt']),
    data.process(1, ['data/test_data/testing_2_s2.txt']),
    data.process(1, ['data/test_data/testing_3_s2.txt']),
    data.process(1, ['data/test_data/testing_4_s2.txt']),
    data.process(1, ['data/test_data/testing_5_s2.txt']),
    data.process(1, ['data/test_data/testing_6_s2.txt']),
    data.process(1, ['data/test_data/testing_7_s2.txt']),
    data.process(1, ['data/test_data/testing_8_s2.txt']),
    data.process(1, ['data/test_data/testing_9_s2.txt']),
])

print np.shape(sequence_groups1)
print np.shape(sequence_groups2)

length = 300

sequence_groups1 = data.transform.default_transform(sequence_groups1)
sequence_groups2 = data.transform.default_transform(sequence_groups2)
def run():
    fetched = data.fetch()
    return data.process(fetched)