From 5f59d0de1b679e0eef990cb6687c16ac5653a2e0 Mon Sep 17 00:00:00 2001 From: Tyler Arehart Date: Wed, 12 Feb 2020 21:10:23 -0800 Subject: [PATCH 01/13] Adding a sequence system to help with dodges. --- src/bot.py | 38 +++++++++++++++------------------- src/util/sequence.py | 49 ++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 66 insertions(+), 21 deletions(-) create mode 100644 src/util/sequence.py diff --git a/src/bot.py b/src/bot.py index 58511a2..ea3ea31 100644 --- a/src/bot.py +++ b/src/bot.py @@ -5,6 +5,7 @@ from util.orientation import Orientation from util.vec import Vec3 +from util.sequence import Sequence, ControlStep class MyBot(BaseAgent): @@ -12,12 +13,26 @@ class MyBot(BaseAgent): def initialize_agent(self): # This runs once before the bot starts up self.controller_state = SimpleControllerState() + self.active_sequence: Sequence = None def get_output(self, packet: GameTickPacket) -> SimpleControllerState: - ball_location = Vec3(packet.game_ball.physics.location) + if self.active_sequence and not self.active_sequence.done: + return self.active_sequence.tick(packet) + + ball_location = Vec3(packet.game_ball.physics.location) my_car = packet.game_cars[self.index] car_location = Vec3(my_car.physics.location) + car_velocity = Vec3(my_car.physics.velocity) + + if 550 < car_velocity.length() < 600: + self.active_sequence = Sequence([ + ControlStep(0.05, SimpleControllerState(jump=True)), + ControlStep(0.05, SimpleControllerState(jump=False)), + ControlStep(0.2, SimpleControllerState(jump=True, pitch=-1)), + ControlStep(0.8, SimpleControllerState()), + ]) + return self.active_sequence.tick(packet) car_to_ball = ball_location - car_location @@ -27,18 +42,8 @@ def get_output(self, packet: GameTickPacket) -> SimpleControllerState: steer_correction_radians = find_correction(car_direction, car_to_ball) - if steer_correction_radians > 0: - # Positive radians in the unit circle is a turn to the left. - turn = -1.0 # Negative value for a turn to the left. - action_display = "turn left" - else: - turn = 1.0 - action_display = "turn right" - self.controller_state.throttle = 1.0 - self.controller_state.steer = turn - - draw_debug(self.renderer, my_car, packet.game_ball, action_display) + self.controller_state.steer = -1 if steer_correction_radians > 0 else 1.0 return self.controller_state @@ -60,12 +65,3 @@ def find_correction(current: Vec3, ideal: Vec3) -> float: diff -= 2 * math.pi return diff - - -def draw_debug(renderer, car, ball, action_display): - renderer.begin_rendering() - # draw a line from the car to the ball - renderer.draw_line_3d(car.physics.location, ball.physics.location, renderer.white()) - # print the action that the bot is taking - renderer.draw_string_3d(car.physics.location, 2, 2, action_display, renderer.white()) - renderer.end_rendering() diff --git a/src/util/sequence.py b/src/util/sequence.py new file mode 100644 index 0000000..5ebae2d --- /dev/null +++ b/src/util/sequence.py @@ -0,0 +1,49 @@ +from dataclasses import dataclass +from typing import List + +from rlbot.agents.base_agent import SimpleControllerState +from rlbot.utils.structures.game_data_struct import GameTickPacket + + +@dataclass +class StepResult: + controls: SimpleControllerState + done: bool + + +class Step: + def tick(self, packet: GameTickPacket) -> StepResult: + raise NotImplementedError + + +class ControlStep(Step): + def __init__(self, duration: float, controls: SimpleControllerState): + self.duration = duration + self.controls = controls + self.start_time: float = None + + def tick(self, packet: GameTickPacket) -> StepResult: + if self.start_time is None: + self.start_time = packet.game_info.seconds_elapsed + elapsed_time = packet.game_info.seconds_elapsed - self.start_time + return StepResult(controls=self.controls, done=elapsed_time > self.duration) + + +class Sequence: + def __init__(self, steps: List[Step]): + self.steps = steps + self.index = 0 + self.done = False + + def tick(self, packet: GameTickPacket): + while True: + if self.index >= len(self.steps): + self.done = True + return SimpleControllerState() + step = self.steps[self.index] + result = step.tick(packet) + if result.done: + self.index += 1 + if self.index >= len(self.steps): + self.done = True + return result.controls From 7d969f300bf6f9e74bbb4980fffa802da5031823 Mon Sep 17 00:00:00 2001 From: Tyler Arehart Date: Wed, 12 Feb 2020 21:45:16 -0800 Subject: [PATCH 02/13] Adding a spike watcher utility so bots know who has spiked the ball. --- src/bot.cfg | 2 +- src/bot.py | 21 +++++++++++++++++++-- src/util/spikes.py | 30 ++++++++++++++++++++++++++++++ 3 files changed, 50 insertions(+), 3 deletions(-) create mode 100644 src/util/spikes.py diff --git a/src/bot.cfg b/src/bot.cfg index 3aa2023..247ba37 100644 --- a/src/bot.cfg +++ b/src/bot.cfg @@ -6,7 +6,7 @@ looks_config = ./appearance.cfg python_file = ./bot.py # Name of the bot in-game -name = PythonExampleBot +name = SpikeRushExampleBot # The maximum number of ticks per second that your bot wishes to receive. maximum_tick_rate_preference = 120 diff --git a/src/bot.py b/src/bot.py index ea3ea31..28c90e4 100644 --- a/src/bot.py +++ b/src/bot.py @@ -2,8 +2,10 @@ from rlbot.agents.base_agent import BaseAgent, SimpleControllerState from rlbot.utils.structures.game_data_struct import GameTickPacket +from rlbot.utils.structures.quick_chats import QuickChats from util.orientation import Orientation +from util.spikes import SpikeWatcher from util.vec import Vec3 from util.sequence import Sequence, ControlStep @@ -14,17 +16,22 @@ def initialize_agent(self): # This runs once before the bot starts up self.controller_state = SimpleControllerState() self.active_sequence: Sequence = None + self.spike_watcher = SpikeWatcher() def get_output(self, packet: GameTickPacket) -> SimpleControllerState: if self.active_sequence and not self.active_sequence.done: return self.active_sequence.tick(packet) + self.spike_watcher.read_packet(packet) + ball_location = Vec3(packet.game_ball.physics.location) my_car = packet.game_cars[self.index] car_location = Vec3(my_car.physics.location) car_velocity = Vec3(my_car.physics.velocity) + # Example of using a sequence + # This will do a front flip if the car's velocity is between 550 and 600 if 550 < car_velocity.length() < 600: self.active_sequence = Sequence([ ControlStep(0.05, SimpleControllerState(jump=True)), @@ -34,13 +41,23 @@ def get_output(self, packet: GameTickPacket) -> SimpleControllerState: ]) return self.active_sequence.tick(packet) - car_to_ball = ball_location - car_location + # Example of using the spike watcher. + # This will make the bot say I got it! when it spikes the ball, + # then release it 3 seconds later. + if self.spike_watcher.carrying_car == my_car: + if self.spike_watcher.carry_duration == 0: + self.send_quick_chat(QuickChats.CHAT_EVERYONE, QuickChats.Information_IGotIt) + elif self.spike_watcher.carry_duration > 3: + return SimpleControllerState(use_item=True) + # The rest of this code just ball chases. # Find the direction of our car using the Orientation class car_orientation = Orientation(my_car.physics.rotation) car_direction = car_orientation.forward - steer_correction_radians = find_correction(car_direction, car_to_ball) + target = ball_location + car_to_target = target - car_location + steer_correction_radians = find_correction(car_direction, car_to_target) self.controller_state.throttle = 1.0 self.controller_state.steer = -1 if steer_correction_radians > 0 else 1.0 diff --git a/src/util/spikes.py b/src/util/spikes.py new file mode 100644 index 0000000..44334e9 --- /dev/null +++ b/src/util/spikes.py @@ -0,0 +1,30 @@ +from rlbot.utils.structures.game_data_struct import PlayerInfo, GameTickPacket + +from util.vec import Vec3 + + +class SpikeWatcher: + def __init__(self): + self.carrying_car: PlayerInfo = None + self.spike_moment = 0 + self.carry_duration = 0 + + def read_packet(self, packet: GameTickPacket): + ball_location = Vec3(packet.game_ball.physics.location) + closest_candidate: PlayerInfo = None + closest_distance = 999999 + for i in range(packet.num_cars): + car = packet.game_cars[i] + car_location = Vec3(car.physics.location) + distance = car_location.dist(ball_location) + if distance < 190: + if distance < closest_distance: + closest_candidate = car + closest_distance = distance + if closest_candidate != self.carrying_car and closest_candidate is not None: + self.spike_moment = packet.game_info.seconds_elapsed + + self.carrying_car = closest_candidate + if self.carrying_car is not None: + self.carry_duration = packet.game_info.seconds_elapsed - self.spike_moment + print(closest_distance) From 7688c7c43c19aa32d2a8f69a123c745f3c8853ce Mon Sep 17 00:00:00 2001 From: oxrock Date: Thu, 13 Feb 2020 00:44:44 -0500 Subject: [PATCH 03/13] Added a function that parses ball prediction and returns the vector and time of the first predicted scoring ball. Added that information to debug rendering function. --- src/bot.py | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/src/bot.py b/src/bot.py index 28c90e4..331cbf9 100644 --- a/src/bot.py +++ b/src/bot.py @@ -1,4 +1,5 @@ import math +from typing import List from rlbot.agents.base_agent import BaseAgent, SimpleControllerState from rlbot.utils.structures.game_data_struct import GameTickPacket @@ -25,6 +26,13 @@ def get_output(self, packet: GameTickPacket) -> SimpleControllerState: self.spike_watcher.read_packet(packet) + ball_prediction = self.get_ball_prediction_struct() + predicted_goal = find_future_goal(ball_prediction) + goal_text = "No Goal Threats" + + if predicted_goal: + goal_text = f"Goal in {'%.4s' % str(predicted_goal[1]-packet.game_info.seconds_elapsed)}s" + ball_location = Vec3(packet.game_ball.physics.location) my_car = packet.game_cars[self.index] car_location = Vec3(my_car.physics.location) @@ -62,6 +70,8 @@ def get_output(self, packet: GameTickPacket) -> SimpleControllerState: self.controller_state.throttle = 1.0 self.controller_state.steer = -1 if steer_correction_radians > 0 else 1.0 + draw_debug(self.renderer, [goal_text]) + return self.controller_state @@ -82,3 +92,22 @@ def find_correction(current: Vec3, ideal: Vec3) -> float: diff -= 2 * math.pi return diff + + +def draw_debug(renderer, text_lines: List[str]): + renderer.begin_rendering() + y = 200 + for line in text_lines: + renderer.draw_string_2d(50, y, 1, 1, line, renderer.yellow()) + y += 20 + renderer.end_rendering() + + +def find_future_goal(ball_predictions): + for i in range(0, ball_predictions.num_slices): + # field length(5120) + ball radius(93) = 5213 however that results in false positives + if abs(ball_predictions.slices[i].physics.location.y) >= 5235: + # returns the position the ball crosses the goal as well as the time it's predicted to occur + return [Vec3(ball_predictions.slices[i].physics.location), ball_predictions.slices[i].game_seconds] + + return None From 7b92424411ce10f8c1883ed3bd976428539910be Mon Sep 17 00:00:00 2001 From: Tyler Arehart Date: Wed, 12 Feb 2020 22:44:03 -0800 Subject: [PATCH 04/13] Refactoring the goal detector a bit. --- src/bot.py | 19 +++++-------------- src/util/goal_detector.py | 29 +++++++++++++++++++++++++++++ src/util/spikes.py | 2 +- 3 files changed, 35 insertions(+), 15 deletions(-) create mode 100644 src/util/goal_detector.py diff --git a/src/bot.py b/src/bot.py index 331cbf9..2638d0c 100644 --- a/src/bot.py +++ b/src/bot.py @@ -5,10 +5,11 @@ from rlbot.utils.structures.game_data_struct import GameTickPacket from rlbot.utils.structures.quick_chats import QuickChats +from util.goal_detector import find_future_goal from util.orientation import Orientation +from util.sequence import Sequence, ControlStep from util.spikes import SpikeWatcher from util.vec import Vec3 -from util.sequence import Sequence, ControlStep class MyBot(BaseAgent): @@ -25,13 +26,13 @@ def get_output(self, packet: GameTickPacket) -> SimpleControllerState: return self.active_sequence.tick(packet) self.spike_watcher.read_packet(packet) - ball_prediction = self.get_ball_prediction_struct() + + # Example of predicting a goal event predicted_goal = find_future_goal(ball_prediction) goal_text = "No Goal Threats" - if predicted_goal: - goal_text = f"Goal in {'%.4s' % str(predicted_goal[1]-packet.game_info.seconds_elapsed)}s" + goal_text = f"Goal in {predicted_goal.time - packet.game_info.seconds_elapsed:.2f}s" ball_location = Vec3(packet.game_ball.physics.location) my_car = packet.game_cars[self.index] @@ -101,13 +102,3 @@ def draw_debug(renderer, text_lines: List[str]): renderer.draw_string_2d(50, y, 1, 1, line, renderer.yellow()) y += 20 renderer.end_rendering() - - -def find_future_goal(ball_predictions): - for i in range(0, ball_predictions.num_slices): - # field length(5120) + ball radius(93) = 5213 however that results in false positives - if abs(ball_predictions.slices[i].physics.location.y) >= 5235: - # returns the position the ball crosses the goal as well as the time it's predicted to occur - return [Vec3(ball_predictions.slices[i].physics.location), ball_predictions.slices[i].game_seconds] - - return None diff --git a/src/util/goal_detector.py b/src/util/goal_detector.py new file mode 100644 index 0000000..ebffe64 --- /dev/null +++ b/src/util/goal_detector.py @@ -0,0 +1,29 @@ +from dataclasses import dataclass + +from util.vec import Vec3 + +# field length(5120) + ball radius(93) = 5213 however that results in false positives +GOAL_THRESHOLD = 5235 + +# We will jump this number of frames when looking for a moment where the ball is inside the goal. +# Big number for efficiency, but not so big that the ball could go in and then back out during that +# time span. Unit is the number of frames in the ball prediction, and the prediction is at 60 frames per second. +COARSE_SEARCH_INCREMENT = 20 + + +@dataclass +class FutureGoal: + location: Vec3 + velocity: Vec3 + time: float + + +def find_future_goal(ball_predictions): + for coarse_index in range(0, ball_predictions.num_slices, COARSE_SEARCH_INCREMENT): + if abs(ball_predictions.slices[coarse_index].physics.location.y) >= GOAL_THRESHOLD: + for j in range(max(0, coarse_index - COARSE_SEARCH_INCREMENT), coarse_index): + slice = ball_predictions.slices[j] + if abs(slice.physics.location.y) >= GOAL_THRESHOLD: + # returns the position the ball crosses the goal as well as the time it's predicted to occur + return FutureGoal(Vec3(slice.physics.location), Vec3(slice.physics.velocity), slice.game_seconds) + return None diff --git a/src/util/spikes.py b/src/util/spikes.py index 44334e9..e041142 100644 --- a/src/util/spikes.py +++ b/src/util/spikes.py @@ -17,7 +17,7 @@ def read_packet(self, packet: GameTickPacket): car = packet.game_cars[i] car_location = Vec3(car.physics.location) distance = car_location.dist(ball_location) - if distance < 190: + if distance < 195: if distance < closest_distance: closest_candidate = car closest_distance = distance From 935acd891b225aa4faa6d16c91ee907402469498 Mon Sep 17 00:00:00 2001 From: Viliam Vadocz Date: Fri, 14 Feb 2020 05:33:15 +0100 Subject: [PATCH 05/13] Add numpy utilities and game data pre-processing (#36) --- src/bot.py | 3 +- src/np_util/data.py | 141 +++++++++++++++++ src/np_util/utils.py | 365 +++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 508 insertions(+), 1 deletion(-) create mode 100644 src/np_util/data.py create mode 100644 src/np_util/utils.py diff --git a/src/bot.py b/src/bot.py index 2638d0c..088b637 100644 --- a/src/bot.py +++ b/src/bot.py @@ -11,6 +11,7 @@ from util.spikes import SpikeWatcher from util.vec import Vec3 +# Would you like to use numpy utilities? Check out the np_util folder! class MyBot(BaseAgent): @@ -97,7 +98,7 @@ def find_correction(current: Vec3, ideal: Vec3) -> float: def draw_debug(renderer, text_lines: List[str]): renderer.begin_rendering() - y = 200 + y = 250 for line in text_lines: renderer.draw_string_2d(50, y, 1, 1, line, renderer.yellow()) y += 20 diff --git a/src/np_util/data.py b/src/np_util/data.py new file mode 100644 index 0000000..6c23ec2 --- /dev/null +++ b/src/np_util/data.py @@ -0,0 +1,141 @@ +'''Rocket League data pre-processing.''' + +from .utils import Car, Ball, BoostPad, arr_from_list, arr_from_rot, arr_from_vec, orient_matrix + +import numpy as np + + +def setup(self, packet, field_info): + """Sets up the variables and classes for the agent. + + Arguments: + self {BaseAgent} -- The agent. + packet {GameTickPacket} -- Information about the game. + field_info {FieldInfoPacket} -- Information about the game field. + """ + + # Game info + self.game_time = packet.game_info.seconds_elapsed + self.dt = 1.0 / 120.0 + self.last_time = 0.0 + self.r_active = packet.game_info.is_round_active + self.ko_pause = packet.game_info.is_kickoff_pause + self.m_ended = packet.game_info.is_match_ended + self.gravity = packet.game_info.world_gravity_z + + # Creates Car objects for each car. + self.teammates = [] + self.opponents = [] + for index in range(packet.num_cars): + car = packet.game_cars[index] + if index == self.index: + self.player = Car(self.index, self.team, self.name) + elif car.team == self.team: + self.teammates.append(Car(index, car.team, car.name)) + else: + self.opponents.append(Car(index, car.team, car.name)) + + # Creates a Ball object. + self.ball = Ball() + + # Creates Boostpad objects. + self.l_pads = [] + self.s_pads = [] + for i in range(field_info.num_boosts): + pad = field_info.boost_pads[i] + pad_type = self.l_pads if pad.is_full_boost else self.s_pads + pad_obj = BoostPad(i, arr_from_vec(pad.location)) + pad_type.append(pad_obj) + + +def process(self, packet): + """Processes the gametick packet. + Arguments: + self {BaseAgent} -- The agent. + packet {GameTickPacket} -- The game packet being processed. + """ + + # Processing game info. + self.game_time = packet.game_info.seconds_elapsed + self.dt = self.game_time - self.last_time + self.last_time = self.game_time + self.r_active = packet.game_info.is_round_active + self.ko_pause = packet.game_info.is_kickoff_pause + self.m_ended = packet.game_info.is_match_ended + self.gravity = packet.game_info.world_gravity_z + + # Processing player data. + # From packet: + self.player.pos = arr_from_vec(packet.game_cars[self.player.index].physics.location) + self.player.rot = arr_from_rot(packet.game_cars[self.player.index].physics.rotation) + self.player.vel = arr_from_vec(packet.game_cars[self.player.index].physics.velocity) + self.player.ang_vel = arr_from_vec(packet.game_cars[self.player.index].physics.angular_velocity) + self.player.dead = packet.game_cars[self.player.index].is_demolished + self.player.wheel_c = packet.game_cars[self.player.index].has_wheel_contact + self.player.sonic = packet.game_cars[self.player.index].is_super_sonic + self.player.jumped = packet.game_cars[self.player.index].jumped + self.player.d_jumped = packet.game_cars[self.player.index].double_jumped + self.player.boost = packet.game_cars[self.player.index].boost + # Calculated: + self.player.orient_m = orient_matrix(self.player.rot, self.player.orient_m) + + # Processing teammates. + for teammate in self.teammates: + # From packet: + teammate.pos = arr_from_vec(packet.game_cars[teammate.index].physics.location) + teammate.rot = arr_from_rot(packet.game_cars[teammate.index].physics.rotation) + teammate.vel = arr_from_vec(packet.game_cars[teammate.index].physics.velocity) + teammate.ang_vel = arr_from_vec(packet.game_cars[teammate.index].physics.angular_velocity) + teammate.dead = packet.game_cars[teammate.index].is_demolished + teammate.wheel_c = packet.game_cars[teammate.index].has_wheel_contact + teammate.sonic = packet.game_cars[teammate.index].is_super_sonic + teammate.jumped = packet.game_cars[teammate.index].jumped + teammate.d_jumped = packet.game_cars[teammate.index].double_jumped + teammate.boost = packet.game_cars[teammate.index].boost + + # Processing opponents. + for opponent in self.opponents: + # From packet: + opponent.pos = arr_from_vec(packet.game_cars[opponent.index].physics.location) + opponent.rot = arr_from_rot(packet.game_cars[opponent.index].physics.rotation) + opponent.vel = arr_from_vec(packet.game_cars[opponent.index].physics.velocity) + opponent.ang_vel = arr_from_vec(packet.game_cars[opponent.index].physics.angular_velocity) + opponent.dead = packet.game_cars[opponent.index].is_demolished + opponent.wheel_c = packet.game_cars[opponent.index].has_wheel_contact + opponent.sonic = packet.game_cars[opponent.index].is_super_sonic + opponent.jumped = packet.game_cars[opponent.index].jumped + opponent.d_jumped = packet.game_cars[opponent.index].double_jumped + opponent.boost = packet.game_cars[opponent.index].boost + + # Processing Ball data. + self.ball.pos = arr_from_vec(packet.game_ball.physics.location) + self.ball.rot = arr_from_rot(packet.game_ball.physics.rotation) + self.ball.vel = arr_from_vec(packet.game_ball.physics.velocity) + self.ball.ang_vel = arr_from_vec(packet.game_ball.physics.angular_velocity) + self.ball.last_touch = packet.game_ball.latest_touch + + # Processing ball prediction. + ball_prediction_struct = self.get_ball_prediction_struct() + dtype = [ + ('physics', [ + ('pos', ' np.ndarray: + """Converts list to numpy array. + Arguments: + L {list} -- The list to convert containing 3 elements. + Returns: + np.array -- Numpy array with the same contents as the list. + """ + if len(L) != 3: + raise ValueError('Expected a list of length 3.') + return np.array(L[0], L[1], L[2]) + + +def arr_from_rot(R: Rotator) -> np.ndarray: + """Converts rotator to numpy array. + + Arguments: + R {Rotator} -- Rotator class containing pitch, yaw, and roll. + + Returns: + np.ndarray -- Numpy array with the same contents as the rotator. + """ + return np.array([R.pitch, R.yaw, R.roll]) + + +def arr_from_vec(V: Vector3) -> np.ndarray: + """Converts vector3 to numpy array. + + Arguments: + V {Vector3} -- Vector3 class containing x, y, and z. + + Returns: + np.ndarray -- Numpy array with the same contents as the vector3. + """ + return np.array([V.x, V.y, V.z]) + + +# ----------------------------------------------------------- + +# USEFUL UTILITY FUNCTIONS: + +def normalise(V: np.ndarray) -> np.ndarray: + """Normalises a vector. + + Arguments: + V {np.ndarray} -- Vector. + + Returns: + np.ndarray -- Normalised vector. + """ + magnitude = np.linalg.norm(V) + if magnitude != 0.0: + return V / magnitude + else: + return V + + +def angle_between_vectors(v1: np.ndarray, v2: np.ndarray) -> float: + """Returns the positive angle in radians between vectors v1 and v2. + + Arguments: + v1 {np.ndarray} -- First vector. + v2 {np.ndarray} -- Second vector + + Returns: + float -- Positive acute angle between the vectors in radians. + """ + v1_u = normalise(v1) + v2_u = normalise(v2) + return np.arccos(np.clip(np.dot(v1_u, v2_u), -1.0, 1.0)) + +# ----------------------------------------------------------- + +# FUNCTIONS FOR CONVERTING BETWEEN WORLD AND LOCAL COORDINATES: + +def orient_matrix(R: np.ndarray, A: np.ndarray = np.zeros((3, 3))) -> np.ndarray: + """Converts from Euler angles to an orientation matrix. + + Arguments: + R {np.ndarray} -- Pitch, yaw, and roll. + A {np.ndarray} -- Previous orientation matrix. (default: {np.zeros((3, 3))}) + + Returns: + np.ndarray -- Orientation matrix of shape (3, 3). + """ + # Credits to chip https://samuelpmish.github.io/notes/RocketLeague/aerial_control/ + pitch: float = R[0] + yaw: float = R[1] + roll: float = R[2] + + CR: float = np.cos(roll) + SR: float = np.sin(roll) + CP: float = np.cos(pitch) + SP: float = np.sin(pitch) + CY: float = np.cos(yaw) + SY: float = np.sin(yaw) + + A = np.zeros((3, 3)) + + # front direction + A[0, 0] = CP * CY + A[1, 0] = CP * SY + A[2, 0] = SP + + # right direction + A[0, 1] = CY * SP * SR - CR * SY + A[1, 1] = SY * SP * SR + CR * CY + A[2, 1] = -CP * SR + + # up direction + A[0, 2] = -CR * CY * SP - SR * SY + A[1, 2] = -CR * SY * SP + SR * CY + A[2, 2] = CP * CR + + return A + + +def local(A: np.ndarray, p0: np.ndarray, p1: np.ndarray) -> np.ndarray: + """Transforms world coordinates into local coordinates. + + Arguments: + A {np.ndarray} -- The local orientation matrix. + p0 {np.ndarray} -- World x, y, and z coordinates of the start point for the vector. + p1 {np.ndarray} -- World x, y, and z coordinates of the end point for the vector. + + Returns: + np.ndarray -- Local x, y, and z coordinates. + """ + return np.dot(A.T, p1 - p0) + + +def world(A: np.ndarray, p0: np.ndarray, p1: np.ndarray) -> np.ndarray: + """Transforms local into world coordinates. + + Arguments: + A {np.ndarray} -- The local orientation matrix. + p0 {np.ndarray} -- World x, y, and z coordinates of the start point for the vector. + p1 {np.ndarray} -- Local x, y, and z coordinates of the end point for the vector. + + Returns: + np.ndarray -- World x, y, and z coordinates. + """ + return p0 + A * p1 + +# ----------------------------------------------------------- + +# ROCKET LEAGUE SPECIFIC FUNCTIONS: + +def team_sign(team: int) -> int: + """Gives the sign for a calculation based on team. + + Arguments: + team {int} -- 0 if Blue, 1 if Orange. + + Returns: + int -- 1 if Blue, -1 if Orange + """ + # Other creative ways to do it: + + # return (1, -1)[team] + + # return 1 if team == 0 else -1 + + # for i in range(team): + # return 1 + # return -1 + + # return -range(-1, 2, -2)[team] + + return -2 * team + 1 + + +def turn_r(v: np.ndarray) -> float: + """Calculates the minimum turning radius for given velocity. + + Arguments: + v {np.ndarray} -- A velocity vector. + + Returns: + float -- The smallest radius possible for the given velocity. + """ + s = np.linalg.norm(v) + return -6.901E-11 * s**4 + 2.1815E-07 * s**3 - 5.4437E-06 * s**2 + 0.12496671 * s + 157 + +# ----------------------------------------------------------- + +# OTHER: + +def linear_predict(start_pos: np.ndarray, start_vel: np.ndarray, start_time: float, seconds: float) -> np.ndarray: + """Predicts motion of object in a straight line. + + Arguments: + start_pos {np.ndarray} -- Current position. + start_vel {np.ndarray} -- Current velocity. + start_time {float} -- Current time. + seconds {float} -- Time for which to predict. + + Returns: + np.ndarray -- linear prediction, 60 tps. + dtype = [ + ('pos', float, (ticks, 3)), + ('vel', float, (ticks, 3)), + ('time', float, (ticks, 1)) + ] + """ + ticks = int(60*seconds) + time = np.linspace(0, seconds, ticks)[:, np.newaxis] + pos = start_pos + time * start_vel + vel = np.ones_like(time) * start_vel + time += start_time + + dtype = [('pos', float, (ticks, 3)), ('vel', float, (ticks, 3)), ('time', float, (ticks, 1))] + prediction = np.array((pos, vel, time), dtype=dtype) + return prediction + + +def closest_to(pos: np.ndarray, others: np.ndarray) -> int: + """Finds the index of the closest point. + + Arguments: + pos {np.ndarray} -- coordinates of the position of interest. + others {np.ndarray} -- Array where each row is a position. + + Returns: + int -- index of the closest position to the position of interest. + """ + vectors = others - pos + distances = np.sqrt(np.einsum('ij,ij->i', vectors, vectors)) + return np.argmin(distances) # returns first if more than one is closest + + +def special_sauce(x: float, a: float) -> float: + """Modified sigmoid function. + + Arguments: + x {float} -- The input. + a {float} -- Constant; larger => faster rise. + + Returns: + float -- Output. + """ + # Graph showing how it can be used for steering: + # https://www.geogebra.org/m/udfp2zcy + return 2 / (1 + np.exp(a*x)) - 1 From f94c51b1569224a48711480a3f434b7de02d52d5 Mon Sep 17 00:00:00 2001 From: Tyler Arehart Date: Thu, 13 Feb 2020 21:37:16 -0800 Subject: [PATCH 06/13] Smooth steering, better spike threshold, documentation. --- rlbot.cfg | 3 ++- src/bot.py | 32 +++++++++++++++++++++++++++++--- src/util/spikes.py | 10 ++++++++-- 3 files changed, 39 insertions(+), 6 deletions(-) diff --git a/rlbot.cfg b/rlbot.cfg index 7b7051a..bc3f28d 100644 --- a/rlbot.cfg +++ b/rlbot.cfg @@ -6,12 +6,13 @@ [Match Configuration] # Number of bots/players which will be spawned. We support up to max 64. -num_participants = 2 +num_participants = 1 game_mode = Soccer game_map = Mannfield [Mutator Configuration] # Visit https://github.com/RLBot/RLBot/wiki/Config-File-Documentation to see what you can put here. +Rumble = Spike Rush [Participant Configuration] # Put the name of your bot config file here. Only num_participants config files will be read! diff --git a/src/bot.py b/src/bot.py index 088b637..b428a79 100644 --- a/src/bot.py +++ b/src/bot.py @@ -22,6 +22,10 @@ def initialize_agent(self): self.spike_watcher = SpikeWatcher() def get_output(self, packet: GameTickPacket) -> SimpleControllerState: + """ + This function will be called by the framework many times per second. This is where you can + see the motion of the ball, etc. and return controls to drive your car. + """ if self.active_sequence and not self.active_sequence.done: return self.active_sequence.tick(packet) @@ -61,7 +65,7 @@ def get_output(self, packet: GameTickPacket) -> SimpleControllerState: return SimpleControllerState(use_item=True) # The rest of this code just ball chases. - # Find the direction of our car using the Orientation class + # Find the direction of your car using the Orientation class car_orientation = Orientation(my_car.physics.rotation) car_direction = car_orientation.forward @@ -70,15 +74,32 @@ def get_output(self, packet: GameTickPacket) -> SimpleControllerState: steer_correction_radians = find_correction(car_direction, car_to_target) self.controller_state.throttle = 1.0 - self.controller_state.steer = -1 if steer_correction_radians > 0 else 1.0 + + # Change the multiplier to influence the sharpness of steering. You'll wiggle if it's too high. + self.controller_state.steer = limit_to_safe_range(-steer_correction_radians * 5) draw_debug(self.renderer, [goal_text]) return self.controller_state +def limit_to_safe_range(value: float) -> float: + """ + Controls like throttle, steer, pitch, yaw, and roll need to be in the range of -1 to 1. + This will ensure your number is in that range. Something like 0.45 will stay as it is, + but a value of -5.6 would be changed to -1. + """ + if value < -1: + return -1 + if value > 1: + return 1 + return value + + def find_correction(current: Vec3, ideal: Vec3) -> float: - # Finds the angle from current to ideal vector in the xy-plane. Angle will be between -pi and +pi. + """ + Finds the angle from current to ideal vector in the xy-plane. Angle will be between -pi and +pi. + """ # The in-game axes are left handed, so use -x current_in_radians = math.atan2(current.y, -current.x) @@ -97,6 +118,11 @@ def find_correction(current: Vec3, ideal: Vec3) -> float: def draw_debug(renderer, text_lines: List[str]): + """ + This will draw the lines of text in the upper left corner. + This function will automatically put appropriate spacing between each line + so they don't overlap. + """ renderer.begin_rendering() y = 250 for line in text_lines: diff --git a/src/util/spikes.py b/src/util/spikes.py index e041142..582c30a 100644 --- a/src/util/spikes.py +++ b/src/util/spikes.py @@ -2,6 +2,13 @@ from util.vec import Vec3 +# When the ball is attached to a car's spikes, the distance will vary a bit depending on whether the ball is +# on the front bumper, the roof, etc. It tends to be most far away when the ball is on one of the front corners +# and that distance is a little under 200. We want to be sure that it's never over 200, otherwise bots will +# suffer from bad bugs when they don't think the ball is spiked to them but it actually is; they'll probably +# drive in circles. The opposite problem, where they think it's spiked before it really is, is not so bad because +# they usually spike it for real a split second later. +MAX_DISTANCE_WHEN_SPIKED = 200 class SpikeWatcher: def __init__(self): @@ -17,7 +24,7 @@ def read_packet(self, packet: GameTickPacket): car = packet.game_cars[i] car_location = Vec3(car.physics.location) distance = car_location.dist(ball_location) - if distance < 195: + if distance < MAX_DISTANCE_WHEN_SPIKED: if distance < closest_distance: closest_candidate = car closest_distance = distance @@ -27,4 +34,3 @@ def read_packet(self, packet: GameTickPacket): self.carrying_car = closest_candidate if self.carrying_car is not None: self.carry_duration = packet.game_info.seconds_elapsed - self.spike_moment - print(closest_distance) From 0cbea234d71cba7dcbfa30baa7c54992e2f94cd9 Mon Sep 17 00:00:00 2001 From: Tyler Arehart Date: Thu, 13 Feb 2020 23:48:58 -0800 Subject: [PATCH 07/13] Adding easy aerials, and extracting a steering function. --- .gitignore | 4 ++- requirements.txt | 1 + run.py | 3 +- src/bot.py | 69 ++++++++++++----------------------------- src/util/aerial.py | 77 ++++++++++++++++++++++++++++++++++++++++++++++ src/util/drive.py | 26 ++++++++++++++++ 6 files changed, 128 insertions(+), 52 deletions(-) create mode 100644 src/util/aerial.py create mode 100644 src/util/drive.py diff --git a/.gitignore b/.gitignore index 51410e9..e7803d8 100644 --- a/.gitignore +++ b/.gitignore @@ -108,4 +108,6 @@ ENV/ /build # Gradle files -/.gradle \ No newline at end of file +/.gradle + +.vscode/ diff --git a/requirements.txt b/requirements.txt index 25c0c97..a239ec8 100644 --- a/requirements.txt +++ b/requirements.txt @@ -2,6 +2,7 @@ # You will automatically get updates for all versions starting with "1.". rlbot==1.* rlbottraining +RLUtilities # This will cause pip to auto-upgrade and stop scaring people with warning messages pip diff --git a/run.py b/run.py index 6a223de..061aa9c 100644 --- a/run.py +++ b/run.py @@ -13,7 +13,8 @@ logger.log(logging_utils.logging_level, 'Skipping upgrade check for now since it looks like you have no internet') elif public_utils.is_safe_to_upgrade(): - subprocess.call([sys.executable, "-m", "pip", "install", '-r', 'requirements.txt', '--upgrade', '--upgrade-strategy=eager']) + subprocess.call([sys.executable, "-m", "pip", "install", '-r', 'requirements.txt']) + subprocess.call([sys.executable, "-m", "pip", "install", 'rlbot', '--upgrade']) # https://stackoverflow.com/a/44401013 rlbots = [module for module in sys.modules if module.startswith('rlbot')] diff --git a/src/bot.py b/src/bot.py index b428a79..99bfb64 100644 --- a/src/bot.py +++ b/src/bot.py @@ -1,16 +1,17 @@ -import math from typing import List from rlbot.agents.base_agent import BaseAgent, SimpleControllerState from rlbot.utils.structures.game_data_struct import GameTickPacket from rlbot.utils.structures.quick_chats import QuickChats +from util.aerial import AerialStep, LineUpForAerialStep +from util.drive import steer_toward_target from util.goal_detector import find_future_goal -from util.orientation import Orientation from util.sequence import Sequence, ControlStep from util.spikes import SpikeWatcher from util.vec import Vec3 + # Would you like to use numpy utilities? Check out the np_util folder! class MyBot(BaseAgent): @@ -27,6 +28,8 @@ def get_output(self, packet: GameTickPacket) -> SimpleControllerState: see the motion of the ball, etc. and return controls to drive your car. """ + # This is good to keep at the beginning of get_output. It will allow you to continue + # any sequences that you may have started during a previous call to get_output. if self.active_sequence and not self.active_sequence.done: return self.active_sequence.tick(packet) @@ -39,9 +42,7 @@ def get_output(self, packet: GameTickPacket) -> SimpleControllerState: if predicted_goal: goal_text = f"Goal in {predicted_goal.time - packet.game_info.seconds_elapsed:.2f}s" - ball_location = Vec3(packet.game_ball.physics.location) my_car = packet.game_cars[self.index] - car_location = Vec3(my_car.physics.location) car_velocity = Vec3(my_car.physics.velocity) # Example of using a sequence @@ -57,64 +58,32 @@ def get_output(self, packet: GameTickPacket) -> SimpleControllerState: # Example of using the spike watcher. # This will make the bot say I got it! when it spikes the ball, - # then release it 3 seconds later. + # then release it 2 seconds later. if self.spike_watcher.carrying_car == my_car: if self.spike_watcher.carry_duration == 0: self.send_quick_chat(QuickChats.CHAT_EVERYONE, QuickChats.Information_IGotIt) - elif self.spike_watcher.carry_duration > 3: + elif self.spike_watcher.carry_duration > 2: return SimpleControllerState(use_item=True) - # The rest of this code just ball chases. - # Find the direction of your car using the Orientation class - car_orientation = Orientation(my_car.physics.rotation) - car_direction = car_orientation.forward - - target = ball_location - car_to_target = target - car_location - steer_correction_radians = find_correction(car_direction, car_to_target) + # Example of doing an aerial. This will cause the car to jump and fly toward the + # ceiling in the middle of the field. + if my_car.boost > 50 and my_car.has_wheel_contact: + self.start_aerial(Vec3(0, 0, 2000), packet.game_info.seconds_elapsed + 4) + # If nothing else interesting happened, just chase the ball! + ball_location = Vec3(packet.game_ball.physics.location) + self.controller_state.steer = steer_toward_target(my_car, ball_location) self.controller_state.throttle = 1.0 - # Change the multiplier to influence the sharpness of steering. You'll wiggle if it's too high. - self.controller_state.steer = limit_to_safe_range(-steer_correction_radians * 5) - + # Draw some text on the screen draw_debug(self.renderer, [goal_text]) return self.controller_state - -def limit_to_safe_range(value: float) -> float: - """ - Controls like throttle, steer, pitch, yaw, and roll need to be in the range of -1 to 1. - This will ensure your number is in that range. Something like 0.45 will stay as it is, - but a value of -5.6 would be changed to -1. - """ - if value < -1: - return -1 - if value > 1: - return 1 - return value - - -def find_correction(current: Vec3, ideal: Vec3) -> float: - """ - Finds the angle from current to ideal vector in the xy-plane. Angle will be between -pi and +pi. - """ - - # The in-game axes are left handed, so use -x - current_in_radians = math.atan2(current.y, -current.x) - ideal_in_radians = math.atan2(ideal.y, -ideal.x) - - diff = ideal_in_radians - current_in_radians - - # Make sure that diff is between -pi and +pi. - if abs(diff) > math.pi: - if diff < 0: - diff += 2 * math.pi - else: - diff -= 2 * math.pi - - return diff + def start_aerial(self, target: Vec3, arrival_time: float): + self.active_sequence = Sequence([ + LineUpForAerialStep(target, arrival_time, self.index), + AerialStep(target, arrival_time, self.index)]) def draw_debug(renderer, text_lines: List[str]): diff --git a/src/util/aerial.py b/src/util/aerial.py new file mode 100644 index 0000000..1870556 --- /dev/null +++ b/src/util/aerial.py @@ -0,0 +1,77 @@ +from RLUtilities.GameInfo import GameInfo +from RLUtilities.LinearAlgebra import vec3 +from RLUtilities.Maneuvers import Aerial +from rlbot.agents.base_agent import SimpleControllerState +from rlbot.utils.structures.game_data_struct import GameTickPacket + +from util.drive import steer_toward_target +from util.sequence import Step, StepResult +from util.vec import Vec3 + + +MAX_SPEED_WITHOUT_BOOST = 1410 +SECONDS_PER_TICK = 0.008 # Assume a 120Hz game. It's OK if we're wrong, aerial will still go OK + + +class LineUpForAerialStep(Step): + """ + This will cause the car to steer toward the target until it is lined up enough and going at + an appropriate speed for a successful aerial. + """ + def __init__(self, target: Vec3, arrival_time: float, index: int): + self.target = target + self.arrival_time = arrival_time + self.index = index + + def tick(self, packet: GameTickPacket) -> StepResult: + car = packet.game_cars[self.index] + + seconds_till_arrival = self.arrival_time - packet.game_info.seconds_elapsed + if seconds_till_arrival <= 0: + return StepResult(SimpleControllerState(), done=True) + current_speed = Vec3(car.physics.velocity).length() + avg_speed_needed = Vec3(car.physics.location).flat().dist(self.target.flat()) / seconds_till_arrival + + steering = steer_toward_target(car, self.target) + controls = SimpleControllerState( + steer=steering, + throttle=1 if avg_speed_needed > current_speed else 0, + boost=avg_speed_needed > current_speed and avg_speed_needed > MAX_SPEED_WITHOUT_BOOST) + + ready_to_jump = abs(steering) < 0.1 and current_speed / avg_speed_needed > 0.7 + + return StepResult(controls, done=ready_to_jump) + + +class AerialStep(Step): + """ + This uses the Aerial controller provided by RLUtilities. Thanks chip! + It will take care of jumping off the ground and flying toward the target. + This will only work properly if you call tick repeatedly on the same instance. + """ + def __init__(self, target: Vec3, arrival_time: float, index: int): + self.index = index + self.aerial: Aerial = None + self.game_info: GameInfo = None + self.target = target + self.arrival_time = arrival_time + + def tick(self, packet: GameTickPacket) -> StepResult: + + if self.game_info is None: + self.game_info = GameInfo(self.index, packet.game_cars[self.index].team) + self.game_info.read_packet(packet) + + if self.aerial is None: + self.aerial = Aerial(self.game_info.my_car, vec3(self.target.x, self.target.y, self.target.z), + self.arrival_time) + + self.aerial.step(SECONDS_PER_TICK) + controls = SimpleControllerState() + controls.boost = self.aerial.controls.boost + controls.pitch = self.aerial.controls.pitch + controls.yaw = self.aerial.controls.yaw + controls.roll = self.aerial.controls.roll + controls.jump = self.aerial.controls.jump + + return StepResult(controls, packet.game_info.seconds_elapsed > self.arrival_time) diff --git a/src/util/drive.py b/src/util/drive.py new file mode 100644 index 0000000..ad1cad8 --- /dev/null +++ b/src/util/drive.py @@ -0,0 +1,26 @@ +import math + +from rlbot.utils.structures.game_data_struct import PlayerInfo + +from util.orientation import Orientation, relative_location +from util.vec import Vec3 + + +def limit_to_safe_range(value: float) -> float: + """ + Controls like throttle, steer, pitch, yaw, and roll need to be in the range of -1 to 1. + This will ensure your number is in that range. Something like 0.45 will stay as it is, + but a value of -5.6 would be changed to -1. + """ + if value < -1: + return -1 + if value > 1: + return 1 + return value + + + +def steer_toward_target(car: PlayerInfo, target: Vec3) -> float: + relative = relative_location(Vec3(car.physics.location), Orientation(car.physics.rotation), target) + angle = math.atan2(relative.y, relative.x) + return limit_to_safe_range(angle * 5) From a7fdfcaa5b553d55b6f8602fb9abae6bb80112c3 Mon Sep 17 00:00:00 2001 From: Viliam Vadocz Date: Fri, 14 Feb 2020 09:07:37 +0100 Subject: [PATCH 08/13] Vec3 improvements (#37) --- .gitignore | 2 ++ src/bot.py | 2 +- src/util/vec.py | 26 +++++++++++++++++++------- 3 files changed, 22 insertions(+), 8 deletions(-) diff --git a/.gitignore b/.gitignore index e7803d8..89563b0 100644 --- a/.gitignore +++ b/.gitignore @@ -110,4 +110,6 @@ ENV/ # Gradle files /.gradle +# VSCode .vscode/ +*.code-workspace diff --git a/src/bot.py b/src/bot.py index 99bfb64..9ac2d85 100644 --- a/src/bot.py +++ b/src/bot.py @@ -47,7 +47,7 @@ def get_output(self, packet: GameTickPacket) -> SimpleControllerState: # Example of using a sequence # This will do a front flip if the car's velocity is between 550 and 600 - if 550 < car_velocity.length() < 600: + if 550 < car_velocity.length < 600: self.active_sequence = Sequence([ ControlStep(0.05, SimpleControllerState(jump=True)), ControlStep(0.05, SimpleControllerState(jump=False)), diff --git a/src/util/vec.py b/src/util/vec.py index 6850e4f..055bc93 100644 --- a/src/util/vec.py +++ b/src/util/vec.py @@ -1,4 +1,5 @@ import math +from typing import Union # This is a helper class for vector math. You can extend it or delete if you want. @@ -13,8 +14,14 @@ class Vec3: When in doubt visit the wiki: https://github.com/RLBot/RLBot/wiki/Useful-Game-Values """ - - def __init__(self, x: float or 'Vec3'=0, y: float=0, z: float=0): + # https://docs.python.org/3/reference/datamodel.html#slots + __slots__ = [ + 'x', + 'y', + 'z' + ] + + def __init__(self, x: Union[float, 'Vec3']=0, y: float=0, z: float=0): """ Create a new Vec3. The x component can alternatively be another vector with an x, y, and z component, in which case the created vector is a copy of the given vector and the y and z parameter is ignored. Examples: @@ -58,27 +65,32 @@ def __truediv__(self, scale: float) -> 'Vec3': return self * scale def __str__(self): - return "Vec3(" + str(self.x) + ", " + str(self.y) + ", " + str(self.z) + ")" + return f"Vec3({self.x:.2f}, {self.y:.2f}, {self.z:.2f})" + + def __repr__(self): + return self.__str__() def flat(self): """Returns a new Vec3 that equals this Vec3 but projected onto the ground plane. I.e. where z=0.""" return Vec3(self.x, self.y, 0) + @property def length(self): """Returns the length of the vector. Also called magnitude and norm.""" return math.sqrt(self.x**2 + self.y**2 + self.z**2) def dist(self, other: 'Vec3') -> float: """Returns the distance between this vector and another vector using pythagoras.""" - return (self - other).length() + return (self - other).length + @property def normalized(self): """Returns a vector with the same direction but a length of one.""" - return self / self.length() + return self / self.length def rescale(self, new_len: float) -> 'Vec3': """Returns a vector with the same direction but a different length.""" - return new_len * self.normalized() + return new_len * self.normalized def dot(self, other: 'Vec3') -> float: """Returns the dot product.""" @@ -94,5 +106,5 @@ def cross(self, other: 'Vec3') -> 'Vec3': def ang_to(self, ideal: 'Vec3') -> float: """Returns the angle to the ideal vector. Angle will be between 0 and pi.""" - cos_ang = self.dot(ideal) / (self.length() * ideal.length()) + cos_ang = self.dot(ideal) / (self.length * ideal.length) return math.acos(cos_ang) From 5d5367b524bd15acd2427f8b8bb2d6f28dff66b3 Mon Sep 17 00:00:00 2001 From: Tyler Arehart Date: Fri, 14 Feb 2020 00:28:07 -0800 Subject: [PATCH 09/13] Reverting property annotations on Vec3 length() and normalized() --- src/bot.py | 2 +- src/util/vec.py | 15 +++++++-------- 2 files changed, 8 insertions(+), 9 deletions(-) diff --git a/src/bot.py b/src/bot.py index 9ac2d85..99bfb64 100644 --- a/src/bot.py +++ b/src/bot.py @@ -47,7 +47,7 @@ def get_output(self, packet: GameTickPacket) -> SimpleControllerState: # Example of using a sequence # This will do a front flip if the car's velocity is between 550 and 600 - if 550 < car_velocity.length < 600: + if 550 < car_velocity.length() < 600: self.active_sequence = Sequence([ ControlStep(0.05, SimpleControllerState(jump=True)), ControlStep(0.05, SimpleControllerState(jump=False)), diff --git a/src/util/vec.py b/src/util/vec.py index 055bc93..9ce74ac 100644 --- a/src/util/vec.py +++ b/src/util/vec.py @@ -1,8 +1,9 @@ import math from typing import Union +from rlbot.utils.structures.game_data_struct import Vector3 + -# This is a helper class for vector math. You can extend it or delete if you want. class Vec3: """ This class should provide you with all the basic vector operations that you need, but feel free to extend its @@ -21,7 +22,7 @@ class Vec3: 'z' ] - def __init__(self, x: Union[float, 'Vec3']=0, y: float=0, z: float=0): + def __init__(self, x: Union[float, 'Vec3', 'Vector3']=0, y: float=0, z: float=0): """ Create a new Vec3. The x component can alternatively be another vector with an x, y, and z component, in which case the created vector is a copy of the given vector and the y and z parameter is ignored. Examples: @@ -74,23 +75,21 @@ def flat(self): """Returns a new Vec3 that equals this Vec3 but projected onto the ground plane. I.e. where z=0.""" return Vec3(self.x, self.y, 0) - @property def length(self): """Returns the length of the vector. Also called magnitude and norm.""" return math.sqrt(self.x**2 + self.y**2 + self.z**2) def dist(self, other: 'Vec3') -> float: """Returns the distance between this vector and another vector using pythagoras.""" - return (self - other).length + return (self - other).length() - @property def normalized(self): """Returns a vector with the same direction but a length of one.""" - return self / self.length + return self / self.length() def rescale(self, new_len: float) -> 'Vec3': """Returns a vector with the same direction but a different length.""" - return new_len * self.normalized + return new_len * self.normalized() def dot(self, other: 'Vec3') -> float: """Returns the dot product.""" @@ -106,5 +105,5 @@ def cross(self, other: 'Vec3') -> 'Vec3': def ang_to(self, ideal: 'Vec3') -> float: """Returns the angle to the ideal vector. Angle will be between 0 and pi.""" - cos_ang = self.dot(ideal) / (self.length * ideal.length) + cos_ang = self.dot(ideal) / (self.length() * ideal.length()) return math.acos(cos_ang) From ee389dc6e8106350e6c07741d3117a215ac8e64a Mon Sep 17 00:00:00 2001 From: L0laapk3 Date: Sat, 15 Feb 2020 22:05:30 +0100 Subject: [PATCH 10/13] pylint fixes (#39) --- .env | 1 + .gitignore | 3 --- .pylintrc | 2 ++ src/util/__init__.py | 0 4 files changed, 3 insertions(+), 3 deletions(-) create mode 100644 .env create mode 100644 .pylintrc create mode 100644 src/util/__init__.py diff --git a/.env b/.env new file mode 100644 index 0000000..56a282d --- /dev/null +++ b/.env @@ -0,0 +1 @@ +PYTHONPATH=src diff --git a/.gitignore b/.gitignore index 89563b0..122e90e 100644 --- a/.gitignore +++ b/.gitignore @@ -79,9 +79,6 @@ celerybeat-schedule # SageMath parsed files *.sage.py -# dotenv -.env - # virtualenv .venv venv/ diff --git a/.pylintrc b/.pylintrc new file mode 100644 index 0000000..9db66d4 --- /dev/null +++ b/.pylintrc @@ -0,0 +1,2 @@ +[TYPECHECK] +generated-members=QuickChats.* diff --git a/src/util/__init__.py b/src/util/__init__.py new file mode 100644 index 0000000..e69de29 From 2dc260bf94b1461b07305ef9a773df2be757bd89 Mon Sep 17 00:00:00 2001 From: Scott Conner <39441634+DaCoolOne@users.noreply.github.com> Date: Sat, 15 Feb 2020 15:09:20 -0600 Subject: [PATCH 11/13] 1D Kinematics (#38) --- src/util/acceleration.txt | 149 +++++++++++++++++++++++++ src/util/boost_acceleration.txt | 103 +++++++++++++++++ src/util/constants.py | 41 +++++++ src/util/kinematics.py | 191 ++++++++++++++++++++++++++++++++ 4 files changed, 484 insertions(+) create mode 100644 src/util/acceleration.txt create mode 100644 src/util/boost_acceleration.txt create mode 100644 src/util/constants.py create mode 100644 src/util/kinematics.py diff --git a/src/util/acceleration.txt b/src/util/acceleration.txt new file mode 100644 index 0000000..3c95dc4 --- /dev/null +++ b/src/util/acceleration.txt @@ -0,0 +1,149 @@ +0.0,0.0,0.0 +0.016666412353515625,26.55099868774414,0.330078125 +0.033333778381347656,52.64099884033203,1.10009765625 +0.05000019073486328,78.29100036621094,2.30029296875 +0.0666666030883789,103.5009994506836,3.919921875 +0.08333301544189453,128.281005859375,5.9599609375 +0.10000038146972656,152.64100646972656,8.39990234375 +0.11666679382324219,176.5810089111328,11.240234375 +0.1333332061767578,200.1110076904297,14.47998046875 +0.14999961853027344,223.2310028076172,18.10009765625 +0.16666698455810547,245.97100830078125,22.10986328125 +0.1833333969116211,268.3210144042969,26.490234375 +0.19999980926513672,290.291015625,31.240234375 +0.21666717529296875,311.8810119628906,36.35009765625 +0.23333358764648438,333.1109924316406,41.8203125 +0.25,353.96099853515625,47.6298828125 +0.2666664123535156,374.47100830078125,53.7900390625 +0.28333377838134766,394.6210021972656,60.2900390625 +0.3000001907348633,414.4309997558594,67.10986328125 +0.3166666030883789,433.9010009765625,74.27001953125 +0.33333301544189453,453.0409851074219,81.75 +0.35000038146972656,471.8609924316406,89.5302734375 +0.3666667938232422,490.3609924316406,97.6298828125 +0.3833332061767578,508.5409851074219,106.0302734375 +0.39999961853027344,526.4009399414062,114.72998046875 +0.41666698455810547,543.9609375,123.72021484375 +0.4333333969116211,561.220947265625,133.01025390625 +0.4499998092651367,578.1909790039062,142.580078125 +0.46666717529296875,594.8609619140625,152.43017578125 +0.4833335876464844,611.2509765625,162.55029296875 +0.5,627.3609619140625,172.93994140625 +0.5166664123535156,643.1909790039062,183.59033203125 +0.5333337783813477,658.760986328125,194.51025390625 +0.5500001907348633,674.0609741210938,205.68017578125 +0.5666666030883789,689.1009521484375,217.10009765625 +0.5833330154418945,703.8809814453125,228.77001953125 +0.6000003814697266,718.4109497070312,240.68994140625 +0.6166667938232422,732.6909790039062,252.85009765625 +0.6333332061767578,746.73095703125,265.22998046875 +0.6499996185302734,760.5309448242188,277.85009765625 +0.6666669845581055,774.0909423828125,290.68994140625 +0.6833333969116211,787.4309692382812,303.76025390625 +0.6999998092651367,800.5309448242188,317.05029296875 +0.7166671752929688,813.4109497070312,330.56005859375 +0.7333335876464844,826.0709838867188,344.27001953125 +0.75,838.5209350585938,358.2001953125 +0.7666664123535156,850.7509765625,372.330078125 +0.7833337783813477,862.7809448242188,386.66015625 +0.8000001907348633,874.6009521484375,401.18994140625 +0.8166666030883789,886.2109375,415.919921875 +0.8333330154418945,897.6309814453125,430.830078125 +0.8500003814697266,908.8609619140625,445.93017578125 +0.8666667938232422,919.8909301757812,461.22021484375 +0.8833332061767578,930.740966796875,476.68994140625 +0.8999996185302734,941.4009399414062,492.34033203125 +0.9166669845581055,951.8809814453125,508.16015625 +0.9333333969116211,962.1809692382812,524.16015625 +0.9499998092651367,972.3009643554688,540.320068359375 +0.9666671752929688,982.2509765625,556.650146484375 +0.9833335876464844,992.0309448242188,573.150146484375 +1.0,1001.6509399414062,589.81005859375 +1.0166664123535156,1011.0909423828125,606.630126953125 +1.0333337783813477,1020.3709716796875,623.60009765625 +1.0500001907348633,1029.5009765625,640.719970703125 +1.066666603088379,1038.48095703125,657.989990234375 +1.0833330154418945,1047.3009033203125,675.41015625 +1.1000003814697266,1055.970947265625,692.969970703125 +1.1166667938232422,1064.490966796875,710.68017578125 +1.1333332061767578,1072.8709716796875,728.530029296875 +1.1499996185302734,1081.1009521484375,746.52001953125 +1.1666669845581055,1089.19091796875,764.64013671875 +1.183333396911621,1097.1409912109375,782.89013671875 +1.1999998092651367,1104.9609375,801.280029296875 +1.2166671752929688,1112.6510009765625,819.7900390625 +1.2333335876464844,1120.200927734375,838.43017578125 +1.25,1127.6309814453125,857.2001953125 +1.2666664123535156,1134.930908203125,876.090087890625 +1.2833337783813477,1142.1009521484375,895.10009765625 +1.3000001907348633,1149.1510009765625,914.22998046875 +1.3249998092651367,1159.5009765625,943.130126953125 +1.3416671752929688,1166.2509765625,962.5400390625 +1.3583335876464844,1172.8909912109375,982.06005859375 +1.375,1179.4208984375,1001.690185546875 +1.3916664123535156,1185.8309326171875,1021.43017578125 +1.4083337783813477,1192.1409912109375,1041.280029296875 +1.4250001907348633,1198.3409423828125,1061.22998046875 +1.441666603088379,1204.430908203125,1081.280029296875 +1.4583330154418945,1210.4208984375,1101.43017578125 +1.4750003814697266,1216.3109130859375,1121.68017578125 +1.4916667938232422,1222.1009521484375,1142.02001953125 +1.5083332061767578,1227.7908935546875,1162.4599609375 +1.5249996185302734,1233.3809814453125,1183.0 +1.5416669845581055,1238.8809814453125,1203.6201171875 +1.558333396911621,1244.281005859375,1224.340087890625 +1.5749998092651367,1249.5909423828125,1245.14013671875 +1.5916671752929688,1254.8109130859375,1266.0400390625 +1.6083335876464844,1259.94091796875,1287.02001953125 +1.625,1264.98095703125,1308.080078125 +1.6416664123535156,1269.94091796875,1329.219970703125 +1.6583337783813477,1274.8109130859375,1350.440185546875 +1.6750001907348633,1279.5909423828125,1371.739990234375 +1.691666603088379,1284.2908935546875,1393.1201171875 +1.7083330154418945,1288.910888671875,1414.580078125 +1.7250003814697266,1293.450927734375,1436.1201171875 +1.7416667938232422,1297.910888671875,1457.739990234375 +1.7583332061767578,1302.3109130859375,1479.420166015625 +1.7749996185302734,1306.6309814453125,1501.18017578125 +1.7916669845581055,1310.8709716796875,1523.010009765625 +1.808333396911621,1315.0408935546875,1544.91015625 +1.8249998092651367,1319.1409912109375,1566.880126953125 +1.8416671752929688,1323.1708984375,1588.920166015625 +1.8583335876464844,1327.1309814453125,1611.02001953125 +1.875,1331.031005859375,1633.190185546875 +1.8916664123535156,1334.8609619140625,1655.420166015625 +1.9083337783813477,1338.6209716796875,1677.719970703125 +1.9250001907348633,1342.3209228515625,1700.080078125 +1.941666603088379,1345.9609375,1722.5 +1.9583330154418945,1349.531005859375,1744.97998046875 +1.9750003814697266,1353.0408935546875,1767.52001953125 +1.9916667938232422,1356.490966796875,1790.110107421875 +2.008333206176758,1359.8809814453125,1812.760009765625 +2.0249996185302734,1363.2109375,1835.469970703125 +2.0416669845581055,1366.490966796875,1858.22998046875 +2.058333396911621,1369.7109375,1881.0400390625 +2.0749998092651367,1372.8809814453125,1903.91015625 +2.0916671752929688,1375.990966796875,1926.830078125 +2.1083335876464844,1379.0509033203125,1949.800048828125 +2.125,1382.0609130859375,1972.830078125 +2.1416664123535156,1385.010986328125,1995.900146484375 +2.1583337783813477,1387.9208984375,2019.02001953125 +2.1750001907348633,1390.77099609375,2042.18994140625 +2.191666603088379,1393.5809326171875,2065.400146484375 +2.2083330154418945,1396.3409423828125,2088.66015625 +2.2250003814697266,1399.0509033203125,2111.969970703125 +2.241666793823242,1401.69091796875,2135.320068359375 +2.258333206176758,1403.8009033203125,2158.7099609375 +2.2749996185302734,1405.3909912109375,2182.130126953125 +2.2916669845581055,1406.5809326171875,2205.570068359375 +2.308333396911621,1407.470947265625,2229.030029296875 +2.3249998092651367,1408.1409912109375,2252.489990234375 +2.3416671752929688,1408.6409912109375,2275.969970703125 +2.3583335876464844,1409.02099609375,2299.449951171875 +2.375,1409.3009033203125,2322.929931640625 +2.3916664123535156,1409.52099609375,2346.429931640625 +2.4083337783813477,1409.680908203125,2369.929931640625 +2.4250001907348633,1409.8109130859375,2393.429931640625 +2.441666603088379,1409.9010009765625,2416.929931640625 +2.4583330154418945,1409.970947265625,2440.429931640625 +2.4750003814697266,1410.02099609375,2463.929931640625 \ No newline at end of file diff --git a/src/util/boost_acceleration.txt b/src/util/boost_acceleration.txt new file mode 100644 index 0000000..8f8e458 --- /dev/null +++ b/src/util/boost_acceleration.txt @@ -0,0 +1,103 @@ +0.0,0.0,0.0 +0.016666412353515625,43.00764765268562,0.5374943827180316 +0.03333282470703125,85.27849016884997,1.7819228992694198 +0.049999237060546875,126.81394098520472,3.7336308384274672 +0.0666666030883789,167.64229041516953,6.363961030678928 +0.08333301544189453,207.77767822065763,9.6591891164428 +0.09999942779541016,247.2342279791924,13.618969828011853 +0.11666584014892578,286.0119612699603,18.229319851958284 +0.1333332061767578,324.1250340392644,23.47608324218658 +0.14999961853027344,361.5875374958483,29.34493141924172 +0.16666603088378906,398.4065928341092,35.83629596664811 +0.1833324432373047,434.5963127109964,42.92859828146851 +0.19999980926513672,470.163775168645,50.621837108024934 +0.21666622161865234,505.1372920994572,58.89503817888214 +0.23333263397216797,539.5168203449174,67.74802883307527 +0.25,573.3023814838411,77.16665312491072 +0.2666664123535156,606.5081098840631,87.13684144620449 +0.28333282470703125,639.1481614907888,97.65859376490442 +0.2999992370605469,671.2366490928828,108.71775416023387 +0.3166666030883789,702.7736374271519,120.3001666609025 +0.33333301544189453,733.7731313858027,132.39167534146918 +0.34999942779541016,764.2494163902325,144.99228018175978 +0.3666658401489258,794.1954145611222,158.10206751199178 +0.3833332061767578,823.625195336956,171.70688138445362 +0.39999961853027344,852.5670708554302,185.79239321164124 +0.41666603088378906,881.0069280275319,200.35886194743838 +0.4333324432373047,908.965914611802,215.39187269226483 +0.4499998092651367,936.4440737634242,230.89159808534984 +0.46666622161865234,963.4555614287252,246.84396849394528 +0.48333263397216797,990.01449039843,263.23474165723405 +0.5,1016.1208606687416,280.0638312513733 +0.5166664123535156,1041.7747154007673,297.31716765373824 +0.5333328247070312,1066.9901242239603,314.99483717867383 +0.5499992370605469,1091.7742084275621,333.08268387982463 +0.5666666030883789,1116.141123637369,351.5947773884452 +0.5833330154418945,1140.0837488827951,370.50271948990405 +0.5999994277954102,1163.6303960564699,389.8068554579696 +0.6166658401489258,1186.7669523735822,409.4856062832123 +0.6333332061767578,1209.5074874594986,429.5532138577795 +0.6499996185302734,1231.8662004219514,449.98861708411994 +0.6666660308837891,1253.828978471962,470.7918159728739 +0.6833324432373047,1275.4240040279465,491.96255156029065 +0.6999998092651367,1296.6513202453873,513.4869268532884 +0.7166662216186523,1317.5251262318113,535.3506132768902 +0.733332633972168,1338.0312228815735,557.5536971452981 +0.75,1358.1979220872593,580.0962647731118 +0.7666664123535156,1378.025180691369,602.9783161686228 +0.7833328247070312,1397.5130418496062,626.192600912765 +0.7999992370605469,1415.798812849388,649.7108930277763 +0.8166666030883789,1432.316860055867,673.5121314417574 +0.8333330154418945,1448.8348641031853,697.5962298294531 +0.8499994277954102,1465.3528681489101,721.956024146598 +0.8666658401489258,1481.8708721980347,746.5775305865834 +0.8833332061767578,1498.388876243933,771.4818106866253 +0.8999996185302734,1514.9068802931533,796.6690370801418 +0.9166660308837891,1531.4249706575538,822.1248811872807 +0.9333324432373047,1547.9428883885237,847.8493430079805 +0.9499998092651367,1564.4609787530442,873.8567511219721 +0.9666662216186523,1580.9789827993325,900.1469328957153 +0.983332633972168,1597.4969868487628,926.698827286483 +1.0,1614.0149908951919,953.5264171136503 +1.0166664123535156,1630.5329949446964,980.6369532342433 +1.0333328247070312,1647.0510853094852,1008.0302630147169 +1.0499992370605469,1663.5690030408316,1035.6781208762318 +1.066666603088379,1680.087093405717,1063.6088387172995 +1.0833330154418945,1696.6050974524646,1091.822416537646 +1.0999994277954102,1713.1231015021333,1120.3046983852773 +1.1166658401489258,1729.6411055489966,1149.055597946279 +1.1333332061767578,1746.1591095987237,1178.0894438004054 +1.1499996185302734,1762.6771136456969,1207.4060633141346 +1.166666030883789,1779.1951176954785,1236.9914731746321 +1.1833324432373047,1795.7132080606605,1266.845500748379 +1.1999998092651367,1812.2311257923886,1296.9823882960416 +1.2166662216186523,1828.7492161576452,1327.4020495079078 +1.233332633972168,1845.2672202048693,1358.0835096105764 +1.25,1861.7852242547729,1389.0405788727621 +1.2666664123535156,1878.303228302089,1420.2805944333088 +1.2833328247070312,1894.8212323520363,1451.8033836482684 +1.2999992370605469,1911.3392363994399,1483.5808072687178 +1.316666603088379,1927.8572404494282,1515.6409613865883 +1.3333330154418945,1944.3753308149162,1547.9840186403153 +1.3499994277954102,1960.8932485469425,1580.6029012626748 +1.3666658401489258,1977.411338912489,1613.4833665720246 +1.3833332061767578,1993.9293429600946,1646.6466486980312 +1.3999996185302734,2010.447347010175,1680.0928339600403 +1.416666030883789,2026.965351057855,1713.8076369352905 +1.4333324432373047,2043.483355107969,1747.7912302572531 +1.4499998092651367,2060.00135915572,1782.0575972387146 +1.4666662216186523,2076.519363205865,1816.606867355953 +1.483332633972168,2093.037453571596,1851.4177637303803 +1.5,2109.555371303859,1886.5043555844404 +1.5166664123535156,2126.0734616696373,1921.8738074173764 +1.5333328247070312,2142.591465717553,1957.5261192240416 +1.5499992370605469,2159.1094697677695,1993.433022274007 +1.566666603088379,2175.6274738157467,2029.622785302613 +1.5833330154418945,2192.1454778659886,2066.0953219858793 +1.5999994277954102,2208.6634819140245,2102.843640876819 +1.6166658401489258,2225.1814859642905,2139.8536287784473 +1.6333332061767578,2241.6995763302175,2177.1464550752225 +1.6499996185302734,2258.2174940626724,2214.7220981911396 +1.666666030883789,2274.7355844286376,2252.566466915552 +1.6833324432373047,2291.253588476811,2290.67953966989 +1.6999998092651367,2299.9934179346674,2329.0754076622866 \ No newline at end of file diff --git a/src/util/constants.py b/src/util/constants.py new file mode 100644 index 0000000..60aa9bb --- /dev/null +++ b/src/util/constants.py @@ -0,0 +1,41 @@ + + +from enum import Enum + + +class DIRECTION(Enum): + NONE = 0 + FORWARD = 1 + BACKWARD = 2 + LEFT = 3 + RIGHT = 4 + UP = 5 + DOWN = 6 + + +class AERIALTAKEOFF(Enum): + NONE = 0 + QUICK = 1 + QUICK_SINGLE = 2 + SINGLE = 3 + DOUBLE = 4 + FALL = 5 + + +class KICKOFFTYPE(Enum): + NONE = 0 + OFF_CENTER = 1 + DIAGONAL = 2 + STRAIGHT = 3 + + +OCTANE_LENGTH = 82.5 +BALL_RADIUS = 92.75 +BOOST_CONSUMPTION_RATE = 33.3 +INV_BOOST_CONSUMPTION_RATE = 1 / BOOST_CONSUMPTION_RATE +BOOST_ACCELERATION = 1066 +CAR_BRAKING = 3500 +ZERO_THROTTLE = 525 +MAX_CAR_VEL = 2300 +INV_MAX_CAR_VEL = 1 / MAX_CAR_VEL +TOP_DRIVE_VEL = 1410 diff --git a/src/util/kinematics.py b/src/util/kinematics.py new file mode 100644 index 0000000..f18c0e6 --- /dev/null +++ b/src/util/kinematics.py @@ -0,0 +1,191 @@ + +from __future__ import annotations + +import math +import os +import sys + +from util.constants import INV_BOOST_CONSUMPTION_RATE, TOP_DRIVE_VEL, BOOST_CONSUMPTION_RATE + +from typing import List + +epsilon = sys.float_info.epsilon + + +def sign(n: float) -> float: + return -1 if n < 0 else 1 + + +def not_zero(n: float) -> float: + return n if abs(n) > epsilon else epsilon * sign(n) + + +# A single point of a loop-up table. +class AccelerationModelPoint: + def __init__(self, time: float, velocity: float, position: float): + self.time = time + self.velocity = velocity + self.position = position + + def copy(self) -> AccelerationModelPoint: + return AccelerationModelPoint(self.time, self.velocity, self.position) + + @staticmethod + def create(line: str) -> AccelerationModelPoint: + nums = line.split(",") + return AccelerationModelPoint(float(nums[0]), float(nums[1]), float(nums[2])) + + +# Creates a lookup table from a file. +def create_lut(file_name: str) -> List[AccelerationModelPoint]: + cwd = os.getcwd() + _path = os.path.dirname(os.path.realpath(__file__)) + os.chdir(_path) + + lut_f = open(file_name, "r") + lut = [] + for line in lut_f.readlines(): + if len(line) > 0: + a = AccelerationModelPoint.create(line) + lut.append(a) + + os.chdir(cwd) + + return lut + + +# Binary search time +def get_time(arr: List[AccelerationModelPoint], val: float, s: int = 0, e: int = -1) -> AccelerationModelPoint: + if e < 0: + e = len(arr) + length = e - s + div = s + int(length * 0.5) + if length == 1: + return arr[div] + elif arr[div].time > val: + return get_time(arr, val, s, div) + else: + return get_time(arr, val, div, e) + + +# Binary search velocity +def get_velocity(arr: List[AccelerationModelPoint], val: float, s: int = 0, e: int = -1) -> AccelerationModelPoint: + if e < 0: + e = len(arr) + length = e - s + div = s + math.floor(length * 0.5) + if length == 1: + return arr[div] + elif arr[div].velocity > val: + return get_velocity(arr, val, s, div) + else: + return get_velocity(arr, val, div, e) + + +# Binary search position +def get_position(arr: List[AccelerationModelPoint], val: float, s: int = 0, e: int = -1) -> AccelerationModelPoint: + if e < 0: + e = len(arr) + length = e - s + div = s + math.floor(length * 0.5) + if length == 1: + return arr[div] + elif arr[div].position > val: + return get_position(arr, val, s, div) + else: + return get_position(arr, val, div, e) + + +# Lookup tables. I could have put these in constants, but that would create some awkward imports. +ACCELERATION_LUT = create_lut("util/acceleration.txt") +BOOST_ACCELERATION_LUT = create_lut("util/boost_acceleration.txt") + + +# Returned by Kinematics1D functions. +class DriveManeuver: + def __init__(self, dist: float, vel: float, time: float, boost: float): + self.distance = dist + self.velocity = vel + self.time = time + self.boost = boost + + +DriveManeuver.failed = DriveManeuver(0, 0, 0, 0) + + +# Simple drive without flips or wave dashes. +# PLEASE DO NOT ASK ME HOW THIS WORKS! I DON'T HAVE THE BRAIN SPACE TO ACTUALLY FIGURE IT OUT AND I DON'T REMEMBER WHAT +# I WAS THINKING AT THE TIME I WROTE THIS! +class Kinematics1D: + + @staticmethod + def from_length(length: float, initial_v: float = 0, boost: float = 0) -> DriveManeuver: + no_boost_time = boost * INV_BOOST_CONSUMPTION_RATE + initial_conditions = get_velocity(BOOST_ACCELERATION_LUT, initial_v) + no_boost = get_time(BOOST_ACCELERATION_LUT, initial_conditions.time + no_boost_time) + + # assume we have boost the entire time + end_loc_1 = get_position(BOOST_ACCELERATION_LUT, initial_conditions.position + length) + + if end_loc_1.time > no_boost.time: + if no_boost.velocity > TOP_DRIVE_VEL: + extra_time = (length - (no_boost.position - initial_conditions.position)) / no_boost.velocity + return DriveManeuver(length, no_boost.velocity, no_boost.time + extra_time, boost) + else: + initial_no_boost = get_velocity(ACCELERATION_LUT, no_boost.velocity) + final_no_boost = get_position(ACCELERATION_LUT, initial_no_boost.position + length - ( + no_boost.position - initial_conditions.position)) + + return DriveManeuver(length, final_no_boost.velocity, no_boost.time - initial_conditions.time + + initial_no_boost.time - final_no_boost.time, boost) + else: + extra_time = (length - (end_loc_1.position - initial_conditions.position)) / not_zero(end_loc_1.velocity) + time = end_loc_1.time - initial_conditions.time + return DriveManeuver(length, end_loc_1.velocity, time + extra_time, time * BOOST_CONSUMPTION_RATE) + + @staticmethod + def from_velocity(vel: float, initial_v: float = 0, boost: float = 0) -> DriveManeuver: + no_boost_time = boost * INV_BOOST_CONSUMPTION_RATE + initial_conditions = get_velocity(BOOST_ACCELERATION_LUT, initial_v) + no_boost = get_time(BOOST_ACCELERATION_LUT, initial_conditions.time + no_boost_time) + + end_loc_1 = get_velocity(BOOST_ACCELERATION_LUT, vel) + + if end_loc_1.time > no_boost.time: + if vel > TOP_DRIVE_VEL: + return DriveManeuver.failed + else: + start_loc_2 = get_velocity(ACCELERATION_LUT, no_boost.velocity) + end_loc_2 = get_velocity(ACCELERATION_LUT, vel) + length = end_loc_1.position - initial_conditions.position + end_loc_2.position - start_loc_2.position + time = end_loc_1.time - initial_conditions.time + end_loc_2.time - start_loc_2.time + return DriveManeuver(length, vel, time, boost) + else: + time = end_loc_1.time - initial_conditions.time + return DriveManeuver(end_loc_1.position - initial_conditions.position, vel, time, + time * BOOST_CONSUMPTION_RATE) + + @staticmethod + def from_time(time: float, initial_v: float = 0, boost: float = 0) -> DriveManeuver: + + initial_conditions = get_velocity(BOOST_ACCELERATION_LUT, initial_v) + + no_boost_time = boost * INV_BOOST_CONSUMPTION_RATE + + no_boost = get_time(BOOST_ACCELERATION_LUT, initial_conditions.time + no_boost_time) + + if no_boost.velocity > TOP_DRIVE_VEL: + extra = no_boost.velocity * (time - (no_boost.time - initial_conditions.time)) + return DriveManeuver(no_boost.position - initial_conditions.position + extra, no_boost.velocity, + time, (no_boost.time - initial_conditions.time) * BOOST_CONSUMPTION_RATE) + else: + start_loc_2 = get_velocity(ACCELERATION_LUT, no_boost.velocity) + end_loc_2 = get_time( + ACCELERATION_LUT, start_loc_2.time + time - (no_boost.time - initial_conditions.time)) + length = ( + no_boost.position - initial_conditions.position + end_loc_2.position - start_loc_2.position) + + time_taken = (end_loc_2.time - start_loc_2.time + no_boost.time - initial_conditions.time) + extra = end_loc_2.velocity * (time - time_taken) + + return DriveManeuver(length + extra, end_loc_2.velocity, time, boost) From a8d15948df51d5bc3b12a423282a28773ef0026d Mon Sep 17 00:00:00 2001 From: Tyler Arehart Date: Sun, 26 Apr 2020 08:27:11 -0700 Subject: [PATCH 12/13] Converting from spike rush to heatseeker. --- rlbot.cfg | 3 +-- src/bot.cfg | 2 +- src/bot.py | 13 +------------ src/util/spikes.py | 36 ------------------------------------ 4 files changed, 3 insertions(+), 51 deletions(-) delete mode 100644 src/util/spikes.py diff --git a/rlbot.cfg b/rlbot.cfg index bc3f28d..92fdf37 100644 --- a/rlbot.cfg +++ b/rlbot.cfg @@ -7,12 +7,11 @@ [Match Configuration] # Number of bots/players which will be spawned. We support up to max 64. num_participants = 1 -game_mode = Soccer +game_mode = Heatseeker game_map = Mannfield [Mutator Configuration] # Visit https://github.com/RLBot/RLBot/wiki/Config-File-Documentation to see what you can put here. -Rumble = Spike Rush [Participant Configuration] # Put the name of your bot config file here. Only num_participants config files will be read! diff --git a/src/bot.cfg b/src/bot.cfg index 247ba37..d72ea71 100644 --- a/src/bot.cfg +++ b/src/bot.cfg @@ -6,7 +6,7 @@ looks_config = ./appearance.cfg python_file = ./bot.py # Name of the bot in-game -name = SpikeRushExampleBot +name = HeatseekerHustle # The maximum number of ticks per second that your bot wishes to receive. maximum_tick_rate_preference = 120 diff --git a/src/bot.py b/src/bot.py index 99bfb64..8fa1905 100644 --- a/src/bot.py +++ b/src/bot.py @@ -8,7 +8,6 @@ from util.drive import steer_toward_target from util.goal_detector import find_future_goal from util.sequence import Sequence, ControlStep -from util.spikes import SpikeWatcher from util.vec import Vec3 @@ -20,7 +19,6 @@ def initialize_agent(self): # This runs once before the bot starts up self.controller_state = SimpleControllerState() self.active_sequence: Sequence = None - self.spike_watcher = SpikeWatcher() def get_output(self, packet: GameTickPacket) -> SimpleControllerState: """ @@ -33,7 +31,6 @@ def get_output(self, packet: GameTickPacket) -> SimpleControllerState: if self.active_sequence and not self.active_sequence.done: return self.active_sequence.tick(packet) - self.spike_watcher.read_packet(packet) ball_prediction = self.get_ball_prediction_struct() # Example of predicting a goal event @@ -56,18 +53,10 @@ def get_output(self, packet: GameTickPacket) -> SimpleControllerState: ]) return self.active_sequence.tick(packet) - # Example of using the spike watcher. - # This will make the bot say I got it! when it spikes the ball, - # then release it 2 seconds later. - if self.spike_watcher.carrying_car == my_car: - if self.spike_watcher.carry_duration == 0: - self.send_quick_chat(QuickChats.CHAT_EVERYONE, QuickChats.Information_IGotIt) - elif self.spike_watcher.carry_duration > 2: - return SimpleControllerState(use_item=True) # Example of doing an aerial. This will cause the car to jump and fly toward the # ceiling in the middle of the field. - if my_car.boost > 50 and my_car.has_wheel_contact: + if my_car.has_wheel_contact and packet.game_ball.physics.location.z > 1000: self.start_aerial(Vec3(0, 0, 2000), packet.game_info.seconds_elapsed + 4) # If nothing else interesting happened, just chase the ball! diff --git a/src/util/spikes.py b/src/util/spikes.py deleted file mode 100644 index 582c30a..0000000 --- a/src/util/spikes.py +++ /dev/null @@ -1,36 +0,0 @@ -from rlbot.utils.structures.game_data_struct import PlayerInfo, GameTickPacket - -from util.vec import Vec3 - -# When the ball is attached to a car's spikes, the distance will vary a bit depending on whether the ball is -# on the front bumper, the roof, etc. It tends to be most far away when the ball is on one of the front corners -# and that distance is a little under 200. We want to be sure that it's never over 200, otherwise bots will -# suffer from bad bugs when they don't think the ball is spiked to them but it actually is; they'll probably -# drive in circles. The opposite problem, where they think it's spiked before it really is, is not so bad because -# they usually spike it for real a split second later. -MAX_DISTANCE_WHEN_SPIKED = 200 - -class SpikeWatcher: - def __init__(self): - self.carrying_car: PlayerInfo = None - self.spike_moment = 0 - self.carry_duration = 0 - - def read_packet(self, packet: GameTickPacket): - ball_location = Vec3(packet.game_ball.physics.location) - closest_candidate: PlayerInfo = None - closest_distance = 999999 - for i in range(packet.num_cars): - car = packet.game_cars[i] - car_location = Vec3(car.physics.location) - distance = car_location.dist(ball_location) - if distance < MAX_DISTANCE_WHEN_SPIKED: - if distance < closest_distance: - closest_candidate = car - closest_distance = distance - if closest_candidate != self.carrying_car and closest_candidate is not None: - self.spike_moment = packet.game_info.seconds_elapsed - - self.carrying_car = closest_candidate - if self.carrying_car is not None: - self.carry_duration = packet.game_info.seconds_elapsed - self.spike_moment From 6baa5b1addf5802ef2410ad38e552f0197a04797 Mon Sep 17 00:00:00 2001 From: Viliam Vadocz Date: Sun, 26 Apr 2020 19:08:00 +0200 Subject: [PATCH 13/13] Removed numpy utils, added rlutilities (#40) --- src/bot.py | 1 - src/np_util/data.py | 141 ------- src/np_util/utils.py | 365 ------------------ src/rlutilities/__init__.py | 6 + src/rlutilities/__init__.pyi | 10 + src/rlutilities/linear_algebra.pyi | 198 ++++++++++ src/rlutilities/mechanics.pyi | 129 +++++++ .../rlutilities.cp37-win_amd64.pyd | Bin 0 -> 969728 bytes src/rlutilities/simulation.pyi | 232 +++++++++++ 9 files changed, 575 insertions(+), 507 deletions(-) delete mode 100644 src/np_util/data.py delete mode 100644 src/np_util/utils.py create mode 100644 src/rlutilities/__init__.py create mode 100644 src/rlutilities/__init__.pyi create mode 100644 src/rlutilities/linear_algebra.pyi create mode 100644 src/rlutilities/mechanics.pyi create mode 100644 src/rlutilities/rlutilities.cp37-win_amd64.pyd create mode 100644 src/rlutilities/simulation.pyi diff --git a/src/bot.py b/src/bot.py index 8fa1905..bd883a8 100644 --- a/src/bot.py +++ b/src/bot.py @@ -11,7 +11,6 @@ from util.vec import Vec3 -# Would you like to use numpy utilities? Check out the np_util folder! class MyBot(BaseAgent): diff --git a/src/np_util/data.py b/src/np_util/data.py deleted file mode 100644 index 6c23ec2..0000000 --- a/src/np_util/data.py +++ /dev/null @@ -1,141 +0,0 @@ -'''Rocket League data pre-processing.''' - -from .utils import Car, Ball, BoostPad, arr_from_list, arr_from_rot, arr_from_vec, orient_matrix - -import numpy as np - - -def setup(self, packet, field_info): - """Sets up the variables and classes for the agent. - - Arguments: - self {BaseAgent} -- The agent. - packet {GameTickPacket} -- Information about the game. - field_info {FieldInfoPacket} -- Information about the game field. - """ - - # Game info - self.game_time = packet.game_info.seconds_elapsed - self.dt = 1.0 / 120.0 - self.last_time = 0.0 - self.r_active = packet.game_info.is_round_active - self.ko_pause = packet.game_info.is_kickoff_pause - self.m_ended = packet.game_info.is_match_ended - self.gravity = packet.game_info.world_gravity_z - - # Creates Car objects for each car. - self.teammates = [] - self.opponents = [] - for index in range(packet.num_cars): - car = packet.game_cars[index] - if index == self.index: - self.player = Car(self.index, self.team, self.name) - elif car.team == self.team: - self.teammates.append(Car(index, car.team, car.name)) - else: - self.opponents.append(Car(index, car.team, car.name)) - - # Creates a Ball object. - self.ball = Ball() - - # Creates Boostpad objects. - self.l_pads = [] - self.s_pads = [] - for i in range(field_info.num_boosts): - pad = field_info.boost_pads[i] - pad_type = self.l_pads if pad.is_full_boost else self.s_pads - pad_obj = BoostPad(i, arr_from_vec(pad.location)) - pad_type.append(pad_obj) - - -def process(self, packet): - """Processes the gametick packet. - Arguments: - self {BaseAgent} -- The agent. - packet {GameTickPacket} -- The game packet being processed. - """ - - # Processing game info. - self.game_time = packet.game_info.seconds_elapsed - self.dt = self.game_time - self.last_time - self.last_time = self.game_time - self.r_active = packet.game_info.is_round_active - self.ko_pause = packet.game_info.is_kickoff_pause - self.m_ended = packet.game_info.is_match_ended - self.gravity = packet.game_info.world_gravity_z - - # Processing player data. - # From packet: - self.player.pos = arr_from_vec(packet.game_cars[self.player.index].physics.location) - self.player.rot = arr_from_rot(packet.game_cars[self.player.index].physics.rotation) - self.player.vel = arr_from_vec(packet.game_cars[self.player.index].physics.velocity) - self.player.ang_vel = arr_from_vec(packet.game_cars[self.player.index].physics.angular_velocity) - self.player.dead = packet.game_cars[self.player.index].is_demolished - self.player.wheel_c = packet.game_cars[self.player.index].has_wheel_contact - self.player.sonic = packet.game_cars[self.player.index].is_super_sonic - self.player.jumped = packet.game_cars[self.player.index].jumped - self.player.d_jumped = packet.game_cars[self.player.index].double_jumped - self.player.boost = packet.game_cars[self.player.index].boost - # Calculated: - self.player.orient_m = orient_matrix(self.player.rot, self.player.orient_m) - - # Processing teammates. - for teammate in self.teammates: - # From packet: - teammate.pos = arr_from_vec(packet.game_cars[teammate.index].physics.location) - teammate.rot = arr_from_rot(packet.game_cars[teammate.index].physics.rotation) - teammate.vel = arr_from_vec(packet.game_cars[teammate.index].physics.velocity) - teammate.ang_vel = arr_from_vec(packet.game_cars[teammate.index].physics.angular_velocity) - teammate.dead = packet.game_cars[teammate.index].is_demolished - teammate.wheel_c = packet.game_cars[teammate.index].has_wheel_contact - teammate.sonic = packet.game_cars[teammate.index].is_super_sonic - teammate.jumped = packet.game_cars[teammate.index].jumped - teammate.d_jumped = packet.game_cars[teammate.index].double_jumped - teammate.boost = packet.game_cars[teammate.index].boost - - # Processing opponents. - for opponent in self.opponents: - # From packet: - opponent.pos = arr_from_vec(packet.game_cars[opponent.index].physics.location) - opponent.rot = arr_from_rot(packet.game_cars[opponent.index].physics.rotation) - opponent.vel = arr_from_vec(packet.game_cars[opponent.index].physics.velocity) - opponent.ang_vel = arr_from_vec(packet.game_cars[opponent.index].physics.angular_velocity) - opponent.dead = packet.game_cars[opponent.index].is_demolished - opponent.wheel_c = packet.game_cars[opponent.index].has_wheel_contact - opponent.sonic = packet.game_cars[opponent.index].is_super_sonic - opponent.jumped = packet.game_cars[opponent.index].jumped - opponent.d_jumped = packet.game_cars[opponent.index].double_jumped - opponent.boost = packet.game_cars[opponent.index].boost - - # Processing Ball data. - self.ball.pos = arr_from_vec(packet.game_ball.physics.location) - self.ball.rot = arr_from_rot(packet.game_ball.physics.rotation) - self.ball.vel = arr_from_vec(packet.game_ball.physics.velocity) - self.ball.ang_vel = arr_from_vec(packet.game_ball.physics.angular_velocity) - self.ball.last_touch = packet.game_ball.latest_touch - - # Processing ball prediction. - ball_prediction_struct = self.get_ball_prediction_struct() - dtype = [ - ('physics', [ - ('pos', ' np.ndarray: - """Converts list to numpy array. - Arguments: - L {list} -- The list to convert containing 3 elements. - Returns: - np.array -- Numpy array with the same contents as the list. - """ - if len(L) != 3: - raise ValueError('Expected a list of length 3.') - return np.array(L[0], L[1], L[2]) - - -def arr_from_rot(R: Rotator) -> np.ndarray: - """Converts rotator to numpy array. - - Arguments: - R {Rotator} -- Rotator class containing pitch, yaw, and roll. - - Returns: - np.ndarray -- Numpy array with the same contents as the rotator. - """ - return np.array([R.pitch, R.yaw, R.roll]) - - -def arr_from_vec(V: Vector3) -> np.ndarray: - """Converts vector3 to numpy array. - - Arguments: - V {Vector3} -- Vector3 class containing x, y, and z. - - Returns: - np.ndarray -- Numpy array with the same contents as the vector3. - """ - return np.array([V.x, V.y, V.z]) - - -# ----------------------------------------------------------- - -# USEFUL UTILITY FUNCTIONS: - -def normalise(V: np.ndarray) -> np.ndarray: - """Normalises a vector. - - Arguments: - V {np.ndarray} -- Vector. - - Returns: - np.ndarray -- Normalised vector. - """ - magnitude = np.linalg.norm(V) - if magnitude != 0.0: - return V / magnitude - else: - return V - - -def angle_between_vectors(v1: np.ndarray, v2: np.ndarray) -> float: - """Returns the positive angle in radians between vectors v1 and v2. - - Arguments: - v1 {np.ndarray} -- First vector. - v2 {np.ndarray} -- Second vector - - Returns: - float -- Positive acute angle between the vectors in radians. - """ - v1_u = normalise(v1) - v2_u = normalise(v2) - return np.arccos(np.clip(np.dot(v1_u, v2_u), -1.0, 1.0)) - -# ----------------------------------------------------------- - -# FUNCTIONS FOR CONVERTING BETWEEN WORLD AND LOCAL COORDINATES: - -def orient_matrix(R: np.ndarray, A: np.ndarray = np.zeros((3, 3))) -> np.ndarray: - """Converts from Euler angles to an orientation matrix. - - Arguments: - R {np.ndarray} -- Pitch, yaw, and roll. - A {np.ndarray} -- Previous orientation matrix. (default: {np.zeros((3, 3))}) - - Returns: - np.ndarray -- Orientation matrix of shape (3, 3). - """ - # Credits to chip https://samuelpmish.github.io/notes/RocketLeague/aerial_control/ - pitch: float = R[0] - yaw: float = R[1] - roll: float = R[2] - - CR: float = np.cos(roll) - SR: float = np.sin(roll) - CP: float = np.cos(pitch) - SP: float = np.sin(pitch) - CY: float = np.cos(yaw) - SY: float = np.sin(yaw) - - A = np.zeros((3, 3)) - - # front direction - A[0, 0] = CP * CY - A[1, 0] = CP * SY - A[2, 0] = SP - - # right direction - A[0, 1] = CY * SP * SR - CR * SY - A[1, 1] = SY * SP * SR + CR * CY - A[2, 1] = -CP * SR - - # up direction - A[0, 2] = -CR * CY * SP - SR * SY - A[1, 2] = -CR * SY * SP + SR * CY - A[2, 2] = CP * CR - - return A - - -def local(A: np.ndarray, p0: np.ndarray, p1: np.ndarray) -> np.ndarray: - """Transforms world coordinates into local coordinates. - - Arguments: - A {np.ndarray} -- The local orientation matrix. - p0 {np.ndarray} -- World x, y, and z coordinates of the start point for the vector. - p1 {np.ndarray} -- World x, y, and z coordinates of the end point for the vector. - - Returns: - np.ndarray -- Local x, y, and z coordinates. - """ - return np.dot(A.T, p1 - p0) - - -def world(A: np.ndarray, p0: np.ndarray, p1: np.ndarray) -> np.ndarray: - """Transforms local into world coordinates. - - Arguments: - A {np.ndarray} -- The local orientation matrix. - p0 {np.ndarray} -- World x, y, and z coordinates of the start point for the vector. - p1 {np.ndarray} -- Local x, y, and z coordinates of the end point for the vector. - - Returns: - np.ndarray -- World x, y, and z coordinates. - """ - return p0 + A * p1 - -# ----------------------------------------------------------- - -# ROCKET LEAGUE SPECIFIC FUNCTIONS: - -def team_sign(team: int) -> int: - """Gives the sign for a calculation based on team. - - Arguments: - team {int} -- 0 if Blue, 1 if Orange. - - Returns: - int -- 1 if Blue, -1 if Orange - """ - # Other creative ways to do it: - - # return (1, -1)[team] - - # return 1 if team == 0 else -1 - - # for i in range(team): - # return 1 - # return -1 - - # return -range(-1, 2, -2)[team] - - return -2 * team + 1 - - -def turn_r(v: np.ndarray) -> float: - """Calculates the minimum turning radius for given velocity. - - Arguments: - v {np.ndarray} -- A velocity vector. - - Returns: - float -- The smallest radius possible for the given velocity. - """ - s = np.linalg.norm(v) - return -6.901E-11 * s**4 + 2.1815E-07 * s**3 - 5.4437E-06 * s**2 + 0.12496671 * s + 157 - -# ----------------------------------------------------------- - -# OTHER: - -def linear_predict(start_pos: np.ndarray, start_vel: np.ndarray, start_time: float, seconds: float) -> np.ndarray: - """Predicts motion of object in a straight line. - - Arguments: - start_pos {np.ndarray} -- Current position. - start_vel {np.ndarray} -- Current velocity. - start_time {float} -- Current time. - seconds {float} -- Time for which to predict. - - Returns: - np.ndarray -- linear prediction, 60 tps. - dtype = [ - ('pos', float, (ticks, 3)), - ('vel', float, (ticks, 3)), - ('time', float, (ticks, 1)) - ] - """ - ticks = int(60*seconds) - time = np.linspace(0, seconds, ticks)[:, np.newaxis] - pos = start_pos + time * start_vel - vel = np.ones_like(time) * start_vel - time += start_time - - dtype = [('pos', float, (ticks, 3)), ('vel', float, (ticks, 3)), ('time', float, (ticks, 1))] - prediction = np.array((pos, vel, time), dtype=dtype) - return prediction - - -def closest_to(pos: np.ndarray, others: np.ndarray) -> int: - """Finds the index of the closest point. - - Arguments: - pos {np.ndarray} -- coordinates of the position of interest. - others {np.ndarray} -- Array where each row is a position. - - Returns: - int -- index of the closest position to the position of interest. - """ - vectors = others - pos - distances = np.sqrt(np.einsum('ij,ij->i', vectors, vectors)) - return np.argmin(distances) # returns first if more than one is closest - - -def special_sauce(x: float, a: float) -> float: - """Modified sigmoid function. - - Arguments: - x {float} -- The input. - a {float} -- Constant; larger => faster rise. - - Returns: - float -- Output. - """ - # Graph showing how it can be used for steering: - # https://www.geogebra.org/m/udfp2zcy - return 2 / (1 + np.exp(a*x)) - 1 diff --git a/src/rlutilities/__init__.py b/src/rlutilities/__init__.py new file mode 100644 index 0000000..0ed8833 --- /dev/null +++ b/src/rlutilities/__init__.py @@ -0,0 +1,6 @@ +import sys +from .rlutilities import mechanics, simulation, linear_algebra + +sys.modules["rlutilities.mechanics"] = mechanics +sys.modules["rlutilities.simulation"] = simulation +sys.modules["rlutilities.linear_algebra"] = linear_algebra diff --git a/src/rlutilities/__init__.pyi b/src/rlutilities/__init__.pyi new file mode 100644 index 0000000..288e09e --- /dev/null +++ b/src/rlutilities/__init__.pyi @@ -0,0 +1,10 @@ +from typing import * +from typing import Iterable as iterable +from typing import Iterator as iterator +from numpy import float64 +_Shape = Tuple[int, ...] +__all__ = [ +"linear_algebra", +"mechanics", +"simulation" +] \ No newline at end of file diff --git a/src/rlutilities/linear_algebra.pyi b/src/rlutilities/linear_algebra.pyi new file mode 100644 index 0000000..ec58005 --- /dev/null +++ b/src/rlutilities/linear_algebra.pyi @@ -0,0 +1,198 @@ +from typing import * +from typing import Iterable as iterable +from typing import Iterator as iterator +from numpy import float64 +_Shape = Tuple[int, ...] +__all__ = [ +"mat2", +"mat3", +"vec2", +"vec3", +"vec4", +"angle_between", +"axis_to_rotation", +"clip", +"cross", +"dot", +"euler_to_rotation", +"inv", +"look_at", +"norm", +"normalize", +"rotation", +"rotation_to_axis", +"rotation_to_euler", +"sgn", +"transpose", +"xy" +] +class mat2(): + + def __getitem__(self, arg0: Tuple[int, int]) -> float: ... + def __init__(self, arg0: float, arg1: float, arg2: float, arg3: float) -> None: ... + def __setitem__(self, arg0: Tuple[int, int], arg1: float) -> None: ... + def __str__(self) -> str: ... + + pass +class mat3(): + + def __getitem__(self, arg0: Tuple[int, int]) -> float: ... + def __init__(self, arg0: float, arg1: float, arg2: float, arg3: float, arg4: float, arg5: float, arg6: float, arg7: float, arg8: float) -> None: ... + def __setitem__(self, arg0: Tuple[int, int], arg1: float) -> None: ... + def __str__(self) -> str: ... + + pass +class vec2(): + + def __add__(self, arg0: vec2) -> vec2: ... + def __getitem__(self, arg0: int) -> float: ... + def __iadd__(self, arg0: vec2) -> vec2: ... + def __imul__(self, arg0: float) -> vec2: ... + @overload + def __init__(self, arg0: vec2) -> None: + pass + @overload + def __init__(self, arg0: vec3) -> None: ... + @overload + def __init__(self, arg0: float, arg1: float) -> None: ... + def __isub__(self, arg0: vec2) -> vec2: ... + def __itruediv__(self, arg0: float) -> vec2: ... + def __mul__(self, arg0: float) -> vec2: ... + def __rmul__(self, arg0: float) -> vec2: ... + def __setitem__(self, arg0: int, arg1: float) -> None: ... + def __str__(self) -> str: ... + def __sub__(self, arg0: vec2) -> vec2: ... + def __truediv__(self, arg0: float) -> vec2: ... + + pass +class vec3(): + + def __add__(self, arg0: vec3) -> vec3: ... + def __getitem__(self, arg0: int) -> float: ... + def __iadd__(self, arg0: vec3) -> vec3: ... + def __imul__(self, arg0: float) -> vec3: ... + @overload + def __init__(self, arg0: vec3) -> None: + pass + @overload + def __init__(self, arg0: float, arg1: float, arg2: float) -> None: ... + @overload + def __init__(self, arg0: vec2) -> None: ... + def __isub__(self, arg0: vec3) -> vec3: ... + def __itruediv__(self, arg0: float) -> vec3: ... + def __mul__(self, arg0: float) -> vec3: ... + def __rmul__(self, arg0: float) -> vec3: ... + def __setitem__(self, arg0: int, arg1: float) -> None: ... + def __str__(self) -> str: ... + def __sub__(self, arg0: vec3) -> vec3: ... + def __truediv__(self, arg0: float) -> vec3: ... + + pass +class vec4(): + + def __add__(self, arg0: vec4) -> vec4: ... + def __getitem__(self, arg0: int) -> float: ... + def __iadd__(self, arg0: vec4) -> vec4: ... + def __imul__(self, arg0: float) -> vec4: ... + def __init__(self, arg0: float, arg1: float, arg2: float, arg3: float) -> None: ... + def __isub__(self, arg0: vec4) -> vec4: ... + def __itruediv__(self, arg0: float) -> vec4: ... + def __mul__(self, arg0: float) -> vec4: ... + def __rmul__(self, arg0: float) -> vec4: ... + def __setitem__(self, arg0: int, arg1: float) -> None: ... + def __str__(self) -> str: ... + def __sub__(self, arg0: vec4) -> vec4: ... + def __truediv__(self, arg0: float) -> vec4: ... + + pass +@overload +def angle_between(arg0: mat3, arg1: mat3) -> float: + pass +@overload +def angle_between(arg0: vec3, arg1: vec3) -> float: + pass +@overload +def angle_between(arg0: vec2, arg1: vec2) -> float: + pass +def axis_to_rotation(arg0: vec3) -> mat3: + pass +@overload +def clip(arg0: int, arg1: int, arg2: int) -> int: + pass +@overload +def clip(arg0: float, arg1: float, arg2: float) -> float: + pass +@overload +def cross(arg0: vec3, arg1: vec3) -> vec3: + pass +@overload +def cross(arg0: vec3) -> vec3: + pass +@overload +def cross(arg0: vec2) -> vec2: + pass +@overload +def dot(arg0: vec2, arg1: mat2) -> vec2: + pass +@overload +def dot(arg0: vec4, arg1: vec4) -> float: + pass +@overload +def dot(arg0: vec2, arg1: vec2) -> float: + pass +@overload +def dot(arg0: vec3, arg1: mat3) -> vec3: + pass +@overload +def dot(arg0: mat3, arg1: mat3) -> mat3: + pass +@overload +def dot(arg0: vec3, arg1: vec3) -> float: + pass +@overload +def dot(arg0: mat2, arg1: mat2) -> mat2: + pass +@overload +def dot(arg0: mat2, arg1: vec2) -> vec2: + pass +@overload +def dot(arg0: mat3, arg1: vec3) -> vec3: + pass +def euler_to_rotation(arg0: vec3) -> mat3: + pass +@overload +def inv(arg0: mat3) -> mat3: + pass +@overload +def inv(arg0: mat2) -> mat2: + pass +def look_at(arg0: vec3, arg1: vec3) -> mat3: + pass +@overload +def norm(arg0: vec2) -> float: + pass +@overload +def norm(arg0: vec3) -> float: + pass +@overload +def normalize(arg0: vec3) -> vec3: + pass +@overload +def normalize(arg0: vec2) -> vec2: + pass +def rotation(arg0: float) -> mat2: + pass +def rotation_to_axis(arg0: mat3) -> vec3: + pass +def rotation_to_euler(arg0: mat3) -> vec3: + pass +def sgn(arg0: float) -> float: + pass +@overload +def transpose(arg0: mat2) -> mat2: + pass +@overload +def transpose(arg0: mat3) -> mat3: + pass +def xy(arg0: vec3) -> vec3: + pass \ No newline at end of file diff --git a/src/rlutilities/mechanics.pyi b/src/rlutilities/mechanics.pyi new file mode 100644 index 0000000..98be138 --- /dev/null +++ b/src/rlutilities/mechanics.pyi @@ -0,0 +1,129 @@ +from typing import * +from typing import Iterable as iterable +from typing import Iterator as iterator +from numpy import float64 +_Shape = Tuple[int, ...] +import rlutilities.simulation +__all__ = [ +"Aerial", +"AerialTurn", +"Boostdash", +"Dodge", +"Drive", +"Jump", +"Wavedash" +] +class Aerial(): + boost_accel = 1060.0 + boost_per_second = 30.0 + max_speed = 2300.0 + throttle_accel = 66.66667175292969 + + def __init__(self, arg0: rlutilities.simulation.Car) -> None: ... + def is_viable(self) -> bool: ... + def simulate(self) -> rlutilities.simulation.Car: ... + def step(self, arg0: float) -> None: ... + + angle_threshold: float + arrival_time: float + boost_estimate: float + controls: rlutilities.simulation.Input + finished: bool + reorient_distance: float + single_jump: bool + target: vec3 + target_orientation: Optional[mat3] + throttle_distance: float + up: vec3 + velocity_estimate: vec3 + pass +class AerialTurn(): + + def __init__(self, arg0: rlutilities.simulation.Car) -> None: ... + def simulate(self) -> rlutilities.simulation.Car: ... + def step(self, arg0: float) -> None: ... + + alpha: vec3 + controls: rlutilities.simulation.Input + eps_omega: float + eps_phi: float + finished: bool + horizon_time: float + target: mat3 + pass +class Boostdash(): + + def __init__(self, arg0: rlutilities.simulation.Car) -> None: ... + def step(self, arg0: float) -> None: ... + + controls: rlutilities.simulation.Input + finished: bool + pass +class Dodge(): + forward_torque = 224.0 + input_threshold = 0.5 + side_torque = 260.0 + timeout = 1.5 + torque_time = 0.6499999761581421 + z_damping = 0.3499999940395355 + z_damping_end = 0.20999999344348907 + z_damping_start = 0.15000000596046448 + + def __init__(self, arg0: rlutilities.simulation.Car) -> None: ... + def simulate(self) -> rlutilities.simulation.Car: ... + def step(self, arg0: float) -> None: ... + + controls: rlutilities.simulation.Input + delay: Optional[float] + direction: Optional[vec2] + duration: Optional[float] + finished: bool + preorientation: Optional[mat3] + target: Optional[vec3] + timer: float + pass +class Drive(): + boost_accel = 991.6669921875 + brake_accel = 3500.0 + coasting_accel = 525.0 + max_speed = 2300.0 + max_throttle_speed = 1410.0 + + def __init__(self, arg0: rlutilities.simulation.Car) -> None: ... + @staticmethod + def max_turning_curvature(arg0: float) -> float: ... + @staticmethod + def max_turning_speed(arg0: float) -> float: ... + def step(self, arg0: float) -> None: ... + @staticmethod + def throttle_accel(arg0: float) -> float: ... + + controls: rlutilities.simulation.Input + finished: bool + reaction_time: float + speed: float + target: vec3 + pass +class Jump(): + acceleration = 1458.333251953125 + max_duration = 0.20000000298023224 + min_duration = 0.02500000037252903 + speed = 291.6669921875 + + def __init__(self, arg0: rlutilities.simulation.Car) -> None: ... + def simulate(self) -> rlutilities.simulation.Car: ... + def step(self, arg0: float) -> None: ... + + controls: rlutilities.simulation.Input + duration: float + finished: bool + pass +class Wavedash(): + + def __init__(self, arg0: rlutilities.simulation.Car) -> None: ... + def step(self, arg0: float) -> None: ... + + controls: rlutilities.simulation.Input + direction: Optional[vec2] + finished: bool + pass \ No newline at end of file diff --git a/src/rlutilities/rlutilities.cp37-win_amd64.pyd b/src/rlutilities/rlutilities.cp37-win_amd64.pyd new file mode 100644 index 0000000000000000000000000000000000000000..62f08185001b2117d45ba98f927001e6d04bfe2b GIT binary patch literal 969728 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�NIx7E&g>Olf3h<3wS< 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'pbxk3e4_9F@t-s7M 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

