diff --git a/dev/PreseasonTraining/2024CodeOverview/index.html b/dev/PreseasonTraining/2024CodeOverview/index.html
index f0f380e..a74cfee 100644
--- a/dev/PreseasonTraining/2024CodeOverview/index.html
+++ b/dev/PreseasonTraining/2024CodeOverview/index.html
@@ -301,7 +301,7 @@
Slides per day
Oct 30 - PathPlanner
Oct 31 - 2024 game and bot intro, Shooter
-Nov 5 - Robot.java, Localization
+Nov 5 - Robot.java, Localization/AprilTags
diff --git a/dev/_sources/PreseasonTraining/2024CodeOverview/index.md.txt b/dev/_sources/PreseasonTraining/2024CodeOverview/index.md.txt
index f28c040..ce71409 100644
--- a/dev/_sources/PreseasonTraining/2024CodeOverview/index.md.txt
+++ b/dev/_sources/PreseasonTraining/2024CodeOverview/index.md.txt
@@ -7,7 +7,7 @@
* [Oct 28 - 2024 game and bot intro, Shooter](https://docs.google.com/presentation/d/10jF_pbO6ip2r9X4MZxg0tLX1JjQzYbYDpz4nknqmKeo/edit#slide=id.p)
* [Oct 30 - PathPlanner](https://docs.google.com/presentation/d/155NYhF3G_ufj5y1ddz4OqoGMcWBNf7-JaRvy4Aub-7A/edit#slide=id.g30f9ed95fb7_1_0)
* [Oct 31 - 2024 game and bot intro, Shooter](https://docs.google.com/presentation/d/1c8ceNy9UJJGBAT-FtwqXHuwoa7FPv28tdTdbEkj11TI/edit#slide=id.g30f91c001d7_0_39)
-* Nov 5 - Robot.java, Localization
+* [Nov 5 - Robot.java, Localization/AprilTags](https://docs.google.com/presentation/d/1aEbDArgdgu6aI7Y6Uy55-Hp4dijDrrkktF2DBGtIg1M/edit#slide=id.g31071c5d512_0_13)
## Download the code
diff --git a/dev/searchindex.js b/dev/searchindex.js
index 97ea168..2fa3669 100644
--- a/dev/searchindex.js
+++ b/dev/searchindex.js
@@ -1 +1 @@
-Search.setIndex({"docnames": ["PreseasonTraining/2024CodeOverview/index", "PreseasonTraining/ControlTheoryBasics/index", "PreseasonTraining/ElectricalOverview/index", "PreseasonTraining/JavaBasics/BrainfInterpreter", "PreseasonTraining/JavaBasics/InventoryManager", "PreseasonTraining/JavaBasics/OldNotes", "PreseasonTraining/JavaBasics/WordleClone", "PreseasonTraining/JavaBasics/index", "PreseasonTraining/LEDProgramming/index", "PreseasonTraining/LinuxInstallation/index", "PreseasonTraining/OpenCV_ColorSegmentation/index", "PreseasonTraining/Overview/index", "PreseasonTraining/TankAutonomous/index", "PreseasonTraining/TankDriveSimulation/index", "PreseasonTraining/index", "Resources/Applications/git", "Resources/Applications/index", "Resources/Coprocessors/index", "Resources/CppProgramming/index", "Resources/JavaProgramming/index", "Resources/JavaProgramming/installation", "Resources/Linux/index", "Resources/RobotDesign/index", "Resources/StyleGuide", "Resources/index", "TeamHistory/index", "TitanAlgorithms/index", "TitanDashboard/index", "TitanProcessing/AprilTags/index", "TitanProcessing/Calibration/index", "TitanProcessing/Installation/index", "TitanProcessing/Localization/index", "TitanProcessing/Networking/index", "TitanProcessing/index", "index"], "filenames": ["PreseasonTraining/2024CodeOverview/index.md", "PreseasonTraining/ControlTheoryBasics/index.md", "PreseasonTraining/ElectricalOverview/index.md", "PreseasonTraining/JavaBasics/BrainfInterpreter.md", "PreseasonTraining/JavaBasics/InventoryManager.md", "PreseasonTraining/JavaBasics/OldNotes.md", "PreseasonTraining/JavaBasics/WordleClone.md", "PreseasonTraining/JavaBasics/index.md", "PreseasonTraining/LEDProgramming/index.md", "PreseasonTraining/LinuxInstallation/index.md", "PreseasonTraining/OpenCV_ColorSegmentation/index.md", "PreseasonTraining/Overview/index.md", "PreseasonTraining/TankAutonomous/index.md", "PreseasonTraining/TankDriveSimulation/index.md", "PreseasonTraining/index.md", "Resources/Applications/git.md", "Resources/Applications/index.md", "Resources/Coprocessors/index.md", "Resources/CppProgramming/index.md", "Resources/JavaProgramming/index.md", "Resources/JavaProgramming/installation.md", "Resources/Linux/index.md", "Resources/RobotDesign/index.md", "Resources/StyleGuide.md", "Resources/index.md", "TeamHistory/index.md", "TitanAlgorithms/index.md", "TitanDashboard/index.md", "TitanProcessing/AprilTags/index.md", "TitanProcessing/Calibration/index.md", "TitanProcessing/Installation/index.md", "TitanProcessing/Localization/index.md", "TitanProcessing/Networking/index.md", "TitanProcessing/index.md", "index.md"], "titles": ["2024 Code overview", "Control Theory Basics", "Electrical overview", "3 - Brainf interpreter", "1 - Inventory Manager", "Old notes from 2023", "2 - Wordle Clone", "Java Basics", "LED Programming", "Linux installation", "Color-based segmentation in OpenCV Python", "Programming Subteam Overview", "Tank Autonomous", "Tank Drive Simulation", "Preseason Training", "Git", "Applications", "3 - Coprocessors", "2 - C++ Programming", "Java / roboRIO Programming", "Installation", "4 - Linux", "5 - Robot design", "Style guide", "Resources", "Team #2022 History", "Titan Algorithms", "Titan Dashboard", "AprilTag Detection", "Calibration", "Installation", "Localization", "Networking", "Titan Processing", "Titan Robotics #2022 Documentation"], "terms": {"main": [0, 1, 3, 5, 6, 9, 10, 13, 15, 20, 30, 33], "slideshow": [0, 1, 2, 3, 4, 6, 9, 10, 13], "wip": 0, "oct": 0, "28": [0, 14], "game": [0, 1, 11, 13, 32], "bot": 0, "intro": [0, 9], "shooter": [0, 13], "30": [0, 5, 14], "pathplann": [0, 19, 23], "31": [0, 14], "nov": [0, 14], "5": [0, 1, 3, 6, 13, 14, 24, 32, 34], "robot": [0, 2, 11, 12, 13, 24, 32, 33], "java": [0, 3, 4, 5, 6, 10, 11, 12, 13, 14, 24, 30, 34], "local": [0, 13, 15, 20, 23, 28, 33, 34], "git": [0, 11, 16, 24, 33, 34], "clone": [0, 1, 3, 7, 12, 13, 14, 34], "http": [0, 1, 9, 15, 20, 30], "github": [0, 11, 15, 30], "com": [0, 19, 20, 30], "titan2022": [0, 12, 13], "frc": [0, 1, 5, 11, 14, 19, 24, 32, 34], "branch": [0, 1, 12, 13, 32, 33], "preseason2024": 0, "2024": [1, 2, 3, 4, 6, 8, 9, 10, 12, 13, 14, 20, 32, 33, 34], "octob": [1, 9, 10, 14], "22": [1, 14, 32], "23": [1, 14], "hour": [1, 2, 3, 4, 6, 8], "probabl": 1, "most": [1, 8, 9, 10, 11, 13, 19, 20, 33], "import": [1, 3, 5, 6, 11, 23, 32], "subject": 1, "program": [1, 2, 5, 10, 15, 20, 24, 34], "one": [1, 8, 9, 10, 13, 15, 20, 23, 32], "you": [1, 5, 6, 8, 9, 10, 12, 13, 15, 19, 20, 32, 33, 34], "should": [1, 9, 10, 11, 12, 13, 20, 29, 30], "consid": [1, 30], "top": [1, 9, 10, 23, 32], "prioriti": 1, "It": [1, 5, 9, 13, 20, 29, 33], "separ": [1, 10, 15], "well": 1, "perform": [1, 11, 32], "from": [1, 2, 7, 8, 9, 10, 14, 15, 20, 24, 30, 32, 34], "those": 1, "fail": 1, "earli": 1, "contrari": 1, "mani": [1, 20], "peopl": [1, 3, 5, 6], "assum": [1, 20], "aim": [1, 23], "optim": [1, 11], "reliabl": [1, 32], "instead": [1, 8, 15], "speed": [1, 13], "function": [1, 5, 8, 10, 13, 32], "At": [1, 13], "titan": [1, 5, 30, 32], "our": [1, 2, 5, 8, 10, 13, 20, 23, 30, 34], "curs": 1, "overengin": 1, "solut": [1, 30, 32], "do": [1, 8, 9, 10, 11, 13, 15, 19, 20], "than": [1, 5, 10], "can": [1, 5, 8, 9, 10, 11, 12, 13, 15, 20, 32, 33, 34], "reason": [1, 10, 33], "achiev": [1, 10, 32], "lead": 1, "bare": 1, "ani": [1, 9, 13, 15, 20, 32], "time": [1, 5, 8, 9, 11, 12, 13, 15, 24, 32], "electr": [1, 14, 34], "test": [1, 23, 30, 32], "befor": [1, 15, 32], "competit": 1, "caus": [1, 9], "unforeseen": 1, "mechan": [1, 13], "issu": [1, 9, 30], "product": [1, 15, 30, 33], "yearli": 1, "strategi": [1, 34], "present": 1, "team": [1, 3, 6, 11, 13, 23, 24, 34], "1678": 1, "citru": 1, "circuit": 1, "consist": [1, 5, 13, 23], "advis": 1, "other": [1, 5, 9, 10, 13, 15, 20, 29, 34], "stick": [1, 9], "even": [1, 24], "mean": [1, 10, 12, 33], "miss": 1, "out": [1, 3, 5, 6, 9, 10, 13, 20, 32], "strateg": 1, "advantag": 1, "thei": [1, 10, 13, 32], "often": [1, 10, 33], "illustr": 1, "thi": [1, 3, 4, 5, 8, 9, 10, 11, 12, 13, 15, 20, 23, 29, 32, 33], "discourag": 1, "swerv": 1, "drive": [1, 5, 9, 11, 12, 14, 23, 34], "without": [1, 8, 12, 15, 28, 30], "long": [1, 9], "term": 1, "experi": [1, 11, 15], "all": [1, 5, 8, 10, 11, 12, 13, 15, 20, 29, 30, 32, 34], "share": 1, "same": [1, 5, 10, 15, 32], "goal": [1, 10], "maxim": 1, "And": [1, 5], "so": [1, 8, 10, 12, 13, 20, 23, 30, 33], "side": [1, 13], "how": [1, 9, 11, 12, 20], "done": [1, 5, 12, 13], "biggest": [1, 10], "obstacl": 1, "which": [1, 5, 8, 9, 10, 12, 13, 15, 20, 28, 32], "prevent": [1, 9], "u": [1, 11], "complet": [1, 10, 12, 20], "solv": [1, 32], "everi": [1, 5, 8, 10, 13, 15], "nois": 1, "system": [1, 2, 3, 5, 6, 9, 30, 32], "have": [1, 5, 10, 11, 12, 13, 15, 19, 20, 32], "variabl": [1, 5, 8, 10, 13, 20, 23], "amount": [1, 11, 19], "bend": 1, "twist": 1, "slack": 1, "unwant": 1, "form": [1, 10], "temporari": [1, 32], "deform": 1, "rigid": 1, "object": [1, 5, 13, 28, 32], "also": [1, 5, 8, 9, 10, 12, 13, 20, 29, 34], "uniqu": [1, 10], "aspect": 1, "when": [1, 5, 8, 10, 12, 13, 20, 30], "compar": 1, "high": 1, "school": 1, "level": [1, 23, 32], "materi": 1, "properti": [1, 10], "start": [1, 9, 10, 12, 13, 15, 20, 29], "show": [1, 8, 32], "significantli": 1, "length": [1, 3], "mass": 1, "size": [1, 5, 6, 10, 29, 30], "unlik": [1, 10, 33], "compact": 1, "ftc": 1, "vex": 1, "simpl": [1, 4, 12], "contrapt": 1, "like": [1, 5, 10, 11, 12, 13, 30], "measur": 1, "tape": [1, 10], "2020": 1, "would": [1, 10, 13], "work": [1, 3, 6, 10, 11, 13, 15, 28], "becaus": [1, 33], "criteria": [1, 13], "scale": 1, "want": [1, 8, 9, 10, 12, 15, 20], "manuev": 1, "while": [1, 5, 6, 8, 10, 11, 29], "adapt": 1, "undesir": 1, "physic": [1, 10, 13], "field": [1, 10, 30], "appli": [1, 9], "mathemat": 1, "regard": [1, 19], "accuraci": 1, "respons": 1, "There": [1, 5, 12, 20, 30, 34], "ar": [1, 5, 8, 10, 13, 15, 20, 24, 29, 30, 32, 34], "two": [1, 3, 6, 8, 10, 11, 13, 14, 32], "type": [1, 5, 10, 20, 30, 32], "feedback": 1, "As": 1, "name": [1, 5, 10, 20, 30], "suggest": 1, "util": [1, 5, 6, 8, 10, 12, 13, 23, 29, 32], "input": [1, 5, 10, 15], "determin": [1, 29, 33], "an": [1, 2, 4, 5, 8, 10, 13, 14, 15, 20, 28, 33], "output": [1, 10, 12, 13], "back": [1, 15, 20, 32], "henc": 1, "its": [1, 10, 13, 20, 32], "second": [1, 8, 10, 11, 12, 13, 15, 28, 32], "exampl": [1, 5, 12, 13, 20, 28, 30, 32], "boil": 1, "water": 1, "ga": 1, "stove": 1, "certain": [1, 5, 13], "onli": [1, 5, 8, 10, 11, 12, 13, 15, 30, 32], "care": [1, 9], "about": [1, 8, 10, 13, 24], "volum": 1, "user": [1, 5], "select": [1, 8, 9, 15, 20, 30], "doe": [1, 10, 11, 32], "whether": [1, 28], "temperatur": 1, "regul": 1, "air": 1, "condition": 1, "hvac": 1, "fed": 1, "new": [1, 3, 5, 6, 8, 12, 13, 32], "eventu": [1, 20], "adjust": 1, "room": 1, "desir": 1, "depend": 1, "dc": 1, "motor": [1, 5, 11, 12, 20], "rotat": [1, 12, 30, 32], "possibl": [1, 23, 33], "take": [1, 10, 30], "account": [1, 9, 20, 32], "encod": 1, "valu": [1, 8, 10, 13, 29, 30, 32], "comput": [1, 9, 10, 11, 13], "enough": [1, 8, 13, 32], "voltag": 1, "feed": [1, 10, 28], "proport": 1, "integr": 1, "deriv": 1, "common": [1, 10], "allow": [1, 13, 15, 30, 32], "tweak": 1, "three": [1, 10, 12], "constant": [1, 10, 23, 32], "coeffici": [1, 10, 29, 30], "state": [1, 8], "increas": 1, "effici": 1, "lower": [1, 5], "undershoot": 1, "overshoot": 1, "imagin": [1, 13], "try": [1, 3, 6, 10, 13, 15, 20, 30, 33], "car": [1, 5], "locat": [1, 10], "straight": 1, "slipperi": 1, "poorli": 1, "construct": 1, "road": 1, "call": [1, 8, 9, 12, 13, 15, 28, 32], "your": [1, 8, 9, 10, 12, 13, 15, 20, 30, 32, 33], "destin": 1, "": [1, 5, 8, 9, 10, 11, 12, 13, 15, 20, 23, 30], "r": [1, 5], "t": [1, 9, 10, 11, 12, 13, 15, 20], "setpoint": 1, "know": [1, 9, 10, 11, 20], "y": [1, 8, 10, 13, 20, 29], "These": [1, 20, 24], "process": [1, 13, 20, 28, 29, 30, 32, 34], "e": [1, 5, 6, 20, 23], "differ": [1, 10, 15], "between": [1, 13, 32], "current": [1, 9, 20, 30, 32], "posit": [1, 10, 30, 32], "go": [1, 8, 15], "equat": [1, 8], "int_0": 1, "tau": 1, "d": [1, 9], "frac": 1, "de": 1, "dt": 1, "where": [1, 10, 20], "distanc": 1, "tell": [1, 20], "isn": [1, 20], "too": [1, 9, 28], "understand": 1, "math": [1, 8, 10], "send": [1, 8, 13, 20, 28], "wait": [1, 8, 9], "until": [1, 8, 13], "figur": [1, 9, 10, 13], "after": [1, 5, 8, 9, 10, 11, 15, 24], "tri": [1, 32], "Then": [1, 5, 9, 10, 32], "repeat": [1, 8], "idea": [1, 32], "sai": [1, 20], "campground": 1, "mile": [1, 5], "down": [1, 9, 13], "acceler": 1, "don": [1, 9, 10, 12, 13, 15, 20], "few": 1, "gener": [1, 30], "usual": 1, "0": [1, 3, 5, 6, 8, 9, 10, 13, 20, 29, 32], "manual": [1, 9, 30, 32], "none": 1, "tend": 1, "drastic": 1, "note": [1, 7, 10, 14, 32, 34], "anoth": [1, 8, 9, 10, 32], "less": [1, 32], "factor": 1, "data": [1, 10, 32], "frequenc": 1, "sinc": [1, 8, 9, 10, 12, 13, 23, 32, 33], "discret": 1, "model": [1, 33], "delta": 1, "result": [1, 5, 6, 8, 13, 20], "better": 1, "calcul": [1, 8], "implement": 1, "falcon": [1, 13, 20], "500": [1, 13, 20], "being": [1, 8, 10], "drivebas": [1, 12], "wheel": [1, 13], "arm": [1, 13, 23], "elev": 1, "etc": [1, 5, 9, 20], "ideal": [1, 10], "through": [1, 4, 8, 11, 12, 13, 19, 28, 33], "correctli": 1, "behind": 1, "necessari": [1, 8, 10, 29, 30, 33], "learn": [1, 15, 24], "articl": [1, 10], "wpilib": [1, 5, 11, 19, 23, 32], "document": [1, 19, 23, 29, 32], "explain": 1, "includ": [1, 5, 10, 13, 15, 20, 23, 30, 32, 33], "pidcontrol": 1, "class": [1, 3, 5, 6, 13, 23, 28, 32], "sometim": [1, 9], "benefici": 1, "add": [1, 5, 6, 12, 13, 20], "compon": [1, 13, 19], "compens": 1, "specif": [1, 8, 10, 15, 20, 33], "circumst": 1, "pidf": 1, "old": [1, 7, 14, 34], "subsystem": [1, 23], "friction": 1, "incredibli": 1, "multipli": [1, 8], "see": [1, 5, 8, 10, 12, 20, 32], "interact": [1, 10], "here": [1, 8, 10, 11, 13, 15, 30, 34], "circl": [1, 10], "attempt": [1, 6, 10], "itself": [1, 13], "under": [1, 8, 20], "cursor": 1, "interest": [1, 8], "websit": [1, 20], "simul": [1, 14, 34], "cart": 1, "balanc": [1, 13], "bookmark": 1, "behavior": 1, "graviti": 1, "affect": 1, "For": [1, 8, 10, 13, 20, 30], "assign": [1, 13], "pass": [1, 12, 13, 28, 32], "target": [1, 5, 9, 33], "instanc": [1, 5, 8, 13], "each": [1, 5, 8, 10, 12, 13, 15, 29, 32], "own": [1, 5, 30, 33], "paramet": [1, 30], "make": [1, 4, 5, 8, 9, 10, 11, 12, 15, 20, 29, 30, 32], "satisfactori": 1, "ident": [1, 13], "creat": [1, 5, 8, 10, 12, 13, 15, 20, 32, 33], "argument": [1, 10, 13, 28, 32], "ha": [1, 5, 8, 9, 10, 11, 13, 15, 19, 32], "method": [1, 5, 8, 10, 12, 13, 23, 28, 32], "provid": [1, 8, 28, 29], "re": [1, 10, 20], "reach": [1, 20], "pseudo": 1, "value_deriv": 1, "measured_valu": 1, "target_valu": 1, "measured_veloc": 1, "target_veloc": 1, "setmotoracceler": 1, "actual": [1, 8, 13], "settargetveloc": 1, "settargetposit": 1, "avail": [1, 10, 20, 32, 34], "unit": [1, 5], "arbitrari": 1, "getinput": 1, "arrow": [1, 9, 13], "getmotoracceler": 1, "gettargetveloc": 1, "gettargetposit": 1, "getacceler": 1, "getveloc": 1, "getposit": 1, "training2024": [1, 12, 13], "repositori": [1, 12, 13, 15], "checkout": [1, 15], "templat": [1, 10, 12, 13], "relev": 1, "written": [1, 5, 33], "insid": [1, 5, 10, 12, 13, 15, 30], "elevatorplayground": 1, "updat": [1, 8, 9, 10, 15, 24, 32], "attain": 1, "specifi": [1, 10, 12, 28, 29, 32], "press": [1, 10, 11, 13, 15, 20], "m": [1, 13], "sim": [1, 13], "playgroundbas": 1, "public": [1, 3, 5, 6, 12, 13, 23], "extend": [1, 10, 13, 33], "privat": [1, 5, 6, 13, 23], "velocitypid": 1, "40": 1, "3": [1, 6, 7, 10, 13, 14, 24, 30, 34], "run": [1, 5, 8, 9, 12, 13, 20, 30], "onc": [1, 8, 13, 15], "frame": 1, "init": [1, 13, 20], "overrid": [1, 13], "void": [1, 3, 5, 6, 8, 13], "period": [1, 11, 13], "9": [1, 10, 14, 32], "8": [1, 8, 10, 14, 20, 30], "println": [1, 3, 5, 6, 32], "error": [1, 10], "order": [1, 9, 12], "block": 1, "If": [1, 5, 8, 9, 15, 20], "stuck": 1, "need": [1, 9, 10, 11, 12, 13, 15, 20], "yourself": [1, 20], "positionpid": 1, "automat": [1, 5, 10, 15], "minim": 1, "residu": 1, "real": [1, 8, 13], "bit": [1, 20], "confus": 1, "wikipedia": [1, 10], "doc": [1, 20], "chapter": 1, "engin": [1, 5], "cw": 1, "yapathon": 1, "ahead": [1, 19], "A": [1, 5, 13, 15], "softwar": [1, 10, 11, 13, 20, 34], "introduc": [1, 4], "axi": [1, 13], "sever": [1, 8, 10], "impact": 1, "belt": 1, "slippag": 1, "gearbox": 1, "misalign": 1, "sensor": [1, 5], "signal": [1, 8, 32], "deal": 1, "weight": 1, "torqu": 1, "cannot": [1, 13], "imposs": 1, "perfect": [1, 10], "best": [1, 10, 11, 30], "them": [1, 8, 9, 10, 13, 15], "contain": [1, 5, 6, 10, 12, 13, 15, 19], "place": [1, 13], "closest": 1, "gear": 1, "requir": [1, 10, 13, 15, 30, 33], "toler": 1, "repres": [1, 10], "raw": [1, 20, 30], "alreadi": [1, 12, 15, 20], "librari": [1, 5, 8, 10, 20, 28, 30, 32, 33], "filter": [1, 33], "variou": [1, 10], "cover": [1, 10, 12, 13], "some": [1, 8, 9, 10, 13, 19, 20, 34], "later": [1, 10, 20], "But": [1, 8], "ultim": 1, "direct": [1, 13], "wai": [1, 10, 12, 20, 30, 32], "unpredict": 1, "plan": [1, 30], "instinct": 1, "recreat": 1, "geometr": 1, "draw": [1, 10], "diagram": 1, "imsa": [1, 5], "previous": 1, "world": 1, "invers": 1, "kinemat": [1, 19], "base": [1, 12, 13, 14, 19, 20, 34], "accur": [1, 29], "weren": 1, "defin": [1, 8], "rang": [1, 8, 10], "appear": 1, "although": [1, 10, 32], "theoret": 1, "still": 1, "veri": 1, "applic": [1, 10, 24, 34], "hard": [1, 11], "describ": 1, "much": [1, 10, 11, 13, 23], "potenti": 1, "won": 1, "predict": 1, "combin": 1, "reduc": [1, 11], "ad": [1, 5, 20], "last": [1, 10], "step": [1, 15], "great": [1, 20], "simplest": [1, 10], "constraint": 1, "remov": [1, 9, 15], "unnecessari": [1, 10], "approach": 1, "move": [1, 13], "degre": [1, 10, 12, 30], "freedom": 1, "precis": 1, "hold": [1, 29], "heavi": 1, "perhap": 1, "mai": [1, 29], "total": 1, "throughout": 1, "entir": [1, 19], "mayb": 1, "suitabl": 1, "higher": [1, 20], "pullei": 1, "easier": [1, 13], "energi": 1, "counter": [1, 13], "consider": 1, "power": [1, 9], "usag": [1, 15, 30], "faster": 1, "case": [1, 3, 5, 8, 23], "action": [1, 10, 15], "nearest": 1, "member": [1, 5, 15, 20, 23], "ruin": 1, "dream": 1, "attach": 1, "custom": [1, 11], "might": [1, 9, 10, 20, 24], "predetermin": 1, "beforehand": 1, "tabl": [1, 32], "static": [1, 3, 5, 6, 8], "angl": [1, 10, 30], "seem": 1, "realiz": 1, "batteri": 1, "get": [1, 5, 6, 10, 20, 32], "exponenti": 1, "difficult": [1, 10], "decid": 1, "strain": 1, "movement": 1, "occurr": 1, "week": 1, "come": [1, 9], "over": [1, 10, 28], "year": 1, "who": [1, 3, 6], "singlehandedli": 1, "wrote": [1, 23], "command": [1, 3, 4, 5, 12, 19, 20, 23, 30], "sick": 1, "far": [1, 13], "simpler": 1, "debug": [1, 13, 20, 30], "estim": [1, 29], "section": 1, "exagger": 1, "encount": 1, "neg": 1, "outcom": 1, "season": [1, 10, 13, 33], "simpli": [1, 13, 24], "pandem": 1, "taken": [1, 4], "toll": 1, "signific": 1, "knowledg": 1, "connect": [1, 8, 10, 20], "been": [1, 9], "lost": [1, 12, 32], "improv": 1, "retel": 1, "event": 1, "occur": [1, 10], "2022": [1, 20], "2023": [1, 7, 14, 33, 34], "write": [1, 9, 10, 13, 15], "wa": [1, 20, 32], "limit": [1, 20], "encourag": 1, "chiefdelphi": 1, "post": 1, "purpos": [1, 8, 10, 13], "regain": 1, "skill": 1, "everyon": [1, 4, 13, 15], "els": [1, 5, 6, 8, 23, 30], "proper": 1, "strongli": 1, "recommend": [1, 10, 20, 24], "least": [1, 9], "book": 1, "inform": [1, 10, 12, 13], "essenti": 1, "classic": 1, "calculu": 1, "linear": 1, "algebra": 1, "prerequisit": 1, "kalman": [1, 33], "bc": 1, "sequenc": 1, "mvc": 1, "linalg": 1, "entireti": 1, "abov": [1, 4, 30], "major": [1, 19], "programm": [1, 11, 19], "particular": 1, "sourc": [1, 9, 15, 24], "repo": [1, 15, 20, 30], "wikimedia": 1, "org": [1, 9], "wiki": [1, 19], "file": [1, 3, 9, 10, 11, 12, 13, 15, 20, 23, 29, 30, 32], "pid_en": 1, "svg": 1, "arturo": 1, "urquizo": 1, "pid_varyingp": 1, "jpg": 1, "timmmyk": 1, "change_with_ki": 1, "png": 1, "skorkmaz": 1, "change_with_kd": 1, "septemb": [2, 3, 4, 6, 8, 12, 13, 14], "25": [2, 14], "2": [2, 5, 7, 8, 9, 10, 13, 14, 24, 30, 34], "introduct": [2, 14], "perspect": [2, 10], "11": [3, 6, 14, 20], "1": [3, 5, 6, 7, 8, 9, 10, 13, 14, 20, 30, 34], "we": [3, 4, 5, 6, 8, 9, 10, 11, 12, 13, 14, 20], "split": [3, 5, 6, 14], "up": [3, 5, 6, 8, 9, 10, 13, 14], "group": [3, 6, 10, 12, 13, 14, 23], "The": [3, 5, 6, 8, 19, 23, 28, 29, 32, 33], "were": [3, 6], "wordl": [3, 7, 14, 34], "more": [3, 5, 6, 10, 12, 13, 20, 24, 32], "familiar": [3, 6], "string": [3, 5, 6, 13, 28], "arg": [3, 5, 6], "brainfuckread": 3, "reader": [3, 6], "getcod": 3, "brainfuckinterpret": 3, "io": [3, 6], "nio": 3, "filenam": 3, "return": [3, 6, 8, 10, 13, 20, 32], "readstr": 3, "topath": 3, "catch": [3, 6], "except": [3, 6], "err": [3, 6], "char": [3, 6], "memori": 3, "3000": 3, "int": [3, 5, 6, 8, 28, 32], "posrightbracketforleftbracket": 3, "datapoint": 3, "posleftbracket": 3, "i": [3, 4, 5, 6, 8, 9, 10, 11, 12, 13, 15, 20, 23, 28, 30, 32, 33], "charat": [3, 6], "switch": [3, 13], "break": [3, 6, 10, 15], "default": [3, 9, 20, 28, 32], "print": [3, 5, 10, 29, 30], "10": [4, 5, 10, 14, 20, 30, 32], "project": [4, 8, 11, 13, 15, 20, 28, 30, 32, 34], "consol": [4, 10], "follow": [4, 9, 10, 13, 20, 23, 24, 30, 32], "along": 4, "dure": [4, 11, 13], "meet": 4, "first": [4, 8, 9, 10, 12, 13, 15, 19, 20, 28, 29, 32], "led": [4, 14, 34], "what": [5, 9, 11], "jit": 5, "compil": [5, 20, 33], "just": [5, 8, 10, 12, 13], "In": [5, 8, 9, 10, 13], "languag": [5, 8], "bytecod": 5, "translat": [5, 10], "machin": 5, "code": [5, 8, 10, 11, 14, 15, 20, 23, 30, 33, 34], "platform": [5, 13, 15, 30], "cross": [5, 30], "c": [5, 13, 24, 30, 34], "directli": 5, "g": [5, 20, 23], "integ": [5, 6, 8, 10], "number": [5, 8, 13], "doubl": [5, 12, 32], "decim": [5, 8], "text": [5, 6], "primit": 5, "basic": [5, 14, 19, 29, 34], "upper": 5, "complex": 5, "next": [5, 12, 15, 20], "orient": [5, 13], "everyth": [5, 12, 30], "constructor": [5, 13, 28], "modifi": [5, 13], "readonli": 5, "thing": [5, 8, 10, 15], "access": [5, 8, 10, 11, 13, 23], "cant": 5, "creation": 5, "btw": 5, "attribut": 5, "python": [5, 8, 14, 29, 30, 34], "float": [5, 8], "fuel": 5, "gallon": 5, "mileag": 5, "x": [5, 8, 9, 10, 11, 12, 13, 29, 30], "drivecar": 5, "33": 5, "per": [5, 30], "addfuel": 5, "hondaciv": 5, "brand": 5, "zero": [5, 10], "0f": 5, "fill": 5, "drove": 5, "typic": [5, 10, 13, 15], "standard": [5, 8, 10, 32], "us": [5, 8, 9, 10, 11, 12, 13, 14, 15, 20, 24, 29, 30, 32, 33], "stuff": 5, "gyroscop": 5, "manufactur": 5, "reusabl": 5, "algorithm": [5, 33, 34], "walkthrough": 5, "practic": 5, "inventori": [5, 7, 14, 34], "manag": [5, 7, 9, 11, 14, 20, 34], "item": 5, "quantiti": 5, "arraylist": [5, 6], "additem": 5, "search": [5, 9, 10, 20], "queri": 5, "ye": 5, "n": [5, 30], "window": [5, 9, 10, 20, 28, 30], "special": [5, 13], "charact": 5, "line": [5, 10, 12], "scanner": [5, 6], "vscode": [5, 11, 15, 20], "inventorymanag": 5, "welcom": [5, 34], "No": 5, "space": [5, 9, 10, 11, 30], "find": [5, 9, 34], "exit": [5, 10], "leav": [5, 32], "record": 5, "inputscann": [5, 6], "loop": [5, 8, 10], "condit": [5, 8, 10, 12], "true": [5, 6, 13, 20, 32], "boolean": [5, 6], "isrun": [5, 6], "userinput": [5, 6], "nextlin": [5, 6], "splittedcommand": 5, "arrai": [5, 8, 32], "word": [5, 6], "startswith": 5, "fals": [5, 6, 8, 10, 13, 32], "count": 5, "convert": [5, 8, 32], "newitem": 5, "parseint": 5, "unknown": 5, "brainf": [6, 7, 14, 34], "interpret": [6, 7, 14, 34], "word_length": 6, "max_attempt": 6, "9999999": 6, "wordleread": 6, "secretword": 6, "getrandomword": 6, "equal": 6, "congrat": 6, "guess": 6, "matchingindec": 6, "letter": [6, 20, 29], "turngreen": 6, "indexof": 6, "turnyellow": 6, "random": 6, "randgen": 6, "currenttimemilli": 6, "fileinputstream": 6, "fstream": 6, "txt": 6, "datainputstream": 6, "bufferedread": 6, "br": 6, "inputstreamread": 6, "strline": 6, "readlin": 6, "null": [6, 9, 32], "close": [6, 10, 13, 29], "nextint": 6, "tolowercas": 6, "wordexist": 6, "42m": 6, "0m": 6, "43m": 6, "4": [8, 14, 24, 30, 34], "lesson": [8, 10], "strip": 8, "microcontrol": 8, "arduino": 8, "uno": 8, "wokwi": 8, "onlin": [8, 9, 10, 15, 20], "emul": 8, "substitut": [8, 11], "board": [8, 30], "turn": [8, 12], "infinit": 8, "set": [8, 10, 12, 13, 19, 20], "100": [8, 9], "light": [8, 9, 11], "displai": [8, 13, 20, 29], "open": [8, 9, 10, 15, 20, 28], "tab": [8, 15], "fastl": 8, "control": [8, 11, 12, 15, 20, 34], "clear": 8, "pixel": [8, 10, 29], "empti": [8, 13], "earlier": 8, "bracket": 8, "oper": [8, 9, 33], "chsv": 8, "hue": [8, 10], "satur": [8, 10], "crgb": 8, "red": [8, 10], "green": [8, 10, 11, 15], "blue": [8, 10, 15], "color": [8, 14, 29, 34], "rgb": [8, 10], "both": [8, 20, 30], "255": [8, 10], "byte": [8, 10], "blank": [8, 32], "num_l": 8, "th": 8, "iter": 8, "divis": 8, "divid": 8, "progress": [8, 12], "now": [8, 12, 20], "To": [8, 10, 13, 15, 20, 30, 33], "delai": [8, 32], "millisecond": 8, "similar": [8, 20], "sleep": [8, 9], "fast": 8, "list": [8, 9, 15, 20], "notabl": 8, "featur": [8, 10, 15], "forev": [8, 12], "statement": [8, 12, 32], "thing1": 8, "thing2": 8, "funciton": 8, "1000": 8, "modulo": 8, "number0": 8, "remaind": 8, "sin": 8, "co": 8, "tan": 8, "pow": 8, "sqrt": 8, "log": [8, 20], "natur": 8, "log10": 8, "hsv": [8, 10], "support": [8, 9, 19, 20, 32], "download": [8, 9, 10, 11, 15, 20], "desktop": [8, 9], "version": [8, 9, 13, 20, 33], "id": [8, 9, 13, 20, 30, 32], "usb": [8, 9, 11], "port": [8, 20, 30, 32], "tool": [8, 29], "click": [8, 15, 20], "upload": [8, 15], "kde": 9, "live": 9, "iso": 9, "cdimag": 9, "cd": [9, 30], "amd64": [9, 20], "hybrid": 9, "12": [9, 10, 20, 30], "7": 9, "read": [9, 10, 19], "flash": 9, "onto": 9, "On": [9, 10, 13, 20], "instruct": [9, 20], "rufu": 9, "app": [9, 20], "free": [9, 10, 13, 15, 20, 30], "disk": 9, "menu": [9, 15, 20], "ll": [9, 20], "50": [9, 13], "gb": 9, "200": 9, "prefer": [9, 20], "disabl": [9, 11], "bitlock": 9, "guid": [9, 10, 15, 24, 30, 34], "sure": [9, 10, 12, 20, 29], "microsoft": [9, 10, 20], "password": 9, "associ": 9, "recoveri": 9, "kei": [9, 10, 13], "paper": [9, 29], "plug": [9, 11], "imag": 9, "reboot": 9, "spam": [9, 20], "appropri": [9, 10], "hotkei": 9, "bio": 9, "soon": 9, "laptop": [9, 20], "esc": [9, 10], "f2": 9, "f10": 9, "boot": 9, "secur": 9, "technic": 9, "o": [9, 20], "approv": 9, "someon": [9, 23], "sold": 9, "sign": [9, 11], "save": [9, 15, 29], "ask": [9, 10, 11, 13, 20], "session": [9, 20], "enter": [9, 11, 13, 15, 20], "left": [9, 13, 29], "calamar": 9, "termin": [9, 12, 13, 20], "prompt": 9, "goe": 9, "usernam": [9, 12, 13, 20], "screen": [9, 13], "sudo": [9, 20, 30], "nano": 9, "edit": [9, 13, 30], "ctrl": 9, "merg": [9, 12, 33], "configur": [9, 13, 20], "bootload": 9, "hardwar": [9, 11], "recent": 9, "nonfre": 9, "amd": [9, 20], "graphic": [9, 10], "misc": 9, "intel": [9, 20, 30], "nvidia": 9, "mediatek": 9, "packag": [9, 30], "buster": 9, "backport": 9, "devic": [9, 20], "shell": [9, 20], "l": [9, 20], "dev": [9, 28], "got": 9, "sda": 9, "right": [9, 13], "usbstick": 9, "mkdir": [9, 30], "p": 9, "mnt": 9, "mount": 9, "apt": [9, 20, 30], "deb": [9, 30], "tee": 9, "eof": 9, "bookworm": 9, "store": [10, 11, 20], "linux": [10, 11, 14, 20, 24, 30, 34], "preinstal": 10, "ping": [10, 12], "georgi": [10, 20], "ethan": [10, 20], "help": [10, 12, 13, 30], "pip": 10, "contrib": [10, 30], "vision": [10, 11, 13, 33], "partit": 10, "entiti": 10, "background": 10, "detect": [10, 33, 34], "format": 10, "convini": 10, "monitor": [10, 11], "human": 10, "represent": 10, "largest": 10, "extens": [10, 20], "alwai": [10, 11, 15, 24], "multipl": [10, 30], "someth": 10, "commonli": 10, "Its": 10, "modul": [10, 23, 30, 33], "hidden": 10, "impli": 10, "initi": [10, 12, 28, 32, 33], "ones": 10, "pre": 10, "train": [10, 34], "design": [10, 11, 13, 24, 34], "explicit": [10, 33], "syntax": 10, "look": [10, 12, 20], "w3school": 10, "visual": [10, 30], "studio": [10, 30], "button": [10, 13, 15], "shortcut": 10, "structur": [10, 11, 32], "info": 10, "outlin": [10, 23], "accross": 10, "choos": [10, 20], "bright": 10, "pacakg": 10, "keyword": [10, 30], "shorten": 10, "readibl": 10, "np": 10, "cv2": 10, "cv": 10, "webcam": 10, "claim": 10, "captur": 10, "index": [10, 28], "unless": [10, 20], "almost": [10, 13], "cap": 10, "videocaptur": 10, "isopen": 10, "_": 10, "todo": 10, "quit": 10, "q": 10, "otherwis": [10, 15, 20], "kill": 10, "extern": [10, 13, 19], "waitkei": 10, "ord": 10, "releas": [10, 20, 33], "destroyallwindow": 10, "imshow": 10, "correspond": 10, "titl": 10, "keep": [10, 23], "bgr": 10, "properli": 10, "your_fram": 10, "arr": 10, "np_arr": 10, "pretti": [10, 13], "page": [10, 20, 32, 34], "new_fram": 10, "cvtcolor": 10, "color_bgr2rgb": 10, "color_bgr2grai": 10, "grayscal": 10, "color_bgr2hsv": 10, "hide": 10, "part": [10, 11], "sens": 10, "unsign": 10, "inclus": 10, "inrang": 10, "lower_threshold": 10, "upper_threshold": 10, "white": 10, "full": [10, 13, 15, 23, 30], "exclud": 10, "black": 10, "exist": [10, 12, 20], "imaag": 10, "countour": 10, "origin": [10, 15], "drawcontour": 10, "respect": [10, 33], "fourth": 10, "width": [10, 30], "findcontour": 10, "retr_extern": 10, "chain_approx_simpl": 10, "lens": 10, "individu": 10, "view": [10, 15], "script": [10, 20, 29, 30], "scan": 10, "aruco": [10, 30], "chessboard": 10, "known": 10, "diment": [10, 29], "matrix": [10, 30], "distort": [10, 29, 30], "flat": [10, 29], "surfac": [10, 29], "pictur": [10, 30], "approxim": 10, "20": [10, 30, 32], "copi": [10, 12, 15, 20, 32], "feel": [10, 13, 15, 20, 30], "expand": 10, "obtain": 10, "2d": 10, "vertic": 10, "point": [10, 11, 13], "given": 10, "sphere": 10, "radiu": 10, "trigonometri": 10, "depth": 10, "3d": [10, 32], "resourc": [10, 34], "smoothest": 11, "driver": [11, 13], "think": 11, "wast": 11, "autom": 11, "task": [11, 14], "score": 11, "autonom": [11, 13, 14, 20, 34], "15": [11, 13], "good": [11, 32], "bad": 11, "bild": 11, "coprocessor": [11, 24, 32, 33, 34], "roborio": [11, 13, 24, 32, 34], "ethernet": 11, "wifi": 11, "station": [11, 13], "emerg": 11, "stop": [11, 12, 20], "restart": 11, "enabl": 11, "again": [11, 12], "phoenix": [11, 13, 19], "tuner": 11, "non": 11, "rememb": [11, 15, 20], "fly": 11, "di": 11, "pleas": [11, 15, 20, 23], "link": [11, 15, 30], "cheatsheet": [11, 15], "rev": 11, "client": 11, "homework": 11, "haven": 12, "previou": 12, "afterward": [12, 13, 20], "auton": 12, "tankdrivesubsystem": [12, 13], "driveleft": 12, "driveright": 12, "18": [12, 14], "tankcontrolcommand": [12, 13], "movecommand": 12, "teleop": [12, 13], "four": [12, 13, 29], "end": 12, "timeout": 12, "withtimeout": 12, "sequentialcommandgroup": 12, "schedul": [12, 13], "finish": [12, 13], "autonomousinit": [12, 13], "routin": [12, 14, 20, 23], "element": 12, "found": [12, 13, 15, 30], "discard": 12, "chang": [12, 13, 15, 29], "off": 12, "mb": 12, "90": 12, "fine": [12, 20], "me": [12, 13], "squar": [12, 29], "17": [13, 14, 20], "folder": [13, 15, 23, 32], "worri": 13, "entri": [13, 20], "src": 13, "mimic": 13, "serv": 13, "shoot": 13, "intak": 13, "pick": 13, "piec": 13, "oop": 13, "pattern": [13, 29], "timedrobot": 13, "robotinit": 13, "robotperiod": 13, "autonomousperiod": 13, "teleopinit": 13, "teleopperiod": 13, "disabledinit": 13, "player": 13, "rest": 13, "match": [13, 29, 30], "teleoper": 13, "mode": 13, "20m": 13, "todai": 13, "tomorrow": 13, "subsystembas": 13, "tankdriv": 13, "alongsid": 13, "One": 13, "wasd": 13, "joystick": 13, "keyboard": 13, "xboxcontrol": 13, "mycommand": 13, "getleftx": 13, "getlefti": 13, "getrightx": 13, "getrighti": 13, "getxbutton": 13, "getxbuttonpress": 13, "getxbuttonreleas": 13, "talon": 13, "fx": 13, "wpi_talonfx": 13, "differenti": 13, "ctre": [13, 19, 20], "api": 13, "6": [13, 19, 20], "motor0": 13, "controlmod": 13, "percentoutput": 13, "max": [13, 20], "veloc": 13, "setinvert": 13, "clockwis": 13, "slow": 13, "life": 13, "never": [13, 20], "anywher": 13, "percentag": 13, "smartdashboard": 13, "dashboard": [13, 34], "putnumb": 13, "putbooleam": 13, "putstr": 13, "style": [13, 24, 34], "six": 13, "togeth": [13, 15], "around": 13, "plai": 13, "content": 13, "subteam": [14, 34], "overview": [14, 34], "tank": [14, 34], "instal": [14, 19, 24, 33, 34], "segment": [14, 34], "opencv": [14, 30, 34], "theori": [14, 34], "easi": 14, "harder": 14, "24": 14, "pid": 14, "short": [15, 24], "cli": 15, "host": 15, "master": [15, 20, 30], "messag": [15, 33], "fetch": 15, "option": 15, "dublic": 15, "independ": 15, "past": [15, 20], "descript": 15, "readi": 15, "sync": 15, "addit": 15, "check": [15, 20, 24, 29], "bar": 15, "addion": 15, "notifi": 15, "avoid": 15, "conflict": 15, "particularli": 15, "big": 15, "request": [15, 33], "offici": [19, 20, 30, 32, 33, 34], "navx2": 19, "odometri": 19, "edu": 19, "wpi": 19, "phoenix6": 19, "pathplannerlib": 19, "lib": 19, "revlib": 19, "revrobot": 19, "troubl": 20, "veteran": 20, "discord": 20, "64": 20, "cpu": 20, "panel": 20, "box": 20, "either": 20, "32": 20, "arm64": 20, "distribut": 20, "glibc": 20, "popular": 20, "distro": 20, "debian": [20, 30], "ubuntu": 20, "mint": 20, "arch": 20, "elementari": 20, "fedora": 20, "enterpris": 20, "suse": 20, "maco": [20, 30], "mac": 20, "appl": 20, "silicon": 20, "choic": 20, "standalon": 20, "homebrew": 20, "brew": 20, "macport": 20, "doesn": 20, "matter": 20, "thread": [20, 30], "organ": 20, "my": 20, "powershel": 20, "bash": 20, "gh": 20, "auth": 20, "web": 20, "browser": 20, "jdk": 20, "develop": 20, "kit": 20, "temurin": 20, "lt": 20, "msi": 20, "bashrc": 20, "export": 20, "path": [20, 28, 29, 30], "home": 20, "bin": 20, "java_hom": 20, "bash_profil": 20, "zprofil": 20, "ni": 20, "trial": 20, "realiti": 20, "winrar": 20, "shouldn": 20, "interfer": 20, "must": 20, "x11": [20, 28], "wayland": 20, "network": [20, 30, 33, 34], "curl": [20, 30], "githubusercont": 20, "ethanc8": [20, 30], "frclinuxdevkit": 20, "sh": 20, "vscodium": 20, "environ": 20, "fldk_install_ext_destin": 20, "launch": 20, "binari": [20, 30], "oss": 20, "codium": 20, "super": 20, "experiment": 20, "abl": 20, "zip": 20, "put": 20, "somewher": 20, "diagnost": 20, "kind": 20, "involv": 20, "peripher": 20, "android": 20, "rootf": 20, "userspac": 20, "ca": 20, "certif": 20, "waydro": 20, "waydroid": 20, "prop": 20, "persist": 20, "multi_window": 20, "wget": 20, "someblob": 20, "x_2024": 20, "0_apkcombo": 20, "apk": 20, "phoenix_tun": 20, "unfortun": 20, "spark": 20, "experienc": 20, "wish": 20, "contribut": 20, "titanalgorithm": 20, "especi": 23, "lot": 23, "refer": [23, 32, 33], "pascalcas": 23, "macro_cas": 23, "m_camelcas": 23, "camelcas": 23, "enum": 23, "pascalcasetest": 23, "pascalcasesubsystem": 23, "abstract": 23, "pascalcasecommand": 23, "cpp": 23, "hpp": 23, "test_camelcas": 23, "cmake": [23, 30], "projecct": 23, "subfold": 23, "relat": [23, 24, 34], "auto": 23, "reus": 23, "topic": 24, "writ": 24, "irrelev": 24, "configread": 28, "readfromfil": 28, "std": 28, "directori": [28, 30, 32], "config": [28, 29, 30], "load": 28, "rel": 28, "root": 28, "absolut": 28, "titanprocess": 28, "apriltagdetector": 28, "stream": [28, 30, 32], "pose": [28, 29, 32, 33], "packet": [28, 32], "udp": [28, 30, 32], "networkingcli": [28, 32], "posefilt": 28, "video": [28, 32], "bool": 28, "marker": 29, "cm": 29, "type_calibr": 29, "py": [29, 30, 32], "TO": [29, 30], "cfg": 29, "front": 29, "camera": [29, 30], "recogn": 29, "overlai": 29, "logic": 29, "focal": 29, "resolut": 29, "optic": 29, "center": 29, "apriltag": [29, 30, 33, 34], "aarch64": 30, "x86_64": 30, "msvc": 30, "mingw": 30, "clang": 30, "calibr": [30, 33, 34], "submodul": 30, "realsens": 30, "sdk": 30, "googletest": 30, "framework": 30, "json": 30, "modern": 30, "vcpkg": 30, "scratch": 30, "execut": 30, "ol": 30, "titanian": 30, "pool": 30, "v": 30, "vcpkg_2023": 30, "titan2022_amd64": 30, "nlohmann": 30, "makefil": 30, "ninja": 30, "toolchain": 30, "altern": 30, "b": 30, "dcmake_toolchain_fil": 30, "buildsystem": 30, "dbuild_exampl": 30, "forc": 30, "clangd": 30, "dcmake_export_compile_command": 30, "dcmake_build_typ": 30, "relwithdebinfo": 30, "gninja": 30, "j": 30, "dno_realsens": 30, "compat": 30, "ip": [30, 32], "server": 30, "quaddecim": 30, "quadsigma": 30, "decodesharpen": 30, "height": 30, "fp": 30, "exposur": 30, "camset": 30, "meter": 30, "quick": 30, "charuco": 30, "photo": 30, "impliment": [30, 32], "offer": 32, "commun": 32, "mitig": 32, "reconnect": 32, "problem": 32, "socket": 32, "lowest": 32, "protocol": 32, "futur": 32, "tcp": 32, "h": 32, "header": 32, "5800": 32, "label": 32, "vector": 32, "vector3d": 32, "vec": 32, "send_vector": 32, "vector_nam": 32, "pose_nam": 32, "tag": 32, "position2": 32, "rotation2": 32, "send_tag": 32, "tag_nam": 32, "due": 32, "reutil": 32, "outsid": 32, "bind": 32, "replac": 32, "intend": 32, "trbnetworkingclientref": 32, "trbnetworkingclientcr": 32, "trbvector3d": 32, "trbvector3dmak": 32, "returnvec": 32, "trbnetworkingclientsendvector": 32, "trbnetworkingclientsendpos": 32, "trbnetworkingclientsendtag": 32, "trbnetwork": 32, "sendvector": 32, "sendtag": 32, "explicitli": 32, "numer": 32, "midwest": 32, "networkingserv": 32, "5801": 32, "observ": 32, "subscrib": 32, "lambda": 32, "translation3d": 32, "respond": 32, "networkingcal": 32, "tostr": 32, "networkingpos": 32, "networkingtag": 32, "capabl": 33, "roll": 33, "frequent": 33, "bug": 33, "fix": 33, "modif": 33, "rebuild": 33, "commit": 33, "fork": 33, "pull": 33, "preseason": 34, "histori": 34}, "objects": {}, "objtypes": {}, "objnames": {}, "titleterms": {"2024": 0, "code": [0, 1, 3, 6, 12, 13], "overview": [0, 1, 2, 11], "slide": 0, "per": 0, "dai": 0, "download": 0, "control": [1, 13, 14], "theori": 1, "basic": [1, 7], "introduct": [1, 19, 33], "The": [1, 10, 12, 13], "problem": [1, 10], "what": [1, 29], "i": 1, "open": 1, "loop": 1, "v": 1, "close": 1, "pid": 1, "effect": 1, "chang": [1, 9], "k_p": 1, "k_i": 1, "k_d": 1, "us": 1, "robot": [1, 14, 22, 34], "feedforward": 1, "exercis": 1, "1": [1, 4], "tune": 1, "2": [1, 6, 18], "java": [1, 7, 19, 20, 23, 32], "instal": [1, 9, 10, 20, 30], "hint": 1, "we": 1, "did": 1, "dure": 1, "lesson": [1, 12, 13], "set": [1, 9], "up": 1, "veloc": 1, "bind": 1, "left": 1, "right": 1, "kei": 1, "now": 1, "task": [1, 12, 13], "challeng": [1, 10], "further": 1, "read": [1, 28], "more": [1, 8], "On": 1, "In": 1, "practic": 1, "typic": 1, "happen": 1, "design": [1, 22], "decis": 1, "first": 1, "implic": 1, "complex": 1, "imag": [1, 10], "credit": 1, "electr": 2, "3": [3, 17], "brainf": 3, "interpret": 3, "final": [3, 6, 12, 13], "inventori": 4, "manag": 4, "old": 5, "note": 5, "from": [5, 12, 13], "2023": 5, "agenda": [5, 11], "wordl": 6, "clone": [6, 15], "content": [7, 14, 16, 19, 24, 33, 34], "led": 8, "program": [8, 11, 13, 14, 18, 19], "setup": [8, 28, 32], "exampl": 8, "anim": 8, "rainbow": 8, "sine": 8, "wave": 8, "deploi": 8, "linux": [9, 21], "debian": 9, "grub": 9, "newer": 9, "kernel": 9, "firmwar": 9, "color": 10, "base": 10, "segment": 10, "opencv": 10, "python": [10, 32], "overivew": 10, "numpi": 10, "instruct": [10, 30], "import": 10, "packag": 10, "camera": 10, "stream": 10, "show": 10, "arrai": 10, "convert": 10, "frame": 10, "mask": 10, "contour": 10, "calibr": [10, 29], "intro": 10, "run": [10, 29], "find": 10, "center": 10, "calcul": 10, "object": 10, "distanc": 10, "subteam": 11, "tank": [12, 13], "autonom": 12, "get": [12, 13], "structur": [12, 13, 15, 23], "after": [12, 13], "drive": 13, "simul": 13, "frc": [13, 20], "subsystem": 13, "command": 13, "initi": 13, "execut": 13, "end": 13, "boolean": 13, "interrupt": 13, "isfinish": 13, "xbox": 13, "motor": 13, "extra": 13, "preseason": 14, "train": 14, "index": 14, "date": 14, "topic": 14, "introductori": 14, "comput": 14, "vision": 14, "miscellan": 14, "git": [15, 20], "commit": 15, "push": 15, "pull": 15, "switch": 15, "branch": 15, "merg": 15, "applic": 16, "coprocessor": 17, "c": [18, 23, 32], "roborio": 19, "librari": 19, "guid": [19, 23], "api": 19, "refer": 19, "oper": 20, "system": 20, "github": 20, "cli": 20, "login": 20, "onli": 20, "pre": 20, "season": 20, "game": 20, "tool": [20, 30], "wpilib": 20, "pathplann": 20, "phoenix": 20, "tuner": 20, "x": 20, "rev": 20, "hardwar": 20, "client": [20, 32], "option": [20, 30], "apach": 20, "maven": 20, "4": 21, "5": 22, "style": 23, "name": 23, "resourc": 24, "document": [24, 34], "other": [24, 30], "websit": 24, "team": 25, "2022": [25, 34], "histori": 25, "titan": [26, 27, 33, 34], "algorithm": 26, "dashboard": 27, "apriltag": 28, "detect": 28, "configur": [28, 30], "multithread": 28, "how": 29, "doe": 29, "o": 30, "support": 30, "build": 30, "local": 31, "network": 32, "why": 32, "limit": 32, "send": 32, "inform": 32, "With": 32, "repli": 32, "server": 32, "receiv": 32, "process": 33, "contribut": 33}, "envversion": {"sphinx.domains.c": 3, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 9, "sphinx.domains.index": 1, "sphinx.domains.javascript": 3, "sphinx.domains.math": 2, "sphinx.domains.python": 4, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx": 58}, "alltitles": {"2024 Code overview": [[0, "code-overview"]], "Slides per day": [[0, "slides-per-day"]], "Download the code": [[0, "download-the-code"]], "Control Theory Basics": [[1, "control-theory-basics"]], "Introduction": [[1, "introduction"], [19, "introduction"], [33, "introduction"]], "The Problem": [[1, "the-problem"]], "What is Control Theory": [[1, "what-is-control-theory"]], "Open-Loop vs. Closed-Loop": [[1, "open-loop-vs-closed-loop"]], "PID Controllers": [[1, "pid-controllers"]], "The effect of changing K_p, K_i, and K_d": [[1, "the-effect-of-changing-k-p-k-i-and-k-d"]], "Using the PID controller on the robot": [[1, "using-the-pid-controller-on-the-robot"]], "PID with feedforward": [[1, "pid-with-feedforward"]], "Exercise 1 - Tuning a PID controller": [[1, "exercise-1-tuning-a-pid-controller"]], "Exercise 2 - Using PID in Java": [[1, "exercise-2-using-pid-in-java"]], "Overview": [[1, "overview"]], "Installation": [[1, "installation"], [10, "installation"], [20, "installation"], [30, "installation"]], "Code": [[1, "code"]], "Hints (what we did during the lesson)": [[1, "hints-what-we-did-during-the-lesson"]], "Setting up the velocity PID and binding it to the left/right keys": [[1, "setting-up-the-velocity-pid-and-binding-it-to-the-left-right-keys"]], "Now, the task": [[1, "now-the-task"]], "Challenge": [[1, "challenge"]], "Further reading on PID": [[1, "further-reading-on-pid"]], "More On Robot Control": [[1, "more-on-robot-control"]], "The Problem: In Practice": [[1, "the-problem-in-practice"]], "What Typically Happens": [[1, "what-typically-happens"]], "Design Decisions First": [[1, "design-decisions-first"]], "Implications of Complexity": [[1, "implications-of-complexity"]], "Further Reading": [[1, "further-reading"]], "Image credits": [[1, "image-credits"]], "Electrical overview": [[2, "electrical-overview"]], "3 - Brainf interpreter": [[3, "brainf-interpreter"]], "Final code": [[3, "final-code"], [6, "final-code"]], "1 - Inventory Manager": [[4, "inventory-manager"]], "Old notes from 2023": [[5, "old-notes-from-2023"]], "Agenda": [[5, "agenda"], [11, "agenda"]], "2 - Wordle Clone": [[6, "wordle-clone"]], "Java Basics": [[7, "java-basics"]], "Contents": [[7, null], [14, null], [16, null], [19, null], [24, null], [33, null], [34, null]], "LED Programming": [[8, "led-programming"]], "Setup": [[8, "setup"], [28, "setup"], [32, "setup"], [32, "id2"], [32, "id5"]], "More examples": [[8, "more-examples"]], "Animated Rainbow": [[8, "animated-rainbow"]], "Sine Wave": [[8, "sine-wave"]], "Deploying": [[8, "deploying"]], "Linux installation": [[9, "linux-installation"]], "Installing Debian": [[9, "installing-debian"]], "Changing GRUB settings": [[9, "changing-grub-settings"]], "Installing a newer kernel/firmware": [[9, "installing-a-newer-kernel-firmware"]], "Color-based segmentation in OpenCV Python": [[10, "color-based-segmentation-in-opencv-python"]], "Overivew": [[10, "overivew"]], "Segmentation": [[10, "segmentation"]], "OpenCV": [[10, "opencv"]], "NumPy": [[10, "numpy"]], "Python": [[10, "python"]], "The problem": [[10, "the-problem"]], "Instructions": [[10, "instructions"], [30, "instructions"]], "Importing packages": [[10, "importing-packages"]], "Camera stream": [[10, "camera-stream"]], "Showing image": [[10, "showing-image"]], "NumPy arrays": [[10, "numpy-arrays"]], "Converting frames": [[10, "converting-frames"]], "Masking": [[10, "masking"]], "Contours": [[10, "contours"]], "Calibration": [[10, "calibration"], [29, "calibration"]], "Intro": [[10, "intro"]], "Running": [[10, "running"]], "Challenges": [[10, "challenges"]], "Finding the center": [[10, "finding-the-center"]], "Calculating object distance": [[10, "calculating-object-distance"]], "Programming Subteam Overview": [[11, "programming-subteam-overview"]], "Tank Autonomous": [[12, "tank-autonomous"]], "Getting code": [[12, "getting-code"], [13, "getting-code"]], "Structure": [[12, "structure"], [13, "structure"], [15, "structure"], [23, "structure"]], "Final code (from after the lesson)": [[12, "final-code-from-after-the-lesson"], [13, "final-code-from-after-the-lesson"]], "The Task": [[12, "the-task"], [13, "the-task"]], "Tank Drive Simulation": [[13, "tank-drive-simulation"]], "FRC Programming": [[13, "frc-programming"]], "Subsystems": [[13, "subsystems"]], "Commands": [[13, "commands"]], "initialize()": [[13, "initialize"]], "execute()": [[13, "execute"]], "end(boolean interrupted)": [[13, "end-boolean-interrupted"]], "isFinished()": [[13, "isfinished"]], "Xbox Controls": [[13, "xbox-controls"]], "Motors": [[13, "motors"]], "Extra": [[13, "extra"]], "Preseason Training": [[14, "preseason-training"]], "Index by date": [[14, "index-by-date"]], "Index by topic": [[14, "index-by-topic"]], "Introductory programming": [[14, "introductory-programming"]], "Robot control": [[14, "robot-control"]], "Computer vision": [[14, "computer-vision"]], "Miscellaneous": [[14, "miscellaneous"]], "Git": [[15, "git"], [20, "git"]], "Cloning": [[15, "cloning"]], "Committing": [[15, "committing"]], "Pushing & Pulling": [[15, "pushing-pulling"]], "Switching branches": [[15, "switching-branches"]], "Merging": [[15, "merging"]], "Applications": [[16, "applications"]], "3 - Coprocessors": [[17, "coprocessors"]], "2 - C++ Programming": [[18, "c-programming"]], "Java / roboRIO Programming": [[19, "java-roborio-programming"]], "Library guides": [[19, "library-guides"]], "API references": [[19, "api-references"]], "Operating system": [[20, "operating-system"]], "GitHub CLI": [[20, "github-cli"]], "Git login": [[20, "git-login"]], "(Only for pre-season) Java": [[20, "only-for-pre-season-java"]], "FRC Game Tools and WPILib": [[20, "frc-game-tools-and-wpilib"]], "PathPlanner": [[20, "pathplanner"]], "Phoenix Tuner X": [[20, "phoenix-tuner-x"]], "REV Hardware Client": [[20, "rev-hardware-client"]], "(Optional) Apache Maven": [[20, "optional-apache-maven"]], "4 - Linux": [[21, "linux"]], "5 - Robot design": [[22, "robot-design"]], "Style guide": [[23, "style-guide"]], "Naming": [[23, "naming"]], "Java": [[23, "java"]], "C++": [[23, "c"]], "Resources": [[24, "resources"]], "Documentation and other websites": [[24, "documentation-and-other-websites"]], "Team #2022 History": [[25, "team-2022-history"]], "Titan Algorithms": [[26, "titan-algorithms"]], "Titan Dashboard": [[27, "titan-dashboard"]], "AprilTag Detection": [[28, "apriltag-detection"]], "Reading Configuration": [[28, "reading-configuration"]], "Detection": [[28, "detection"]], "Multithreading": [[28, "multithreading"]], "How to run": [[29, "how-to-run"]], "What it does": [[29, "what-it-does"]], "OS Support": [[30, "os-support"]], "Building": [[30, "building"]], "Build Options": [[30, "build-options"]], "Configuration": [[30, "configuration"]], "Other Tools": [[30, "other-tools"]], "Localization": [[31, "localization"]], "Networking": [[32, "networking"]], "Why?": [[32, "why"]], "Limitations": [[32, "limitations"]], "C++ Client": [[32, "c-client"]], "Sending Information": [[32, "sending-information"], [32, "id3"]], "Sending Information (With Reply)": [[32, "sending-information-with-reply"], [32, "id4"]], "C Client": [[32, "id1"]], "Python Client": [[32, "python-client"]], "Java Server": [[32, "java-server"]], "Receiving Information": [[32, "receiving-information"]], "Titan Processing": [[33, "titan-processing"]], "Contributing": [[33, "contributing"]], "Titan Robotics #2022 Documentation": [[34, "titan-robotics-2022-documentation"]]}, "indexentries": {}})
\ No newline at end of file
+Search.setIndex({"docnames": ["PreseasonTraining/2024CodeOverview/index", "PreseasonTraining/ControlTheoryBasics/index", "PreseasonTraining/ElectricalOverview/index", "PreseasonTraining/JavaBasics/BrainfInterpreter", "PreseasonTraining/JavaBasics/InventoryManager", "PreseasonTraining/JavaBasics/OldNotes", "PreseasonTraining/JavaBasics/WordleClone", "PreseasonTraining/JavaBasics/index", "PreseasonTraining/LEDProgramming/index", "PreseasonTraining/LinuxInstallation/index", "PreseasonTraining/OpenCV_ColorSegmentation/index", "PreseasonTraining/Overview/index", "PreseasonTraining/TankAutonomous/index", "PreseasonTraining/TankDriveSimulation/index", "PreseasonTraining/index", "Resources/Applications/git", "Resources/Applications/index", "Resources/Coprocessors/index", "Resources/CppProgramming/index", "Resources/JavaProgramming/index", "Resources/JavaProgramming/installation", "Resources/Linux/index", "Resources/RobotDesign/index", "Resources/StyleGuide", "Resources/index", "TeamHistory/index", "TitanAlgorithms/index", "TitanDashboard/index", "TitanProcessing/AprilTags/index", "TitanProcessing/Calibration/index", "TitanProcessing/Installation/index", "TitanProcessing/Localization/index", "TitanProcessing/Networking/index", "TitanProcessing/index", "index"], "filenames": ["PreseasonTraining/2024CodeOverview/index.md", "PreseasonTraining/ControlTheoryBasics/index.md", "PreseasonTraining/ElectricalOverview/index.md", "PreseasonTraining/JavaBasics/BrainfInterpreter.md", "PreseasonTraining/JavaBasics/InventoryManager.md", "PreseasonTraining/JavaBasics/OldNotes.md", "PreseasonTraining/JavaBasics/WordleClone.md", "PreseasonTraining/JavaBasics/index.md", "PreseasonTraining/LEDProgramming/index.md", "PreseasonTraining/LinuxInstallation/index.md", "PreseasonTraining/OpenCV_ColorSegmentation/index.md", "PreseasonTraining/Overview/index.md", "PreseasonTraining/TankAutonomous/index.md", "PreseasonTraining/TankDriveSimulation/index.md", "PreseasonTraining/index.md", "Resources/Applications/git.md", "Resources/Applications/index.md", "Resources/Coprocessors/index.md", "Resources/CppProgramming/index.md", "Resources/JavaProgramming/index.md", "Resources/JavaProgramming/installation.md", "Resources/Linux/index.md", "Resources/RobotDesign/index.md", "Resources/StyleGuide.md", "Resources/index.md", "TeamHistory/index.md", "TitanAlgorithms/index.md", "TitanDashboard/index.md", "TitanProcessing/AprilTags/index.md", "TitanProcessing/Calibration/index.md", "TitanProcessing/Installation/index.md", "TitanProcessing/Localization/index.md", "TitanProcessing/Networking/index.md", "TitanProcessing/index.md", "index.md"], "titles": ["2024 Code overview", "Control Theory Basics", "Electrical overview", "3 - Brainf interpreter", "1 - Inventory Manager", "Old notes from 2023", "2 - Wordle Clone", "Java Basics", "LED Programming", "Linux installation", "Color-based segmentation in OpenCV Python", "Programming Subteam Overview", "Tank Autonomous", "Tank Drive Simulation", "Preseason Training", "Git", "Applications", "3 - Coprocessors", "2 - C++ Programming", "Java / roboRIO Programming", "Installation", "4 - Linux", "5 - Robot design", "Style guide", "Resources", "Team #2022 History", "Titan Algorithms", "Titan Dashboard", "AprilTag Detection", "Calibration", "Installation", "Localization", "Networking", "Titan Processing", "Titan Robotics #2022 Documentation"], "terms": {"main": [0, 1, 3, 5, 6, 9, 10, 13, 15, 20, 30, 33], "slideshow": [0, 1, 2, 3, 4, 6, 9, 10, 13], "wip": 0, "oct": 0, "28": [0, 14], "game": [0, 1, 11, 13, 32], "bot": 0, "intro": [0, 9], "shooter": [0, 13], "30": [0, 5, 14], "pathplann": [0, 19, 23], "31": [0, 14], "nov": [0, 14], "5": [0, 1, 3, 6, 13, 14, 24, 32, 34], "robot": [0, 2, 11, 12, 13, 24, 32, 33], "java": [0, 3, 4, 5, 6, 10, 11, 12, 13, 14, 24, 30, 34], "local": [0, 13, 15, 20, 23, 28, 33, 34], "apriltag": [0, 29, 30, 33, 34], "git": [0, 11, 16, 24, 33, 34], "clone": [0, 1, 3, 7, 12, 13, 14, 34], "http": [0, 1, 9, 15, 20, 30], "github": [0, 11, 15, 30], "com": [0, 19, 20, 30], "titan2022": [0, 12, 13], "frc": [0, 1, 5, 11, 14, 19, 24, 32, 34], "branch": [0, 1, 12, 13, 32, 33], "preseason2024": 0, "2024": [1, 2, 3, 4, 6, 8, 9, 10, 12, 13, 14, 20, 32, 33, 34], "octob": [1, 9, 10, 14], "22": [1, 14, 32], "23": [1, 14], "hour": [1, 2, 3, 4, 6, 8], "probabl": 1, "most": [1, 8, 9, 10, 11, 13, 19, 20, 33], "import": [1, 3, 5, 6, 11, 23, 32], "subject": 1, "program": [1, 2, 5, 10, 15, 20, 24, 34], "one": [1, 8, 9, 10, 13, 15, 20, 23, 32], "you": [1, 5, 6, 8, 9, 10, 12, 13, 15, 19, 20, 32, 33, 34], "should": [1, 9, 10, 11, 12, 13, 20, 29, 30], "consid": [1, 30], "top": [1, 9, 10, 23, 32], "prioriti": 1, "It": [1, 5, 9, 13, 20, 29, 33], "separ": [1, 10, 15], "well": 1, "perform": [1, 11, 32], "from": [1, 2, 7, 8, 9, 10, 14, 15, 20, 24, 30, 32, 34], "those": 1, "fail": 1, "earli": 1, "contrari": 1, "mani": [1, 20], "peopl": [1, 3, 5, 6], "assum": [1, 20], "aim": [1, 23], "optim": [1, 11], "reliabl": [1, 32], "instead": [1, 8, 15], "speed": [1, 13], "function": [1, 5, 8, 10, 13, 32], "At": [1, 13], "titan": [1, 5, 30, 32], "our": [1, 2, 5, 8, 10, 13, 20, 23, 30, 34], "curs": 1, "overengin": 1, "solut": [1, 30, 32], "do": [1, 8, 9, 10, 11, 13, 15, 19, 20], "than": [1, 5, 10], "can": [1, 5, 8, 9, 10, 11, 12, 13, 15, 20, 32, 33, 34], "reason": [1, 10, 33], "achiev": [1, 10, 32], "lead": 1, "bare": 1, "ani": [1, 9, 13, 15, 20, 32], "time": [1, 5, 8, 9, 11, 12, 13, 15, 24, 32], "electr": [1, 14, 34], "test": [1, 23, 30, 32], "befor": [1, 15, 32], "competit": 1, "caus": [1, 9], "unforeseen": 1, "mechan": [1, 13], "issu": [1, 9, 30], "product": [1, 15, 30, 33], "yearli": 1, "strategi": [1, 34], "present": 1, "team": [1, 3, 6, 11, 13, 23, 24, 34], "1678": 1, "citru": 1, "circuit": 1, "consist": [1, 5, 13, 23], "advis": 1, "other": [1, 5, 9, 10, 13, 15, 20, 29, 34], "stick": [1, 9], "even": [1, 24], "mean": [1, 10, 12, 33], "miss": 1, "out": [1, 3, 5, 6, 9, 10, 13, 20, 32], "strateg": 1, "advantag": 1, "thei": [1, 10, 13, 32], "often": [1, 10, 33], "illustr": 1, "thi": [1, 3, 4, 5, 8, 9, 10, 11, 12, 13, 15, 20, 23, 29, 32, 33], "discourag": 1, "swerv": 1, "drive": [1, 5, 9, 11, 12, 14, 23, 34], "without": [1, 8, 12, 15, 28, 30], "long": [1, 9], "term": 1, "experi": [1, 11, 15], "all": [1, 5, 8, 10, 11, 12, 13, 15, 20, 29, 30, 32, 34], "share": 1, "same": [1, 5, 10, 15, 32], "goal": [1, 10], "maxim": 1, "And": [1, 5], "so": [1, 8, 10, 12, 13, 20, 23, 30, 33], "side": [1, 13], "how": [1, 9, 11, 12, 20], "done": [1, 5, 12, 13], "biggest": [1, 10], "obstacl": 1, "which": [1, 5, 8, 9, 10, 12, 13, 15, 20, 28, 32], "prevent": [1, 9], "u": [1, 11], "complet": [1, 10, 12, 20], "solv": [1, 32], "everi": [1, 5, 8, 10, 13, 15], "nois": 1, "system": [1, 2, 3, 5, 6, 9, 30, 32], "have": [1, 5, 10, 11, 12, 13, 15, 19, 20, 32], "variabl": [1, 5, 8, 10, 13, 20, 23], "amount": [1, 11, 19], "bend": 1, "twist": 1, "slack": 1, "unwant": 1, "form": [1, 10], "temporari": [1, 32], "deform": 1, "rigid": 1, "object": [1, 5, 13, 28, 32], "also": [1, 5, 8, 9, 10, 12, 13, 20, 29, 34], "uniqu": [1, 10], "aspect": 1, "when": [1, 5, 8, 10, 12, 13, 20, 30], "compar": 1, "high": 1, "school": 1, "level": [1, 23, 32], "materi": 1, "properti": [1, 10], "start": [1, 9, 10, 12, 13, 15, 20, 29], "show": [1, 8, 32], "significantli": 1, "length": [1, 3], "mass": 1, "size": [1, 5, 6, 10, 29, 30], "unlik": [1, 10, 33], "compact": 1, "ftc": 1, "vex": 1, "simpl": [1, 4, 12], "contrapt": 1, "like": [1, 5, 10, 11, 12, 13, 30], "measur": 1, "tape": [1, 10], "2020": 1, "would": [1, 10, 13], "work": [1, 3, 6, 10, 11, 13, 15, 28], "becaus": [1, 33], "criteria": [1, 13], "scale": 1, "want": [1, 8, 9, 10, 12, 15, 20], "manuev": 1, "while": [1, 5, 6, 8, 10, 11, 29], "adapt": 1, "undesir": 1, "physic": [1, 10, 13], "field": [1, 10, 30], "appli": [1, 9], "mathemat": 1, "regard": [1, 19], "accuraci": 1, "respons": 1, "There": [1, 5, 12, 20, 30, 34], "ar": [1, 5, 8, 10, 13, 15, 20, 24, 29, 30, 32, 34], "two": [1, 3, 6, 8, 10, 11, 13, 14, 32], "type": [1, 5, 10, 20, 30, 32], "feedback": 1, "As": 1, "name": [1, 5, 10, 20, 30], "suggest": 1, "util": [1, 5, 6, 8, 10, 12, 13, 23, 29, 32], "input": [1, 5, 10, 15], "determin": [1, 29, 33], "an": [1, 2, 4, 5, 8, 10, 13, 14, 15, 20, 28, 33], "output": [1, 10, 12, 13], "back": [1, 15, 20, 32], "henc": 1, "its": [1, 10, 13, 20, 32], "second": [1, 8, 10, 11, 12, 13, 15, 28, 32], "exampl": [1, 5, 12, 13, 20, 28, 30, 32], "boil": 1, "water": 1, "ga": 1, "stove": 1, "certain": [1, 5, 13], "onli": [1, 5, 8, 10, 11, 12, 13, 15, 30, 32], "care": [1, 9], "about": [1, 8, 10, 13, 24], "volum": 1, "user": [1, 5], "select": [1, 8, 9, 15, 20, 30], "doe": [1, 10, 11, 32], "whether": [1, 28], "temperatur": 1, "regul": 1, "air": 1, "condition": 1, "hvac": 1, "fed": 1, "new": [1, 3, 5, 6, 8, 12, 13, 32], "eventu": [1, 20], "adjust": 1, "room": 1, "desir": 1, "depend": 1, "dc": 1, "motor": [1, 5, 11, 12, 20], "rotat": [1, 12, 30, 32], "possibl": [1, 23, 33], "take": [1, 10, 30], "account": [1, 9, 20, 32], "encod": 1, "valu": [1, 8, 10, 13, 29, 30, 32], "comput": [1, 9, 10, 11, 13], "enough": [1, 8, 13, 32], "voltag": 1, "feed": [1, 10, 28], "proport": 1, "integr": 1, "deriv": 1, "common": [1, 10], "allow": [1, 13, 15, 30, 32], "tweak": 1, "three": [1, 10, 12], "constant": [1, 10, 23, 32], "coeffici": [1, 10, 29, 30], "state": [1, 8], "increas": 1, "effici": 1, "lower": [1, 5], "undershoot": 1, "overshoot": 1, "imagin": [1, 13], "try": [1, 3, 6, 10, 13, 15, 20, 30, 33], "car": [1, 5], "locat": [1, 10], "straight": 1, "slipperi": 1, "poorli": 1, "construct": 1, "road": 1, "call": [1, 8, 9, 12, 13, 15, 28, 32], "your": [1, 8, 9, 10, 12, 13, 15, 20, 30, 32, 33], "destin": 1, "": [1, 5, 8, 9, 10, 11, 12, 13, 15, 20, 23, 30], "r": [1, 5], "t": [1, 9, 10, 11, 12, 13, 15, 20], "setpoint": 1, "know": [1, 9, 10, 11, 20], "y": [1, 8, 10, 13, 20, 29], "These": [1, 20, 24], "process": [1, 13, 20, 28, 29, 30, 32, 34], "e": [1, 5, 6, 20, 23], "differ": [1, 10, 15], "between": [1, 13, 32], "current": [1, 9, 20, 30, 32], "posit": [1, 10, 30, 32], "go": [1, 8, 15], "equat": [1, 8], "int_0": 1, "tau": 1, "d": [1, 9], "frac": 1, "de": 1, "dt": 1, "where": [1, 10, 20], "distanc": 1, "tell": [1, 20], "isn": [1, 20], "too": [1, 9, 28], "understand": 1, "math": [1, 8, 10], "send": [1, 8, 13, 20, 28], "wait": [1, 8, 9], "until": [1, 8, 13], "figur": [1, 9, 10, 13], "after": [1, 5, 8, 9, 10, 11, 15, 24], "tri": [1, 32], "Then": [1, 5, 9, 10, 32], "repeat": [1, 8], "idea": [1, 32], "sai": [1, 20], "campground": 1, "mile": [1, 5], "down": [1, 9, 13], "acceler": 1, "don": [1, 9, 10, 12, 13, 15, 20], "few": 1, "gener": [1, 30], "usual": 1, "0": [1, 3, 5, 6, 8, 9, 10, 13, 20, 29, 32], "manual": [1, 9, 30, 32], "none": 1, "tend": 1, "drastic": 1, "note": [1, 7, 10, 14, 32, 34], "anoth": [1, 8, 9, 10, 32], "less": [1, 32], "factor": 1, "data": [1, 10, 32], "frequenc": 1, "sinc": [1, 8, 9, 10, 12, 13, 23, 32, 33], "discret": 1, "model": [1, 33], "delta": 1, "result": [1, 5, 6, 8, 13, 20], "better": 1, "calcul": [1, 8], "implement": 1, "falcon": [1, 13, 20], "500": [1, 13, 20], "being": [1, 8, 10], "drivebas": [1, 12], "wheel": [1, 13], "arm": [1, 13, 23], "elev": 1, "etc": [1, 5, 9, 20], "ideal": [1, 10], "through": [1, 4, 8, 11, 12, 13, 19, 28, 33], "correctli": 1, "behind": 1, "necessari": [1, 8, 10, 29, 30, 33], "learn": [1, 15, 24], "articl": [1, 10], "wpilib": [1, 5, 11, 19, 23, 32], "document": [1, 19, 23, 29, 32], "explain": 1, "includ": [1, 5, 10, 13, 15, 20, 23, 30, 32, 33], "pidcontrol": 1, "class": [1, 3, 5, 6, 13, 23, 28, 32], "sometim": [1, 9], "benefici": 1, "add": [1, 5, 6, 12, 13, 20], "compon": [1, 13, 19], "compens": 1, "specif": [1, 8, 10, 15, 20, 33], "circumst": 1, "pidf": 1, "old": [1, 7, 14, 34], "subsystem": [1, 23], "friction": 1, "incredibli": 1, "multipli": [1, 8], "see": [1, 5, 8, 10, 12, 20, 32], "interact": [1, 10], "here": [1, 8, 10, 11, 13, 15, 30, 34], "circl": [1, 10], "attempt": [1, 6, 10], "itself": [1, 13], "under": [1, 8, 20], "cursor": 1, "interest": [1, 8], "websit": [1, 20], "simul": [1, 14, 34], "cart": 1, "balanc": [1, 13], "bookmark": 1, "behavior": 1, "graviti": 1, "affect": 1, "For": [1, 8, 10, 13, 20, 30], "assign": [1, 13], "pass": [1, 12, 13, 28, 32], "target": [1, 5, 9, 33], "instanc": [1, 5, 8, 13], "each": [1, 5, 8, 10, 12, 13, 15, 29, 32], "own": [1, 5, 30, 33], "paramet": [1, 30], "make": [1, 4, 5, 8, 9, 10, 11, 12, 15, 20, 29, 30, 32], "satisfactori": 1, "ident": [1, 13], "creat": [1, 5, 8, 10, 12, 13, 15, 20, 32, 33], "argument": [1, 10, 13, 28, 32], "ha": [1, 5, 8, 9, 10, 11, 13, 15, 19, 32], "method": [1, 5, 8, 10, 12, 13, 23, 28, 32], "provid": [1, 8, 28, 29], "re": [1, 10, 20], "reach": [1, 20], "pseudo": 1, "value_deriv": 1, "measured_valu": 1, "target_valu": 1, "measured_veloc": 1, "target_veloc": 1, "setmotoracceler": 1, "actual": [1, 8, 13], "settargetveloc": 1, "settargetposit": 1, "avail": [1, 10, 20, 32, 34], "unit": [1, 5], "arbitrari": 1, "getinput": 1, "arrow": [1, 9, 13], "getmotoracceler": 1, "gettargetveloc": 1, "gettargetposit": 1, "getacceler": 1, "getveloc": 1, "getposit": 1, "training2024": [1, 12, 13], "repositori": [1, 12, 13, 15], "checkout": [1, 15], "templat": [1, 10, 12, 13], "relev": 1, "written": [1, 5, 33], "insid": [1, 5, 10, 12, 13, 15, 30], "elevatorplayground": 1, "updat": [1, 8, 9, 10, 15, 24, 32], "attain": 1, "specifi": [1, 10, 12, 28, 29, 32], "press": [1, 10, 11, 13, 15, 20], "m": [1, 13], "sim": [1, 13], "playgroundbas": 1, "public": [1, 3, 5, 6, 12, 13, 23], "extend": [1, 10, 13, 33], "privat": [1, 5, 6, 13, 23], "velocitypid": 1, "40": 1, "3": [1, 6, 7, 10, 13, 14, 24, 30, 34], "run": [1, 5, 8, 9, 12, 13, 20, 30], "onc": [1, 8, 13, 15], "frame": 1, "init": [1, 13, 20], "overrid": [1, 13], "void": [1, 3, 5, 6, 8, 13], "period": [1, 11, 13], "9": [1, 10, 14, 32], "8": [1, 8, 10, 14, 20, 30], "println": [1, 3, 5, 6, 32], "error": [1, 10], "order": [1, 9, 12], "block": 1, "If": [1, 5, 8, 9, 15, 20], "stuck": 1, "need": [1, 9, 10, 11, 12, 13, 15, 20], "yourself": [1, 20], "positionpid": 1, "automat": [1, 5, 10, 15], "minim": 1, "residu": 1, "real": [1, 8, 13], "bit": [1, 20], "confus": 1, "wikipedia": [1, 10], "doc": [1, 20], "chapter": 1, "engin": [1, 5], "cw": 1, "yapathon": 1, "ahead": [1, 19], "A": [1, 5, 13, 15], "softwar": [1, 10, 11, 13, 20, 34], "introduc": [1, 4], "axi": [1, 13], "sever": [1, 8, 10], "impact": 1, "belt": 1, "slippag": 1, "gearbox": 1, "misalign": 1, "sensor": [1, 5], "signal": [1, 8, 32], "deal": 1, "weight": 1, "torqu": 1, "cannot": [1, 13], "imposs": 1, "perfect": [1, 10], "best": [1, 10, 11, 30], "them": [1, 8, 9, 10, 13, 15], "contain": [1, 5, 6, 10, 12, 13, 15, 19], "place": [1, 13], "closest": 1, "gear": 1, "requir": [1, 10, 13, 15, 30, 33], "toler": 1, "repres": [1, 10], "raw": [1, 20, 30], "alreadi": [1, 12, 15, 20], "librari": [1, 5, 8, 10, 20, 28, 30, 32, 33], "filter": [1, 33], "variou": [1, 10], "cover": [1, 10, 12, 13], "some": [1, 8, 9, 10, 13, 19, 20, 34], "later": [1, 10, 20], "But": [1, 8], "ultim": 1, "direct": [1, 13], "wai": [1, 10, 12, 20, 30, 32], "unpredict": 1, "plan": [1, 30], "instinct": 1, "recreat": 1, "geometr": 1, "draw": [1, 10], "diagram": 1, "imsa": [1, 5], "previous": 1, "world": 1, "invers": 1, "kinemat": [1, 19], "base": [1, 12, 13, 14, 19, 20, 34], "accur": [1, 29], "weren": 1, "defin": [1, 8], "rang": [1, 8, 10], "appear": 1, "although": [1, 10, 32], "theoret": 1, "still": 1, "veri": 1, "applic": [1, 10, 24, 34], "hard": [1, 11], "describ": 1, "much": [1, 10, 11, 13, 23], "potenti": 1, "won": 1, "predict": 1, "combin": 1, "reduc": [1, 11], "ad": [1, 5, 20], "last": [1, 10], "step": [1, 15], "great": [1, 20], "simplest": [1, 10], "constraint": 1, "remov": [1, 9, 15], "unnecessari": [1, 10], "approach": 1, "move": [1, 13], "degre": [1, 10, 12, 30], "freedom": 1, "precis": 1, "hold": [1, 29], "heavi": 1, "perhap": 1, "mai": [1, 29], "total": 1, "throughout": 1, "entir": [1, 19], "mayb": 1, "suitabl": 1, "higher": [1, 20], "pullei": 1, "easier": [1, 13], "energi": 1, "counter": [1, 13], "consider": 1, "power": [1, 9], "usag": [1, 15, 30], "faster": 1, "case": [1, 3, 5, 8, 23], "action": [1, 10, 15], "nearest": 1, "member": [1, 5, 15, 20, 23], "ruin": 1, "dream": 1, "attach": 1, "custom": [1, 11], "might": [1, 9, 10, 20, 24], "predetermin": 1, "beforehand": 1, "tabl": [1, 32], "static": [1, 3, 5, 6, 8], "angl": [1, 10, 30], "seem": 1, "realiz": 1, "batteri": 1, "get": [1, 5, 6, 10, 20, 32], "exponenti": 1, "difficult": [1, 10], "decid": 1, "strain": 1, "movement": 1, "occurr": 1, "week": 1, "come": [1, 9], "over": [1, 10, 28], "year": 1, "who": [1, 3, 6], "singlehandedli": 1, "wrote": [1, 23], "command": [1, 3, 4, 5, 12, 19, 20, 23, 30], "sick": 1, "far": [1, 13], "simpler": 1, "debug": [1, 13, 20, 30], "estim": [1, 29], "section": 1, "exagger": 1, "encount": 1, "neg": 1, "outcom": 1, "season": [1, 10, 13, 33], "simpli": [1, 13, 24], "pandem": 1, "taken": [1, 4], "toll": 1, "signific": 1, "knowledg": 1, "connect": [1, 8, 10, 20], "been": [1, 9], "lost": [1, 12, 32], "improv": 1, "retel": 1, "event": 1, "occur": [1, 10], "2022": [1, 20], "2023": [1, 7, 14, 33, 34], "write": [1, 9, 10, 13, 15], "wa": [1, 20, 32], "limit": [1, 20], "encourag": 1, "chiefdelphi": 1, "post": 1, "purpos": [1, 8, 10, 13], "regain": 1, "skill": 1, "everyon": [1, 4, 13, 15], "els": [1, 5, 6, 8, 23, 30], "proper": 1, "strongli": 1, "recommend": [1, 10, 20, 24], "least": [1, 9], "book": 1, "inform": [1, 10, 12, 13], "essenti": 1, "classic": 1, "calculu": 1, "linear": 1, "algebra": 1, "prerequisit": 1, "kalman": [1, 33], "bc": 1, "sequenc": 1, "mvc": 1, "linalg": 1, "entireti": 1, "abov": [1, 4, 30], "major": [1, 19], "programm": [1, 11, 19], "particular": 1, "sourc": [1, 9, 15, 24], "repo": [1, 15, 20, 30], "wikimedia": 1, "org": [1, 9], "wiki": [1, 19], "file": [1, 3, 9, 10, 11, 12, 13, 15, 20, 23, 29, 30, 32], "pid_en": 1, "svg": 1, "arturo": 1, "urquizo": 1, "pid_varyingp": 1, "jpg": 1, "timmmyk": 1, "change_with_ki": 1, "png": 1, "skorkmaz": 1, "change_with_kd": 1, "septemb": [2, 3, 4, 6, 8, 12, 13, 14], "25": [2, 14], "2": [2, 5, 7, 8, 9, 10, 13, 14, 24, 30, 34], "introduct": [2, 14], "perspect": [2, 10], "11": [3, 6, 14, 20], "1": [3, 5, 6, 7, 8, 9, 10, 13, 14, 20, 30, 34], "we": [3, 4, 5, 6, 8, 9, 10, 11, 12, 13, 14, 20], "split": [3, 5, 6, 14], "up": [3, 5, 6, 8, 9, 10, 13, 14], "group": [3, 6, 10, 12, 13, 14, 23], "The": [3, 5, 6, 8, 19, 23, 28, 29, 32, 33], "were": [3, 6], "wordl": [3, 7, 14, 34], "more": [3, 5, 6, 10, 12, 13, 20, 24, 32], "familiar": [3, 6], "string": [3, 5, 6, 13, 28], "arg": [3, 5, 6], "brainfuckread": 3, "reader": [3, 6], "getcod": 3, "brainfuckinterpret": 3, "io": [3, 6], "nio": 3, "filenam": 3, "return": [3, 6, 8, 10, 13, 20, 32], "readstr": 3, "topath": 3, "catch": [3, 6], "except": [3, 6], "err": [3, 6], "char": [3, 6], "memori": 3, "3000": 3, "int": [3, 5, 6, 8, 28, 32], "posrightbracketforleftbracket": 3, "datapoint": 3, "posleftbracket": 3, "i": [3, 4, 5, 6, 8, 9, 10, 11, 12, 13, 15, 20, 23, 28, 30, 32, 33], "charat": [3, 6], "switch": [3, 13], "break": [3, 6, 10, 15], "default": [3, 9, 20, 28, 32], "print": [3, 5, 10, 29, 30], "10": [4, 5, 10, 14, 20, 30, 32], "project": [4, 8, 11, 13, 15, 20, 28, 30, 32, 34], "consol": [4, 10], "follow": [4, 9, 10, 13, 20, 23, 24, 30, 32], "along": 4, "dure": [4, 11, 13], "meet": 4, "first": [4, 8, 9, 10, 12, 13, 15, 19, 20, 28, 29, 32], "led": [4, 14, 34], "what": [5, 9, 11], "jit": 5, "compil": [5, 20, 33], "just": [5, 8, 10, 12, 13], "In": [5, 8, 9, 10, 13], "languag": [5, 8], "bytecod": 5, "translat": [5, 10], "machin": 5, "code": [5, 8, 10, 11, 14, 15, 20, 23, 30, 33, 34], "platform": [5, 13, 15, 30], "cross": [5, 30], "c": [5, 13, 24, 30, 34], "directli": 5, "g": [5, 20, 23], "integ": [5, 6, 8, 10], "number": [5, 8, 13], "doubl": [5, 12, 32], "decim": [5, 8], "text": [5, 6], "primit": 5, "basic": [5, 14, 19, 29, 34], "upper": 5, "complex": 5, "next": [5, 12, 15, 20], "orient": [5, 13], "everyth": [5, 12, 30], "constructor": [5, 13, 28], "modifi": [5, 13], "readonli": 5, "thing": [5, 8, 10, 15], "access": [5, 8, 10, 11, 13, 23], "cant": 5, "creation": 5, "btw": 5, "attribut": 5, "python": [5, 8, 14, 29, 30, 34], "float": [5, 8], "fuel": 5, "gallon": 5, "mileag": 5, "x": [5, 8, 9, 10, 11, 12, 13, 29, 30], "drivecar": 5, "33": 5, "per": [5, 30], "addfuel": 5, "hondaciv": 5, "brand": 5, "zero": [5, 10], "0f": 5, "fill": 5, "drove": 5, "typic": [5, 10, 13, 15], "standard": [5, 8, 10, 32], "us": [5, 8, 9, 10, 11, 12, 13, 14, 15, 20, 24, 29, 30, 32, 33], "stuff": 5, "gyroscop": 5, "manufactur": 5, "reusabl": 5, "algorithm": [5, 33, 34], "walkthrough": 5, "practic": 5, "inventori": [5, 7, 14, 34], "manag": [5, 7, 9, 11, 14, 20, 34], "item": 5, "quantiti": 5, "arraylist": [5, 6], "additem": 5, "search": [5, 9, 10, 20], "queri": 5, "ye": 5, "n": [5, 30], "window": [5, 9, 10, 20, 28, 30], "special": [5, 13], "charact": 5, "line": [5, 10, 12], "scanner": [5, 6], "vscode": [5, 11, 15, 20], "inventorymanag": 5, "welcom": [5, 34], "No": 5, "space": [5, 9, 10, 11, 30], "find": [5, 9, 34], "exit": [5, 10], "leav": [5, 32], "record": 5, "inputscann": [5, 6], "loop": [5, 8, 10], "condit": [5, 8, 10, 12], "true": [5, 6, 13, 20, 32], "boolean": [5, 6], "isrun": [5, 6], "userinput": [5, 6], "nextlin": [5, 6], "splittedcommand": 5, "arrai": [5, 8, 32], "word": [5, 6], "startswith": 5, "fals": [5, 6, 8, 10, 13, 32], "count": 5, "convert": [5, 8, 32], "newitem": 5, "parseint": 5, "unknown": 5, "brainf": [6, 7, 14, 34], "interpret": [6, 7, 14, 34], "word_length": 6, "max_attempt": 6, "9999999": 6, "wordleread": 6, "secretword": 6, "getrandomword": 6, "equal": 6, "congrat": 6, "guess": 6, "matchingindec": 6, "letter": [6, 20, 29], "turngreen": 6, "indexof": 6, "turnyellow": 6, "random": 6, "randgen": 6, "currenttimemilli": 6, "fileinputstream": 6, "fstream": 6, "txt": 6, "datainputstream": 6, "bufferedread": 6, "br": 6, "inputstreamread": 6, "strline": 6, "readlin": 6, "null": [6, 9, 32], "close": [6, 10, 13, 29], "nextint": 6, "tolowercas": 6, "wordexist": 6, "42m": 6, "0m": 6, "43m": 6, "4": [8, 14, 24, 30, 34], "lesson": [8, 10], "strip": 8, "microcontrol": 8, "arduino": 8, "uno": 8, "wokwi": 8, "onlin": [8, 9, 10, 15, 20], "emul": 8, "substitut": [8, 11], "board": [8, 30], "turn": [8, 12], "infinit": 8, "set": [8, 10, 12, 13, 19, 20], "100": [8, 9], "light": [8, 9, 11], "displai": [8, 13, 20, 29], "open": [8, 9, 10, 15, 20, 28], "tab": [8, 15], "fastl": 8, "control": [8, 11, 12, 15, 20, 34], "clear": 8, "pixel": [8, 10, 29], "empti": [8, 13], "earlier": 8, "bracket": 8, "oper": [8, 9, 33], "chsv": 8, "hue": [8, 10], "satur": [8, 10], "crgb": 8, "red": [8, 10], "green": [8, 10, 11, 15], "blue": [8, 10, 15], "color": [8, 14, 29, 34], "rgb": [8, 10], "both": [8, 20, 30], "255": [8, 10], "byte": [8, 10], "blank": [8, 32], "num_l": 8, "th": 8, "iter": 8, "divis": 8, "divid": 8, "progress": [8, 12], "now": [8, 12, 20], "To": [8, 10, 13, 15, 20, 30, 33], "delai": [8, 32], "millisecond": 8, "similar": [8, 20], "sleep": [8, 9], "fast": 8, "list": [8, 9, 15, 20], "notabl": 8, "featur": [8, 10, 15], "forev": [8, 12], "statement": [8, 12, 32], "thing1": 8, "thing2": 8, "funciton": 8, "1000": 8, "modulo": 8, "number0": 8, "remaind": 8, "sin": 8, "co": 8, "tan": 8, "pow": 8, "sqrt": 8, "log": [8, 20], "natur": 8, "log10": 8, "hsv": [8, 10], "support": [8, 9, 19, 20, 32], "download": [8, 9, 10, 11, 15, 20], "desktop": [8, 9], "version": [8, 9, 13, 20, 33], "id": [8, 9, 13, 20, 30, 32], "usb": [8, 9, 11], "port": [8, 20, 30, 32], "tool": [8, 29], "click": [8, 15, 20], "upload": [8, 15], "kde": 9, "live": 9, "iso": 9, "cdimag": 9, "cd": [9, 30], "amd64": [9, 20], "hybrid": 9, "12": [9, 10, 20, 30], "7": 9, "read": [9, 10, 19], "flash": 9, "onto": 9, "On": [9, 10, 13, 20], "instruct": [9, 20], "rufu": 9, "app": [9, 20], "free": [9, 10, 13, 15, 20, 30], "disk": 9, "menu": [9, 15, 20], "ll": [9, 20], "50": [9, 13], "gb": 9, "200": 9, "prefer": [9, 20], "disabl": [9, 11], "bitlock": 9, "guid": [9, 10, 15, 24, 30, 34], "sure": [9, 10, 12, 20, 29], "microsoft": [9, 10, 20], "password": 9, "associ": 9, "recoveri": 9, "kei": [9, 10, 13], "paper": [9, 29], "plug": [9, 11], "imag": 9, "reboot": 9, "spam": [9, 20], "appropri": [9, 10], "hotkei": 9, "bio": 9, "soon": 9, "laptop": [9, 20], "esc": [9, 10], "f2": 9, "f10": 9, "boot": 9, "secur": 9, "technic": 9, "o": [9, 20], "approv": 9, "someon": [9, 23], "sold": 9, "sign": [9, 11], "save": [9, 15, 29], "ask": [9, 10, 11, 13, 20], "session": [9, 20], "enter": [9, 11, 13, 15, 20], "left": [9, 13, 29], "calamar": 9, "termin": [9, 12, 13, 20], "prompt": 9, "goe": 9, "usernam": [9, 12, 13, 20], "screen": [9, 13], "sudo": [9, 20, 30], "nano": 9, "edit": [9, 13, 30], "ctrl": 9, "merg": [9, 12, 33], "configur": [9, 13, 20], "bootload": 9, "hardwar": [9, 11], "recent": 9, "nonfre": 9, "amd": [9, 20], "graphic": [9, 10], "misc": 9, "intel": [9, 20, 30], "nvidia": 9, "mediatek": 9, "packag": [9, 30], "buster": 9, "backport": 9, "devic": [9, 20], "shell": [9, 20], "l": [9, 20], "dev": [9, 28], "got": 9, "sda": 9, "right": [9, 13], "usbstick": 9, "mkdir": [9, 30], "p": 9, "mnt": 9, "mount": 9, "apt": [9, 20, 30], "deb": [9, 30], "tee": 9, "eof": 9, "bookworm": 9, "store": [10, 11, 20], "linux": [10, 11, 14, 20, 24, 30, 34], "preinstal": 10, "ping": [10, 12], "georgi": [10, 20], "ethan": [10, 20], "help": [10, 12, 13, 30], "pip": 10, "contrib": [10, 30], "vision": [10, 11, 13, 33], "partit": 10, "entiti": 10, "background": 10, "detect": [10, 33, 34], "format": 10, "convini": 10, "monitor": [10, 11], "human": 10, "represent": 10, "largest": 10, "extens": [10, 20], "alwai": [10, 11, 15, 24], "multipl": [10, 30], "someth": 10, "commonli": 10, "Its": 10, "modul": [10, 23, 30, 33], "hidden": 10, "impli": 10, "initi": [10, 12, 28, 32, 33], "ones": 10, "pre": 10, "train": [10, 34], "design": [10, 11, 13, 24, 34], "explicit": [10, 33], "syntax": 10, "look": [10, 12, 20], "w3school": 10, "visual": [10, 30], "studio": [10, 30], "button": [10, 13, 15], "shortcut": 10, "structur": [10, 11, 32], "info": 10, "outlin": [10, 23], "accross": 10, "choos": [10, 20], "bright": 10, "pacakg": 10, "keyword": [10, 30], "shorten": 10, "readibl": 10, "np": 10, "cv2": 10, "cv": 10, "webcam": 10, "claim": 10, "captur": 10, "index": [10, 28], "unless": [10, 20], "almost": [10, 13], "cap": 10, "videocaptur": 10, "isopen": 10, "_": 10, "todo": 10, "quit": 10, "q": 10, "otherwis": [10, 15, 20], "kill": 10, "extern": [10, 13, 19], "waitkei": 10, "ord": 10, "releas": [10, 20, 33], "destroyallwindow": 10, "imshow": 10, "correspond": 10, "titl": 10, "keep": [10, 23], "bgr": 10, "properli": 10, "your_fram": 10, "arr": 10, "np_arr": 10, "pretti": [10, 13], "page": [10, 20, 32, 34], "new_fram": 10, "cvtcolor": 10, "color_bgr2rgb": 10, "color_bgr2grai": 10, "grayscal": 10, "color_bgr2hsv": 10, "hide": 10, "part": [10, 11], "sens": 10, "unsign": 10, "inclus": 10, "inrang": 10, "lower_threshold": 10, "upper_threshold": 10, "white": 10, "full": [10, 13, 15, 23, 30], "exclud": 10, "black": 10, "exist": [10, 12, 20], "imaag": 10, "countour": 10, "origin": [10, 15], "drawcontour": 10, "respect": [10, 33], "fourth": 10, "width": [10, 30], "findcontour": 10, "retr_extern": 10, "chain_approx_simpl": 10, "lens": 10, "individu": 10, "view": [10, 15], "script": [10, 20, 29, 30], "scan": 10, "aruco": [10, 30], "chessboard": 10, "known": 10, "diment": [10, 29], "matrix": [10, 30], "distort": [10, 29, 30], "flat": [10, 29], "surfac": [10, 29], "pictur": [10, 30], "approxim": 10, "20": [10, 30, 32], "copi": [10, 12, 15, 20, 32], "feel": [10, 13, 15, 20, 30], "expand": 10, "obtain": 10, "2d": 10, "vertic": 10, "point": [10, 11, 13], "given": 10, "sphere": 10, "radiu": 10, "trigonometri": 10, "depth": 10, "3d": [10, 32], "resourc": [10, 34], "smoothest": 11, "driver": [11, 13], "think": 11, "wast": 11, "autom": 11, "task": [11, 14], "score": 11, "autonom": [11, 13, 14, 20, 34], "15": [11, 13], "good": [11, 32], "bad": 11, "bild": 11, "coprocessor": [11, 24, 32, 33, 34], "roborio": [11, 13, 24, 32, 34], "ethernet": 11, "wifi": 11, "station": [11, 13], "emerg": 11, "stop": [11, 12, 20], "restart": 11, "enabl": 11, "again": [11, 12], "phoenix": [11, 13, 19], "tuner": 11, "non": 11, "rememb": [11, 15, 20], "fly": 11, "di": 11, "pleas": [11, 15, 20, 23], "link": [11, 15, 30], "cheatsheet": [11, 15], "rev": 11, "client": 11, "homework": 11, "haven": 12, "previou": 12, "afterward": [12, 13, 20], "auton": 12, "tankdrivesubsystem": [12, 13], "driveleft": 12, "driveright": 12, "18": [12, 14], "tankcontrolcommand": [12, 13], "movecommand": 12, "teleop": [12, 13], "four": [12, 13, 29], "end": 12, "timeout": 12, "withtimeout": 12, "sequentialcommandgroup": 12, "schedul": [12, 13], "finish": [12, 13], "autonomousinit": [12, 13], "routin": [12, 14, 20, 23], "element": 12, "found": [12, 13, 15, 30], "discard": 12, "chang": [12, 13, 15, 29], "off": 12, "mb": 12, "90": 12, "fine": [12, 20], "me": [12, 13], "squar": [12, 29], "17": [13, 14, 20], "folder": [13, 15, 23, 32], "worri": 13, "entri": [13, 20], "src": 13, "mimic": 13, "serv": 13, "shoot": 13, "intak": 13, "pick": 13, "piec": 13, "oop": 13, "pattern": [13, 29], "timedrobot": 13, "robotinit": 13, "robotperiod": 13, "autonomousperiod": 13, "teleopinit": 13, "teleopperiod": 13, "disabledinit": 13, "player": 13, "rest": 13, "match": [13, 29, 30], "teleoper": 13, "mode": 13, "20m": 13, "todai": 13, "tomorrow": 13, "subsystembas": 13, "tankdriv": 13, "alongsid": 13, "One": 13, "wasd": 13, "joystick": 13, "keyboard": 13, "xboxcontrol": 13, "mycommand": 13, "getleftx": 13, "getlefti": 13, "getrightx": 13, "getrighti": 13, "getxbutton": 13, "getxbuttonpress": 13, "getxbuttonreleas": 13, "talon": 13, "fx": 13, "wpi_talonfx": 13, "differenti": 13, "ctre": [13, 19, 20], "api": 13, "6": [13, 19, 20], "motor0": 13, "controlmod": 13, "percentoutput": 13, "max": [13, 20], "veloc": 13, "setinvert": 13, "clockwis": 13, "slow": 13, "life": 13, "never": [13, 20], "anywher": 13, "percentag": 13, "smartdashboard": 13, "dashboard": [13, 34], "putnumb": 13, "putbooleam": 13, "putstr": 13, "style": [13, 24, 34], "six": 13, "togeth": [13, 15], "around": 13, "plai": 13, "content": 13, "subteam": [14, 34], "overview": [14, 34], "tank": [14, 34], "instal": [14, 19, 24, 33, 34], "segment": [14, 34], "opencv": [14, 30, 34], "theori": [14, 34], "easi": 14, "harder": 14, "24": 14, "pid": 14, "short": [15, 24], "cli": 15, "host": 15, "master": [15, 20, 30], "messag": [15, 33], "fetch": 15, "option": 15, "dublic": 15, "independ": 15, "past": [15, 20], "descript": 15, "readi": 15, "sync": 15, "addit": 15, "check": [15, 20, 24, 29], "bar": 15, "addion": 15, "notifi": 15, "avoid": 15, "conflict": 15, "particularli": 15, "big": 15, "request": [15, 33], "offici": [19, 20, 30, 32, 33, 34], "navx2": 19, "odometri": 19, "edu": 19, "wpi": 19, "phoenix6": 19, "pathplannerlib": 19, "lib": 19, "revlib": 19, "revrobot": 19, "troubl": 20, "veteran": 20, "discord": 20, "64": 20, "cpu": 20, "panel": 20, "box": 20, "either": 20, "32": 20, "arm64": 20, "distribut": 20, "glibc": 20, "popular": 20, "distro": 20, "debian": [20, 30], "ubuntu": 20, "mint": 20, "arch": 20, "elementari": 20, "fedora": 20, "enterpris": 20, "suse": 20, "maco": [20, 30], "mac": 20, "appl": 20, "silicon": 20, "choic": 20, "standalon": 20, "homebrew": 20, "brew": 20, "macport": 20, "doesn": 20, "matter": 20, "thread": [20, 30], "organ": 20, "my": 20, "powershel": 20, "bash": 20, "gh": 20, "auth": 20, "web": 20, "browser": 20, "jdk": 20, "develop": 20, "kit": 20, "temurin": 20, "lt": 20, "msi": 20, "bashrc": 20, "export": 20, "path": [20, 28, 29, 30], "home": 20, "bin": 20, "java_hom": 20, "bash_profil": 20, "zprofil": 20, "ni": 20, "trial": 20, "realiti": 20, "winrar": 20, "shouldn": 20, "interfer": 20, "must": 20, "x11": [20, 28], "wayland": 20, "network": [20, 30, 33, 34], "curl": [20, 30], "githubusercont": 20, "ethanc8": [20, 30], "frclinuxdevkit": 20, "sh": 20, "vscodium": 20, "environ": 20, "fldk_install_ext_destin": 20, "launch": 20, "binari": [20, 30], "oss": 20, "codium": 20, "super": 20, "experiment": 20, "abl": 20, "zip": 20, "put": 20, "somewher": 20, "diagnost": 20, "kind": 20, "involv": 20, "peripher": 20, "android": 20, "rootf": 20, "userspac": 20, "ca": 20, "certif": 20, "waydro": 20, "waydroid": 20, "prop": 20, "persist": 20, "multi_window": 20, "wget": 20, "someblob": 20, "x_2024": 20, "0_apkcombo": 20, "apk": 20, "phoenix_tun": 20, "unfortun": 20, "spark": 20, "experienc": 20, "wish": 20, "contribut": 20, "titanalgorithm": 20, "especi": 23, "lot": 23, "refer": [23, 32, 33], "pascalcas": 23, "macro_cas": 23, "m_camelcas": 23, "camelcas": 23, "enum": 23, "pascalcasetest": 23, "pascalcasesubsystem": 23, "abstract": 23, "pascalcasecommand": 23, "cpp": 23, "hpp": 23, "test_camelcas": 23, "cmake": [23, 30], "projecct": 23, "subfold": 23, "relat": [23, 24, 34], "auto": 23, "reus": 23, "topic": 24, "writ": 24, "irrelev": 24, "configread": 28, "readfromfil": 28, "std": 28, "directori": [28, 30, 32], "config": [28, 29, 30], "load": 28, "rel": 28, "root": 28, "absolut": 28, "titanprocess": 28, "apriltagdetector": 28, "stream": [28, 30, 32], "pose": [28, 29, 32, 33], "packet": [28, 32], "udp": [28, 30, 32], "networkingcli": [28, 32], "posefilt": 28, "video": [28, 32], "bool": 28, "marker": 29, "cm": 29, "type_calibr": 29, "py": [29, 30, 32], "TO": [29, 30], "cfg": 29, "front": 29, "camera": [29, 30], "recogn": 29, "overlai": 29, "logic": 29, "focal": 29, "resolut": 29, "optic": 29, "center": 29, "aarch64": 30, "x86_64": 30, "msvc": 30, "mingw": 30, "clang": 30, "calibr": [30, 33, 34], "submodul": 30, "realsens": 30, "sdk": 30, "googletest": 30, "framework": 30, "json": 30, "modern": 30, "vcpkg": 30, "scratch": 30, "execut": 30, "ol": 30, "titanian": 30, "pool": 30, "v": 30, "vcpkg_2023": 30, "titan2022_amd64": 30, "nlohmann": 30, "makefil": 30, "ninja": 30, "toolchain": 30, "altern": 30, "b": 30, "dcmake_toolchain_fil": 30, "buildsystem": 30, "dbuild_exampl": 30, "forc": 30, "clangd": 30, "dcmake_export_compile_command": 30, "dcmake_build_typ": 30, "relwithdebinfo": 30, "gninja": 30, "j": 30, "dno_realsens": 30, "compat": 30, "ip": [30, 32], "server": 30, "quaddecim": 30, "quadsigma": 30, "decodesharpen": 30, "height": 30, "fp": 30, "exposur": 30, "camset": 30, "meter": 30, "quick": 30, "charuco": 30, "photo": 30, "impliment": [30, 32], "offer": 32, "commun": 32, "mitig": 32, "reconnect": 32, "problem": 32, "socket": 32, "lowest": 32, "protocol": 32, "futur": 32, "tcp": 32, "h": 32, "header": 32, "5800": 32, "label": 32, "vector": 32, "vector3d": 32, "vec": 32, "send_vector": 32, "vector_nam": 32, "pose_nam": 32, "tag": 32, "position2": 32, "rotation2": 32, "send_tag": 32, "tag_nam": 32, "due": 32, "reutil": 32, "outsid": 32, "bind": 32, "replac": 32, "intend": 32, "trbnetworkingclientref": 32, "trbnetworkingclientcr": 32, "trbvector3d": 32, "trbvector3dmak": 32, "returnvec": 32, "trbnetworkingclientsendvector": 32, "trbnetworkingclientsendpos": 32, "trbnetworkingclientsendtag": 32, "trbnetwork": 32, "sendvector": 32, "sendtag": 32, "explicitli": 32, "numer": 32, "midwest": 32, "networkingserv": 32, "5801": 32, "observ": 32, "subscrib": 32, "lambda": 32, "translation3d": 32, "respond": 32, "networkingcal": 32, "tostr": 32, "networkingpos": 32, "networkingtag": 32, "capabl": 33, "roll": 33, "frequent": 33, "bug": 33, "fix": 33, "modif": 33, "rebuild": 33, "commit": 33, "fork": 33, "pull": 33, "preseason": 34, "histori": 34}, "objects": {}, "objtypes": {}, "objnames": {}, "titleterms": {"2024": 0, "code": [0, 1, 3, 6, 12, 13], "overview": [0, 1, 2, 11], "slide": 0, "per": 0, "dai": 0, "download": 0, "control": [1, 13, 14], "theori": 1, "basic": [1, 7], "introduct": [1, 19, 33], "The": [1, 10, 12, 13], "problem": [1, 10], "what": [1, 29], "i": 1, "open": 1, "loop": 1, "v": 1, "close": 1, "pid": 1, "effect": 1, "chang": [1, 9], "k_p": 1, "k_i": 1, "k_d": 1, "us": 1, "robot": [1, 14, 22, 34], "feedforward": 1, "exercis": 1, "1": [1, 4], "tune": 1, "2": [1, 6, 18], "java": [1, 7, 19, 20, 23, 32], "instal": [1, 9, 10, 20, 30], "hint": 1, "we": 1, "did": 1, "dure": 1, "lesson": [1, 12, 13], "set": [1, 9], "up": 1, "veloc": 1, "bind": 1, "left": 1, "right": 1, "kei": 1, "now": 1, "task": [1, 12, 13], "challeng": [1, 10], "further": 1, "read": [1, 28], "more": [1, 8], "On": 1, "In": 1, "practic": 1, "typic": 1, "happen": 1, "design": [1, 22], "decis": 1, "first": 1, "implic": 1, "complex": 1, "imag": [1, 10], "credit": 1, "electr": 2, "3": [3, 17], "brainf": 3, "interpret": 3, "final": [3, 6, 12, 13], "inventori": 4, "manag": 4, "old": 5, "note": 5, "from": [5, 12, 13], "2023": 5, "agenda": [5, 11], "wordl": 6, "clone": [6, 15], "content": [7, 14, 16, 19, 24, 33, 34], "led": 8, "program": [8, 11, 13, 14, 18, 19], "setup": [8, 28, 32], "exampl": 8, "anim": 8, "rainbow": 8, "sine": 8, "wave": 8, "deploi": 8, "linux": [9, 21], "debian": 9, "grub": 9, "newer": 9, "kernel": 9, "firmwar": 9, "color": 10, "base": 10, "segment": 10, "opencv": 10, "python": [10, 32], "overivew": 10, "numpi": 10, "instruct": [10, 30], "import": 10, "packag": 10, "camera": 10, "stream": 10, "show": 10, "arrai": 10, "convert": 10, "frame": 10, "mask": 10, "contour": 10, "calibr": [10, 29], "intro": 10, "run": [10, 29], "find": 10, "center": 10, "calcul": 10, "object": 10, "distanc": 10, "subteam": 11, "tank": [12, 13], "autonom": 12, "get": [12, 13], "structur": [12, 13, 15, 23], "after": [12, 13], "drive": 13, "simul": 13, "frc": [13, 20], "subsystem": 13, "command": 13, "initi": 13, "execut": 13, "end": 13, "boolean": 13, "interrupt": 13, "isfinish": 13, "xbox": 13, "motor": 13, "extra": 13, "preseason": 14, "train": 14, "index": 14, "date": 14, "topic": 14, "introductori": 14, "comput": 14, "vision": 14, "miscellan": 14, "git": [15, 20], "commit": 15, "push": 15, "pull": 15, "switch": 15, "branch": 15, "merg": 15, "applic": 16, "coprocessor": 17, "c": [18, 23, 32], "roborio": 19, "librari": 19, "guid": [19, 23], "api": 19, "refer": 19, "oper": 20, "system": 20, "github": 20, "cli": 20, "login": 20, "onli": 20, "pre": 20, "season": 20, "game": 20, "tool": [20, 30], "wpilib": 20, "pathplann": 20, "phoenix": 20, "tuner": 20, "x": 20, "rev": 20, "hardwar": 20, "client": [20, 32], "option": [20, 30], "apach": 20, "maven": 20, "4": 21, "5": 22, "style": 23, "name": 23, "resourc": 24, "document": [24, 34], "other": [24, 30], "websit": 24, "team": 25, "2022": [25, 34], "histori": 25, "titan": [26, 27, 33, 34], "algorithm": 26, "dashboard": 27, "apriltag": 28, "detect": 28, "configur": [28, 30], "multithread": 28, "how": 29, "doe": 29, "o": 30, "support": 30, "build": 30, "local": 31, "network": 32, "why": 32, "limit": 32, "send": 32, "inform": 32, "With": 32, "repli": 32, "server": 32, "receiv": 32, "process": 33, "contribut": 33}, "envversion": {"sphinx.domains.c": 3, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 9, "sphinx.domains.index": 1, "sphinx.domains.javascript": 3, "sphinx.domains.math": 2, "sphinx.domains.python": 4, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx": 58}, "alltitles": {"2024 Code overview": [[0, "code-overview"]], "Slides per day": [[0, "slides-per-day"]], "Download the code": [[0, "download-the-code"]], "Control Theory Basics": [[1, "control-theory-basics"]], "Introduction": [[1, "introduction"], [19, "introduction"], [33, "introduction"]], "The Problem": [[1, "the-problem"]], "What is Control Theory": [[1, "what-is-control-theory"]], "Open-Loop vs. Closed-Loop": [[1, "open-loop-vs-closed-loop"]], "PID Controllers": [[1, "pid-controllers"]], "The effect of changing K_p, K_i, and K_d": [[1, "the-effect-of-changing-k-p-k-i-and-k-d"]], "Using the PID controller on the robot": [[1, "using-the-pid-controller-on-the-robot"]], "PID with feedforward": [[1, "pid-with-feedforward"]], "Exercise 1 - Tuning a PID controller": [[1, "exercise-1-tuning-a-pid-controller"]], "Exercise 2 - Using PID in Java": [[1, "exercise-2-using-pid-in-java"]], "Overview": [[1, "overview"]], "Installation": [[1, "installation"], [10, "installation"], [20, "installation"], [30, "installation"]], "Code": [[1, "code"]], "Hints (what we did during the lesson)": [[1, "hints-what-we-did-during-the-lesson"]], "Setting up the velocity PID and binding it to the left/right keys": [[1, "setting-up-the-velocity-pid-and-binding-it-to-the-left-right-keys"]], "Now, the task": [[1, "now-the-task"]], "Challenge": [[1, "challenge"]], "Further reading on PID": [[1, "further-reading-on-pid"]], "More On Robot Control": [[1, "more-on-robot-control"]], "The Problem: In Practice": [[1, "the-problem-in-practice"]], "What Typically Happens": [[1, "what-typically-happens"]], "Design Decisions First": [[1, "design-decisions-first"]], "Implications of Complexity": [[1, "implications-of-complexity"]], "Further Reading": [[1, "further-reading"]], "Image credits": [[1, "image-credits"]], "Electrical overview": [[2, "electrical-overview"]], "3 - Brainf interpreter": [[3, "brainf-interpreter"]], "Final code": [[3, "final-code"], [6, "final-code"]], "1 - Inventory Manager": [[4, "inventory-manager"]], "Old notes from 2023": [[5, "old-notes-from-2023"]], "Agenda": [[5, "agenda"], [11, "agenda"]], "2 - Wordle Clone": [[6, "wordle-clone"]], "Java Basics": [[7, "java-basics"]], "Contents": [[7, null], [14, null], [16, null], [19, null], [24, null], [33, null], [34, null]], "LED Programming": [[8, "led-programming"]], "Setup": [[8, "setup"], [28, "setup"], [32, "setup"], [32, "id2"], [32, "id5"]], "More examples": [[8, "more-examples"]], "Animated Rainbow": [[8, "animated-rainbow"]], "Sine Wave": [[8, "sine-wave"]], "Deploying": [[8, "deploying"]], "Linux installation": [[9, "linux-installation"]], "Installing Debian": [[9, "installing-debian"]], "Changing GRUB settings": [[9, "changing-grub-settings"]], "Installing a newer kernel/firmware": [[9, "installing-a-newer-kernel-firmware"]], "Color-based segmentation in OpenCV Python": [[10, "color-based-segmentation-in-opencv-python"]], "Overivew": [[10, "overivew"]], "Segmentation": [[10, "segmentation"]], "OpenCV": [[10, "opencv"]], "NumPy": [[10, "numpy"]], "Python": [[10, "python"]], "The problem": [[10, "the-problem"]], "Instructions": [[10, "instructions"], [30, "instructions"]], "Importing packages": [[10, "importing-packages"]], "Camera stream": [[10, "camera-stream"]], "Showing image": [[10, "showing-image"]], "NumPy arrays": [[10, "numpy-arrays"]], "Converting frames": [[10, "converting-frames"]], "Masking": [[10, "masking"]], "Contours": [[10, "contours"]], "Calibration": [[10, "calibration"], [29, "calibration"]], "Intro": [[10, "intro"]], "Running": [[10, "running"]], "Challenges": [[10, "challenges"]], "Finding the center": [[10, "finding-the-center"]], "Calculating object distance": [[10, "calculating-object-distance"]], "Programming Subteam Overview": [[11, "programming-subteam-overview"]], "Tank Autonomous": [[12, "tank-autonomous"]], "Getting code": [[12, "getting-code"], [13, "getting-code"]], "Structure": [[12, "structure"], [13, "structure"], [15, "structure"], [23, "structure"]], "Final code (from after the lesson)": [[12, "final-code-from-after-the-lesson"], [13, "final-code-from-after-the-lesson"]], "The Task": [[12, "the-task"], [13, "the-task"]], "Tank Drive Simulation": [[13, "tank-drive-simulation"]], "FRC Programming": [[13, "frc-programming"]], "Subsystems": [[13, "subsystems"]], "Commands": [[13, "commands"]], "initialize()": [[13, "initialize"]], "execute()": [[13, "execute"]], "end(boolean interrupted)": [[13, "end-boolean-interrupted"]], "isFinished()": [[13, "isfinished"]], "Xbox Controls": [[13, "xbox-controls"]], "Motors": [[13, "motors"]], "Extra": [[13, "extra"]], "Preseason Training": [[14, "preseason-training"]], "Index by date": [[14, "index-by-date"]], "Index by topic": [[14, "index-by-topic"]], "Introductory programming": [[14, "introductory-programming"]], "Robot control": [[14, "robot-control"]], "Computer vision": [[14, "computer-vision"]], "Miscellaneous": [[14, "miscellaneous"]], "Git": [[15, "git"], [20, "git"]], "Cloning": [[15, "cloning"]], "Committing": [[15, "committing"]], "Pushing & Pulling": [[15, "pushing-pulling"]], "Switching branches": [[15, "switching-branches"]], "Merging": [[15, "merging"]], "Applications": [[16, "applications"]], "3 - Coprocessors": [[17, "coprocessors"]], "2 - C++ Programming": [[18, "c-programming"]], "Java / roboRIO Programming": [[19, "java-roborio-programming"]], "Library guides": [[19, "library-guides"]], "API references": [[19, "api-references"]], "Operating system": [[20, "operating-system"]], "GitHub CLI": [[20, "github-cli"]], "Git login": [[20, "git-login"]], "(Only for pre-season) Java": [[20, "only-for-pre-season-java"]], "FRC Game Tools and WPILib": [[20, "frc-game-tools-and-wpilib"]], "PathPlanner": [[20, "pathplanner"]], "Phoenix Tuner X": [[20, "phoenix-tuner-x"]], "REV Hardware Client": [[20, "rev-hardware-client"]], "(Optional) Apache Maven": [[20, "optional-apache-maven"]], "4 - Linux": [[21, "linux"]], "5 - Robot design": [[22, "robot-design"]], "Style guide": [[23, "style-guide"]], "Naming": [[23, "naming"]], "Java": [[23, "java"]], "C++": [[23, "c"]], "Resources": [[24, "resources"]], "Documentation and other websites": [[24, "documentation-and-other-websites"]], "Team #2022 History": [[25, "team-2022-history"]], "Titan Algorithms": [[26, "titan-algorithms"]], "Titan Dashboard": [[27, "titan-dashboard"]], "AprilTag Detection": [[28, "apriltag-detection"]], "Reading Configuration": [[28, "reading-configuration"]], "Detection": [[28, "detection"]], "Multithreading": [[28, "multithreading"]], "How to run": [[29, "how-to-run"]], "What it does": [[29, "what-it-does"]], "OS Support": [[30, "os-support"]], "Building": [[30, "building"]], "Build Options": [[30, "build-options"]], "Configuration": [[30, "configuration"]], "Other Tools": [[30, "other-tools"]], "Localization": [[31, "localization"]], "Networking": [[32, "networking"]], "Why?": [[32, "why"]], "Limitations": [[32, "limitations"]], "C++ Client": [[32, "c-client"]], "Sending Information": [[32, "sending-information"], [32, "id3"]], "Sending Information (With Reply)": [[32, "sending-information-with-reply"], [32, "id4"]], "C Client": [[32, "id1"]], "Python Client": [[32, "python-client"]], "Java Server": [[32, "java-server"]], "Receiving Information": [[32, "receiving-information"]], "Titan Processing": [[33, "titan-processing"]], "Contributing": [[33, "contributing"]], "Titan Robotics #2022 Documentation": [[34, "titan-robotics-2022-documentation"]]}, "indexentries": {}})
\ No newline at end of file