+&L6eq5tDHg#$G$`2_2 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.{r4jLc)-g)y|VTYCl*9l{0pK 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 F`yZBH$?*UH literal 0 HcmV?d00001 diff --git a/src/rlutilities/simulation.pyi b/src/rlutilities/simulation.pyi new file mode 100644 index 0000000..aab6b1c --- /dev/null +++ b/src/rlutilities/simulation.pyi @@ -0,0 +1,232 @@ +from typing import * +from typing import Iterable as iterable +from typing import Iterator as iterator +from numpy import float64 +_Shape = Tuple[int, ...] +__all__ = [ +"Ball", +"Car", +"ControlPoint", +"Curve", +"Field", +"Game", +"Goal", +"Input", +"Pad", +"obb", +"ray", +"sphere", +"tri", +"intersect" +] +class Ball(): + collision_radius = 93.1500015258789 + drag = -0.030500000342726707 + friction = 2.0 + mass = 30.0 + max_omega = 6.0 + max_speed = 4000.0 + moment_of_inertia = 99918.75 + radius = 91.25 + restitution = 0.6000000238418579 + + @overload + def __init__(self) -> None: + pass + @overload + def __init__(self, arg0: Ball) -> None: ... + def hitbox(self) -> sphere: ... + @overload + def step(self, arg0: float) -> None: + pass + @overload + def step(self, arg0: float, arg1: Car) -> None: ... + + angular_velocity: vec3 + position: vec3 + time: float + velocity: vec3 + pass +class Car(): + + @overload + def __init__(self) -> None: + pass + @overload + def __init__(self, arg0: Car) -> None: ... + def extrapolate(self, arg0: float) -> None: ... + def forward(self) -> vec3: ... + def hitbox(self) -> obb: ... + def left(self) -> vec3: ... + def step(self, arg0: Input, arg1: float) -> None: ... + def up(self) -> vec3: ... + + angular_velocity: vec3 + boost: int + controls: Input + demolished: bool + dodge_rotation: mat2 + dodge_timer: float + double_jumped: bool + id: int + jump_timer: float + jumped: bool + on_ground: bool + orientation: mat3 + position: vec3 + quaternion: vec4 + rotator: vec3 + supersonic: bool + team: int + time: float + velocity: vec3 + pass +class ControlPoint(): + + @overload + def __init__(self, arg0: vec3, arg1: vec3, arg2: vec3) -> None: + pass + @overload + def __init__(self) -> None: ... + + n: vec3 + p: vec3 + t: vec3 + pass +class Curve(): + + @overload + def __init__(self, arg0: List[ControlPoint]) -> None: + pass + @overload + def __init__(self, arg0: List[vec3]) -> None: ... + def calculate_distances(self) -> None: ... + def calculate_max_speeds(self, arg0: float, arg1: float) -> float: ... + def calculate_tangents(self) -> None: ... + def curvature_at(self, arg0: float) -> float: ... + def find_nearest(self, arg0: vec3) -> float: ... + def max_speed_at(self, arg0: float) -> float: ... + def point_at(self, arg0: float) -> vec3: ... + def pop_front(self) -> None: ... + def tangent_at(self, arg0: float) -> vec3: ... + def write_to_file(self, arg0: str) -> None: ... + + length: float + points: List[vec3] + pass +class Field(): + mode = 'Uninitialized' + triangles = [] + walls = [] + + @staticmethod + @overload + def collide(arg0: obb) -> ray: + pass + @staticmethod + @overload + def collide(arg0: sphere) -> ray: ... + @staticmethod + def raycast_any(arg0: ray) -> ray: ... + @staticmethod + def snap(arg0: vec3) -> ray: ... + + pass +class Game(): + frametime = 0.008333333767950535 + gravity = -650.0 + map = 'map_not_set' + + def __init__(self, arg0: int) -> None: ... + def read_game_information(self, arg0: object, arg1: object) -> None: ... + @staticmethod + def set_mode(arg0: str) -> None: ... + + ball: Ball + cars: List[Car[8]] + frame: int + frame_delta: int + kickoff_pause: bool + match_ended: bool + num_cars: int + overtime: bool + pads: List[Pad] + round_active: bool + team: int + time: float + time_delta: float + time_remaining: float + pass +class Goal(): + + def __init__(self) -> None: ... + + direction: vec3 + location: vec3 + team: int + pass +class Input(): + + def __init__(self) -> None: ... + + boost: bool + handbrake: bool + jump: bool + pitch: float + roll: float + steer: float + throttle: float + yaw: float + pass +class Pad(): + + def __init__(self) -> None: ... + + is_active: bool + is_full_boost: bool + position: vec3 + timer: float + pass +class obb(): + + def __init__(self) -> None: ... + + center: vec3 + half_width: vec3 + orientation: mat3 + pass +class ray(): + + @overload + def __init__(self) -> None: + pass + @overload + def __init__(self, arg0: vec3, arg1: vec3) -> None: ... + + direction: vec3 + start: vec3 + pass +class sphere(): + + @overload + def __init__(self, arg0: vec3, arg1: float) -> None: + pass + @overload + def __init__(self) -> None: ... + + center: vec3 + radius: float + pass +class tri(): + + def __getitem__(self, arg0: int) -> vec3: ... + def __init__(self) -> None: ... + def __setitem__(self, arg0: int, arg1: vec3) -> None: ... + + pass +@overload +def intersect(arg0: sphere, arg1: obb) -> bool: + pass +@overload +def intersect(arg0: obb, arg1: sphere) -> bool: + pass \ No newline at end of file