diff --git a/dev/PreseasonTraining/2024CodeOverview/Setup.html b/dev/PreseasonTraining/2024CodeOverview/Setup.html deleted file mode 100644 index f750fb4..0000000 --- a/dev/PreseasonTraining/2024CodeOverview/Setup.html +++ /dev/null @@ -1,345 +0,0 @@ - - - - - - - - - Setting up your environment - Titan Robotics 2024 documentation - - - - - - - - - - - - - - - - - - Contents - - - - - - Menu - - - - - - - - Expand - - - - - - Light mode - - - - - - - - - - - - - - Dark mode - - - - - - - Auto light/dark, in light mode - - - - - - - - - - - - - - - Auto light/dark, in dark mode - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Skip to content - - - -
-
-
- -
- -
-
- -
- -
-
- -
-
-
- - - - - Back to top - -
-
- -
- -
-
-
-

Setting up your environment

-
- -
-
-
- - -
-
- - Made with Sphinx and @pradyunsg's - - Furo - -
-
- -
-
- -
-
- -
-
- - - - - - - - \ No newline at end of file diff --git a/dev/PreseasonTraining/2024CodeOverview/index.html b/dev/PreseasonTraining/2024CodeOverview/index.html index dde77f7..bb469ba 100644 --- a/dev/PreseasonTraining/2024CodeOverview/index.html +++ b/dev/PreseasonTraining/2024CodeOverview/index.html @@ -301,12 +301,6 @@

Lesson 8: 2024 Code overview

-
-

Contents

- -

Agenda

    diff --git a/dev/Resources/JavaProgramming/installation.html b/dev/Resources/JavaProgramming/installation.html index 05fc84e..880b3a6 100644 --- a/dev/Resources/JavaProgramming/installation.html +++ b/dev/Resources/JavaProgramming/installation.html @@ -302,9 +302,50 @@

    Installation

    If you are having trouble with installing any of the following, please feel free to reach out to veteran programming members on Discord.

    +
    +

    Operating system

    +
    + +
    +

    Make sure you’re on a 64-bit Windows version with an Intel or AMD CPU. All Windows 11 installations are 64-bit. If you’re on Windows 10, you can check this in the Control Panel:

    +
      +
    1. Click Start, type system in the search box, and, under Control Panel, click System.

    2. +
    +
    +

    Note

    +

    If System isn’t listed under Control Panel in the search results, click Control Panel to see more results.

    +
    +
      +
    1. Under System, look at the System type entry. It will say either 32-bit Operating System or 64-bit Operating System.

    2. +
    +
    + +
    +

    Make sure you’re on a 64-bit (amd64 or arm64) distribution which uses glibc (which includes most popular distros such as Debian, Ubuntu, Mint, Arch, elementary OS, Fedora, Enterprise Linux, and SuSE).

    +
    +
    +

    Git

    -

    Our choice of project-management software is Git. If you do not have it installed already, do so at its official website (Select 32-bit if your computer was made before 2003). All the default options are fine, feel free to spam “next”.

    +

    Our choice of project-management software is Git.

    +
    + +
    +

    If you do not have it installed already, do so at its official website (select the 64-bit standalone installer). All the default options are fine, feel free to spam “next”.

    +
    + +
    +

    Download git from your distribution. If you don’t know how to do that, please ask Ethan or Georgi.

    +

    On Debian, Ubuntu, Mint, and other distros that use apt or apt-get:

    +
    sudo apt install git
    +
    +
    +
    +

    GitHub CLI

    @@ -316,28 +357,100 @@

    Git login

    (Only for pre-season) Java

    +
    + +

    There are many JDKs (Java Development Kits) available online but Temurin is a great option. Choose OpenJDK 16 (LTS) and HotSpot JVM.

    +
    + +
    +

    Your distribution should have a JDK available to download. If not, you can use WPILib’s JDK by adding the following to your ~/.bashrc or other shell configuration file:

    +
    export PATH="$HOME/wpilib/2024/jdk/bin/:$PATH"
    +export JAVA_HOME="$HOME/wpilib/2024/jdk/bin/"
    +
    +
    +

    If you’re on Debian, Ubuntu, Mint, or some other apt-based distribution, you can install the system-recommended JDK using

    +
    sudo apt install default-jdk
    +
    +
    +
    +

    FRC Game Tools

    +
    + +

    The WPIlib suite is necessary to run robot code. Follow instructions in the official docs. It might say that you have a limited free trial but in reality it will never run out (similar to WinRAR). When choosing the VSCode option, select standalone install. Java will be included, but if you already have it installed it shouldn’t interfere.

    +
    + +
    +

    Please use my script to install these tools. Make sure that ~/.local/bin is on your $PATH.

    +

    To run the script, you must have a display (X11 or Wayland) and a network connection.

    +
    curl -o- -L https://raw.githubusercontent.com/ethanc8/FRCLinuxDevKit/master/install-online.sh | bash
    +
    +
    +

    If you also want to install the WPILib extension into your main VSCode or VSCodium installation, please set the environment variable FLDK_INSTALL_EXT_DESTINATION to the name of the command that launches VSCode (which is code for Microsoft binaries, code-oss if you compiled it yourself, and codium for VSCodium). For example:

    +
    curl -o- -L https://raw.githubusercontent.com/ethanc8/FRCLinuxDevKit/master/install-online.sh | FLDK_INSTALL_EXT_DESTINATION=code bash
    +
    +
    +
    +

    Phoenix Tuner X

    +
    + +

    Phoenix Tuner X is the diagnostics tool for CTRE devices (e.g. Falcon 500 motors). It is available on the Microsoft Store.

    +
    + +
    +

    This is completely optional. It’s a kind of involved process, and isn’t useful unless you need to debug the motor controllers or other CTRE peripherals.

    +

    These instructions assume that you’re on a Debian/Ubuntu system and are currently in a Wayland session.

    +

    First, install the Android rootfs and userspace libraries:

    +
    sudo apt install curl ca-certificates -y
    +curl https://repo.waydro.id | sudo bash
    +sudo apt install waydroid -y
    +sudo waydroid init
    +waydroid prop set persist.waydroid.multi_windows true
    +waydroid session stop
    +
    +
    +

    Now, download and install Phoenix Tuner X:

    +
    wget https://github.com/ethanc8/someblobs/releases/download/phoenix-tuner-x-2024.6.1.0/Tuner.X_2024.6.1.0_apkcombo.com.apk
    +waydroid app install "./Tuner X*.apk"
    +waydroid app launch com.ctre.phoenix_tuner
    +
    +
    +
    +

    REV Hardware Client

    +
    + +

    REV Hardware Client is the REV-specific diagnostics tool for REV devices (e.g. SPARK MAX). Follow installation instructions on its official page.

    +
    + +
    +

    Unfortunately, REV Hardware Client is currently not available for Linux.

    +
    +

    (Optional) Apache Maven

    Install Apache Maven only if you are an experienced FRC programming member and wish to contribute to TitanAlgorithms. Make sure Maven is in your PATH.

    -
    -

    Linux

    -

    WPIlib support on Linux is unofficial and may not work correctly (use at your own risk). Follow installation instructions on Ethan Charoenpitaks’es repository. More info regarding deployment can be found in this thread

    -
@@ -396,6 +509,7 @@

Linux
diff --git a/dev/_sources/PreseasonTraining/2024CodeOverview/Setup.md.txt b/dev/_sources/PreseasonTraining/2024CodeOverview/Setup.md.txt deleted file mode 100644 index 7d24e5f..0000000 --- a/dev/_sources/PreseasonTraining/2024CodeOverview/Setup.md.txt +++ /dev/null @@ -1,3 +0,0 @@ -# Setting up your environment - - diff --git a/dev/_sources/PreseasonTraining/2024CodeOverview/index.md.txt b/dev/_sources/PreseasonTraining/2024CodeOverview/index.md.txt index b46c353..0687702 100644 --- a/dev/_sources/PreseasonTraining/2024CodeOverview/index.md.txt +++ b/dev/_sources/PreseasonTraining/2024CodeOverview/index.md.txt @@ -1,13 +1,12 @@ # Lesson 8: 2024 Code overview -```{toctree} ---- -maxdepth: 2 -caption: Contents -titlesonly: true ---- -Setup.md -``` +% ```{toctree} +% --- +% maxdepth: 2 +% caption: Contents +% titlesonly: true +% --- +% ``` ## Agenda diff --git a/dev/_sources/Resources/JavaProgramming/installation.md.txt b/dev/_sources/Resources/JavaProgramming/installation.md.txt index a9470e5..dd11452 100644 --- a/dev/_sources/Resources/JavaProgramming/installation.md.txt +++ b/dev/_sources/Resources/JavaProgramming/installation.md.txt @@ -2,8 +2,58 @@ If you are having trouble with installing any of the following, please feel free to reach out to veteran programming members on Discord. +## Operating system + +::::{tab-set} +:sync-group: os + +:::{tab-item} Windows +:sync: win + +Make sure you're on a 64-bit Windows version with an Intel or AMD CPU. All Windows 11 installations are 64-bit. If you're on Windows 10, you can check this in the Control Panel: + +1. Click Start, type `system` in the search box, and, under Control Panel, click System. + +```{note} +If System isn’t listed under Control Panel in the search results, click Control Panel to see more results. +``` + +2. Under System, look at the System type entry. It will say either 32-bit Operating System or 64-bit Operating System. +::: + +:::{tab-item} Linux +:sync: linux + +Make sure you're on a 64-bit (amd64 or arm64) distribution which uses glibc (which includes most popular distros such as Debian, Ubuntu, Mint, Arch, elementary OS, Fedora, Enterprise Linux, and SuSE). +::: + +:::: + ## Git -Our choice of project-management software is Git. If you do not have it installed already, do so at [its official website](https://git-scm.com/download/win) (Select 32-bit if your computer was made before 2003). All the default options are fine, feel free to spam "next". +Our choice of project-management software is Git. + +::::{tab-set} +:sync-group: os + +:::{tab-item} Windows +:sync: win + +If you do not have it installed already, do so at [its official website](https://git-scm.com/download/win) (select the 64-bit standalone installer). All the default options are fine, feel free to spam "next". +::: + +:::{tab-item} Linux +:sync: linux + +Download `git` from your distribution. If you don't know how to do that, please ask Ethan or Georgi. + +On Debian, Ubuntu, Mint, and other distros that use `apt` or `apt-get`: +```bash +sudo apt install git +``` +::: + +:::: + ## GitHub CLI Create a GitHub account (username doesn't matter) or use an existing one. Send your username in the "GitHub Username" thread in `#programming` on Discord so I can add you to our organization. Afterwards, you need to login on your laptop. There are many ways but my most recommended is [GitHub CLI](https://cli.github.com/). @@ -12,19 +62,123 @@ Create a GitHub account (username doesn't matter) or use an existing one. Send y When you install both Git and GitHub CLI, open a terminal window (preferably PowerShell) and type `gh auth login`. Select `Github.com`, `HTTPS`, `Y`, `Login with a web browser`, copy the 8 letter code and press enter. Paste your code on the web page and return back. You should be logged in. ## (Only for pre-season) Java + +::::{tab-set} +:sync-group: os + +:::{tab-item} Windows +:sync: win + There are many JDKs (Java Development Kits) available online but [Temurin](https://adoptium.net/) is a great option. Choose OpenJDK 16 (LTS) and HotSpot JVM. +::: + +:::{tab-item} Linux +:sync: linux + +Your distribution should have a JDK available to download. If not, you can use WPILib's JDK by adding the following to your `~/.bashrc` or other shell configuration file: +```bash +export PATH="$HOME/wpilib/2024/jdk/bin/:$PATH" +export JAVA_HOME="$HOME/wpilib/2024/jdk/bin/" +``` + +If you're on Debian, Ubuntu, Mint, or some other `apt`-based distribution, you can install the system-recommended JDK using +```bash +sudo apt install default-jdk +``` +::: + +:::: ## FRC Game Tools + +::::{tab-set} +:sync-group: os + +:::{tab-item} Windows +:sync: win + The WPIlib suite is necessary to run robot code. Follow [instructions in the official docs](https://docs.wpilib.org/en/stable/docs/zero-to-robot/step-2/frc-game-tools.html). It might say that you have a limited free trial but in reality it will never run out (similar to WinRAR). When choosing the VSCode option, select standalone install. Java will be included, but if you already have it installed it shouldn't interfere. +::: + +:::{tab-item} Linux +:sync: linux + +Please use my script to install these tools. Make sure that `~/.local/bin` is on your `$PATH`. + +To run the script, you must have a display (X11 or Wayland) and a network connection. + +```bash +curl -o- -L https://raw.githubusercontent.com/ethanc8/FRCLinuxDevKit/master/install-online.sh | bash +``` + +If you also want to install the WPILib extension into your main VSCode or VSCodium installation, please set the environment variable FLDK_INSTALL_EXT_DESTINATION to the name of the command that launches VSCode (which is `code` for Microsoft binaries, `code-oss` if you compiled it yourself, and `codium` for VSCodium). For example: + +```bash +curl -o- -L https://raw.githubusercontent.com/ethanc8/FRCLinuxDevKit/master/install-online.sh | FLDK_INSTALL_EXT_DESTINATION=code bash +``` +::: + +:::: ## Phoenix Tuner X + +::::{tab-set} +:sync-group: os + +:::{tab-item} Windows +:sync: win + Phoenix Tuner X is the diagnostics tool for CTRE devices (e.g. Falcon 500 motors). It is [available on the Microsoft Store](https://apps.microsoft.com/detail/9nvv4pwdw27z). +::: + +:::{tab-item} Linux +:sync: linux + +This is **completely optional**. It's a kind of involved process, and isn't useful unless you need to debug the motor controllers or other CTRE peripherals. + +These instructions assume that you're on a Debian/Ubuntu system and are currently in a Wayland session. + +First, install the Android rootfs and userspace libraries: + +```bash +sudo apt install curl ca-certificates -y +curl https://repo.waydro.id | sudo bash +sudo apt install waydroid -y +sudo waydroid init +waydroid prop set persist.waydroid.multi_windows true +waydroid session stop +``` + +Now, download and install Phoenix Tuner X: + +```bash +wget https://github.com/ethanc8/someblobs/releases/download/phoenix-tuner-x-2024.6.1.0/Tuner.X_2024.6.1.0_apkcombo.com.apk +waydroid app install "./Tuner X*.apk" +waydroid app launch com.ctre.phoenix_tuner +``` +::: + +:::: ## REV Hardware Client + +::::{tab-set} +:sync-group: os + +:::{tab-item} Windows +:sync: win + REV Hardware Client is the REV-specific diagnostics tool for REV devices (e.g. SPARK MAX). Follow installation instructions on [its official page](https://docs.revrobotics.com/rev-hardware-client/gs/install). +::: + +:::{tab-item} Linux +:sync: linux + +Unfortunately, REV Hardware Client is currently not available for Linux. +::: + +:::: + ## (Optional) Apache Maven Install [Apache Maven](https://maven.apache.org/download.cgi) only if you are an experienced FRC programming member and wish to contribute to TitanAlgorithms. Make sure Maven is in your `PATH`. - -## Linux -WPIlib support on Linux is unofficial and may not work correctly (use at your own risk). Follow installation instructions on [Ethan Charoenpitaks'es repository](https://github.com/ethanc8/FRCLinuxDevKit). More info regarding deployment can be found in [this thread](https://www.chiefdelphi.com/t/roborio-deployment-from-linux/452092) \ No newline at end of file diff --git a/dev/objects.inv b/dev/objects.inv index 8d21967..02df8e2 100644 Binary files a/dev/objects.inv and b/dev/objects.inv differ diff --git a/dev/searchindex.js b/dev/searchindex.js index 0d8c668..aedde77 100644 --- a/dev/searchindex.js +++ b/dev/searchindex.js @@ -1 +1 @@ -Search.setIndex({"docnames": ["PreseasonTraining/2024CodeOverview/Setup", "PreseasonTraining/2024CodeOverview/index", "PreseasonTraining/2_OpenCV_ColorSegmentation/Tutorial", "PreseasonTraining/2_OpenCV_ColorSegmentation/index", "PreseasonTraining/3_JavaBasics/index", "PreseasonTraining/4_TankDriveSimulation/Tutorial", "PreseasonTraining/4_TankDriveSimulation/index", "PreseasonTraining/5_AutonomousSimulation/Tutorial", "PreseasonTraining/5_AutonomousSimulation/index", "PreseasonTraining/6_ArmSimulation/Tutorial", "PreseasonTraining/6_ArmSimulation/index", "PreseasonTraining/7_Mock/index", "PreseasonTraining/8_2024CodeOverview/index", "PreseasonTraining/LEDProgramming/index", "PreseasonTraining/OpenCV_ColorSegmentation/index", "PreseasonTraining/Overview/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/Setup.md", "PreseasonTraining/2024CodeOverview/index.md", "PreseasonTraining/2_OpenCV_ColorSegmentation/Tutorial.md", "PreseasonTraining/2_OpenCV_ColorSegmentation/index.md", "PreseasonTraining/3_JavaBasics/index.md", "PreseasonTraining/4_TankDriveSimulation/Tutorial.md", "PreseasonTraining/4_TankDriveSimulation/index.md", "PreseasonTraining/5_AutonomousSimulation/Tutorial.md", "PreseasonTraining/5_AutonomousSimulation/index.md", "PreseasonTraining/6_ArmSimulation/Tutorial.md", "PreseasonTraining/6_ArmSimulation/index.md", "PreseasonTraining/7_Mock/index.md", "PreseasonTraining/8_2024CodeOverview/index.md", "PreseasonTraining/LEDProgramming/index.md", "PreseasonTraining/OpenCV_ColorSegmentation/index.md", "PreseasonTraining/Overview/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": ["Setting up your environment", "Lesson 8: 2024 Code overview", "Color-based segmentation in OpenCV Python: Tutorial", "Color-based segmentation in OpenCV Python", "Lesson 2: Java Basics", "Tank Drive Simulation: Tutorial", "Lesson 3: Tank Drive Simulation", "Arm Simulation: Tutorial", "Lesson 4: Autonomous Simulation", "Arm Simulation: Tutorial", "Lesson 5: Arm Simulation", "Lesson 6: Mock Season Part 1\u2014Subsystems/Commands", "Lesson 8: 2024 Code overview", "LED Programming", "Color-based segmentation in OpenCV Python", "Programming Subteam Overview", "Preseason Training", "Git", "Applications", "3 - Coprocessors", "2 - C++ Programming", "Java / roboRIO Programming", "Installation", "4 - Linux", "<no title>", "Style guide", "Resources", "Team #2022 History", "Titan Algorithms", "<no title>", "AprilTag Detection", "Calibration", "Installation", "Localization", "Networking", "Titan Processing", "Titan Robotics #2022 Documentation"], "terms": {"set": [1, 13, 21], "up": [1, 4, 13], "your": [1, 13, 17, 22, 32, 34, 35], "environ": 1, "last": [1, 12], "year": [1, 12], "everi": [1, 4, 12, 13, 17], "command": [1, 4, 12, 16, 21, 25, 32, 36], "subsystem": [1, 12, 16, 25, 36], "vision": [1, 12, 15, 35], "qna": [1, 12], "watch": [1, 12], "old": [1, 12], "match": [1, 12, 31, 32], "strategi": [1, 12, 36], "inspir": [1, 12], "todo": [2, 5, 7, 9], "figur": 2, "out": [2, 4, 22, 34], "where": 2, "we": [2, 4, 13, 15], "put": 2, "tutori": [3, 6, 8, 10, 16, 36], "what": [4, 15], "i": [4, 13, 15, 17, 22, 25, 32, 34, 35], "A": [4, 17], "jit": 4, "compil": [4, 35], "just": [4, 13], "In": [4, 13], "time": [4, 13, 15, 17, 26, 34], "languag": [4, 13], "bytecod": 4, "Then": [4, 34], "translat": 4, "machin": 4, "code": [4, 13, 15, 16, 17, 22, 25, 32, 35, 36], "target": [4, 35], "platform": [4, 17, 32], "make": [4, 13, 15, 17, 22, 31, 32, 34], "more": [4, 6, 22, 26, 34], "cross": [4, 32], "than": 4, "c": [4, 26, 32, 36], "which": [4, 13, 17, 34], "directli": 4, "static": [4, 13], "type": [4, 22, 32, 34], "variabl": [4, 13, 25], "ha": [4, 13, 15, 17, 21, 34], "e": [4, 11, 22, 25], "g": [4, 11, 22, 25], "int": [4, 13, 34], "integ": [4, 13], "number": [4, 13], "doubl": [4, 34], "decim": [4, 13], "string": 4, "text": 4, "etc": [4, 11], "lower": 4, "case": [4, 13, 25], "primit": 4, "includ": [4, 17, 22, 25, 32, 34, 35], "upper": 4, "class": [4, 25, 34], "complex": 4, "see": [4, 13, 34], "next": [4, 17, 22], "object": [4, 34], "orient": 4, "program": [4, 11, 16, 17, 22, 26, 36], "everyth": [4, 32], "an": [4, 13, 17, 22, 35], "certain": 4, "each": [4, 13, 17, 31, 34], "can": [4, 13, 15, 17, 22, 34, 35, 36], "have": [4, 15, 17, 21, 22, 34], "function": [4, 13, 34], "There": [4, 22, 32, 36], "": [4, 13, 15, 17, 25, 32], "also": [4, 13, 31, 36], "constructor": 4, "ar": [4, 13, 17, 22, 26, 31, 32, 34, 36], "method": [4, 13, 25, 34], "run": [4, 13, 22, 32], "when": [4, 13, 22, 32], "you": [4, 13, 17, 21, 22, 34, 35, 36], "creat": [4, 13, 17, 22, 34, 35], "modifi": 4, "public": [4, 25], "privat": [4, 25], "readonli": 4, "thing": [4, 13, 17], "onli": [4, 13, 15, 17, 32, 34], "access": [4, 13, 15, 25], "insid": [4, 17, 32], "same": [4, 17, 34], "all": [4, 13, 15, 17, 22, 31, 32, 34, 36], "instanc": [4, 13], "cant": 4, "after": [4, 13, 15, 17, 26], "creation": 4, "btw": 4, "member": [4, 17, 22, 25], "attribut": 4, "python": [4, 13, 16, 31, 32, 36], "exampl": [4, 32, 34], "car": 4, "engin": 4, "new": [4, 13, 34], "float": [4, 13], "fuel": 4, "0": [4, 13, 31, 34], "unit": 4, "gallon": 4, "mileag": 4, "mile": 4, "The": [4, 13, 21, 22, 25, 31, 34, 35], "thi": [4, 13, 15, 17, 22, 25, 31, 34, 35], "drive": [4, 15, 16, 25, 36], "x": [4, 13, 15, 31, 32], "void": [4, 13], "drivecar": 4, "33": 4, "per": [4, 32], "add": [4, 6, 10, 22], "addfuel": 4, "main": [4, 17, 32, 35], "hondaciv": 4, "brand": 4, "zero": 4, "10": [4, 32, 34], "fill": 4, "30": 4, "drove": 4, "imsa": 4, "librari": [4, 13, 32, 34, 35], "other": [4, 17, 31, 36], "import": [4, 5, 7, 9, 15, 25, 34], "typic": [4, 17], "written": [4, 35], "peopl": 4, "consist": [4, 25], "standard": [4, 13, 34], "wpilib": [4, 15, 21, 22, 25, 34], "us": [4, 13, 15, 17, 22, 26, 31, 32, 34, 35], "frc": [4, 15, 21, 26, 34, 36], "It": [4, 22, 31, 35], "stuff": 4, "like": [4, 15, 32], "motor": [4, 11, 15, 22], "sensor": [4, 11], "our": [4, 13, 22, 25, 32, 36], "gyroscop": 4, "manufactur": 4, "And": 4, "own": [4, 22, 32, 35], "reusabl": 4, "titan": [4, 32, 34], "algorithm": [4, 35, 36], "walkthrough": 4, "practic": 4, "inventori": 4, "manag": [4, 15, 22], "item": 4, "name": [4, 32], "quantiti": 4, "arraylist": 4, "additem": 4, "search": 4, "queri": 4, "result": [4, 13], "size": [4, 31, 32], "If": [4, 13, 17, 22], "get": [4, 34], "contain": [4, 17, 21], "ye": 4, "n": [4, 32], "r": 4, "window": [4, 22, 32], "special": 4, "charact": 4, "line": 4, "util": [4, 11, 13, 25, 31, 34], "scanner": 4, "print": [4, 31, 32], "done": 4, "automat": [4, 17], "vscode": [4, 15, 17, 22], "inventorymanag": 4, "arg": 4, "system": [4, 32, 34], "println": [4, 34], "welcom": [4, 36], "No": 4, "space": [4, 15, 32], "find": [4, 36], "exit": 4, "leav": [4, 34], "record": 4, "user": 4, "input": [4, 17], "inputscann": 4, "while": [4, 13, 15, 31], "loop": [4, 13], "condit": [4, 13], "true": [4, 34], "boolean": 4, "isrun": 4, "userinput": 4, "nextlin": 4, "splittedcommand": 4, "split": [4, 11], "arrai": [4, 13, 34], "word": 4, "startswith": 4, "fals": [4, 13, 34], "els": [4, 13, 25, 32], "count": 4, "convert": [4, 13, 34], "newitem": 4, "1": [4, 13, 16, 32, 36], "parseint": 4, "ad": 4, "unknown": 4, "http": [5, 7, 9, 17, 22, 32], "titanrobotics2022": [5, 7, 9], "notion": [5, 7, 9], "site": [5, 7, 9], "2": [5, 11, 13, 16, 26, 32, 36], "1291dde0e33245d3aa9b26da1b6b99b4": 5, "friction": 6, "physic": 6, "talk": [6, 10], "about": [6, 10, 13, 26], "pidf": [6, 10], "usag": [6, 10, 17, 32], "3": [7, 11, 16, 26, 32, 36], "autonom": [7, 15, 16, 36], "1717871dea664a40b1e3d33cb9062274": 7, "arm": [8, 16, 25, 36], "5": [9, 16, 34, 36], "4": [9, 16, 26, 32, 36], "91d67fab859a40968919a2f86e20ffcf": 9, "torqu": 10, "graviti": 10, "provid": [11, 13, 31], "swerv": 11, "local": [11, 17, 25, 35, 36], "measur": 11, "id": [11, 13, 32, 34], "resourc": [11, 36], "link": [11, 15, 17, 32], "group": [11, 25], "intak": 11, "index": 11, "led": [11, 16, 36], "elev": 11, "shooter": 11, "give": 11, "hint": 11, "implement": 11, "detail": 11, "some": [11, 13, 21, 36], "posit": [11, 32, 34], "math": [11, 13], "lesson": [13, 16, 36], "strip": 13, "microcontrol": 13, "arduino": 13, "uno": 13, "wokwi": 13, "onlin": [13, 17, 22], "emul": 13, "substitut": [13, 15], "real": 13, "board": [13, 32], "defin": 13, "two": [13, 15, 34], "first": [13, 17, 21, 31, 34], "onc": [13, 17], "turn": 13, "second": [13, 15, 17, 34], "repeat": 13, "infinit": 13, "For": [13, 32], "purpos": 13, "enough": [13, 34], "here": [13, 15, 17, 32, 36], "necessari": [13, 22, 31, 32, 35], "100": 13, "light": [13, 15], "displai": [13, 31], "open": [13, 17, 22], "tab": [13, 17], "fastl": 13, "control": [13, 15, 17], "sever": 13, "clear": 13, "pixel": [13, 31], "empti": 13, "state": 13, "send": [13, 22], "signal": [13, 34], "do": [13, 15, 17, 21, 22], "so": [13, 22, 25, 32, 35], "through": [13, 15, 21, 35], "show": [13, 34], "earlier": 13, "call": [13, 17, 34], "bracket": 13, "oper": [13, 35], "them": [13, 17], "chsv": 13, "hue": 13, "satur": 13, "valu": [13, 31, 32, 34], "crgb": 13, "red": 13, "green": [13, 15, 17], "blue": [13, 17], "want": [13, 17], "color": [13, 16, 31, 36], "rgb": 13, "both": [13, 22, 32], "from": [13, 17, 26, 32, 34], "255": 13, "8": [13, 16, 22, 32, 36], "one": [13, 17, 22, 25, 34], "byte": 13, "blank": [13, 34], "updat": [13, 17, 26, 34], "anoth": [13, 34], "instead": [13, 17], "num_l": 13, "th": 13, "But": 13, "interest": 13, "iter": 13, "calcul": 13, "sinc": [13, 25, 34, 35], "most": [13, 15, 21, 22, 35], "divis": 13, "equat": 13, "divid": 13, "progress": 13, "multipli": 13, "rang": 13, "being": 13, "go": [13, 17], "now": 13, "To": [13, 17, 32, 35], "delai": [13, 34], "millisecond": 13, "similar": [13, 22], "sleep": 13, "without": [13, 17, 32], "fast": 13, "list": [13, 17], "notabl": 13, "featur": [13, 17], "until": 13, "forev": 13, "statement": [13, 34], "thing1": 13, "thing2": 13, "funciton": 13, "1000": 13, "wait": 13, "modulo": 13, "number0": 13, "return": [13, 22, 34], "remaind": 13, "specif": [13, 17, 22, 35], "sin": 13, "co": 13, "tan": 13, "pow": 13, "y": [13, 22, 31], "sqrt": 13, "log": [13, 22], "natur": 13, "log10": 13, "hsv": 13, "actual": 13, "support": [13, 21, 22, 34], "download": [13, 15, 17], "desktop": 13, "version": [13, 35], "project": [13, 15, 17, 22, 32, 34, 36], "connect": 13, "select": [13, 17, 22, 32], "usb": [13, 15], "port": [13, 32, 34], "under": 13, "tool": [13, 31], "click": [13, 17], "upload": [13, 17], "doe": [15, 34], "best": [15, 32], "smoothest": 15, "experi": [15, 17], "driver": 15, "reduc": 15, "amount": [15, 21], "think": 15, "wast": 15, "dure": 15, "game": [15, 34], "optim": 15, "autom": 15, "task": 15, "score": 15, "much": [15, 25], "point": 15, "15": 15, "period": 15, "good": [15, 34], "bad": 15, "robot": [15, 22, 34, 35], "perform": [15, 34], "structur": [15, 34], "file": [15, 17, 25, 31, 32, 34], "store": [15, 22], "github": [15, 17, 32], "softwar": [15, 22, 36], "bild": 15, "coprocessor": [15, 26, 34, 35, 36], "roborio": [15, 26, 34, 36], "part": [15, 16, 36], "should": [15, 22, 31, 32], "alwai": [15, 17, 26], "plug": 15, "comput": [15, 22], "ethernet": 15, "wifi": 15, "station": 15, "press": [15, 17, 22], "enter": [15, 17, 22], "disabl": 15, "emerg": 15, "stop": 15, "restart": 15, "enabl": 15, "again": 15, "work": [15, 17, 22], "phoenix": [15, 21], "tuner": 15, "monitor": 15, "how": 15, "need": [15, 17, 22], "non": 15, "programm": [15, 21], "know": 15, "rememb": [15, 17], "t": [15, 17, 22], "fly": 15, "hardwar": 15, "hard": 15, "di": 15, "custom": 15, "team": [15, 25, 26, 36], "pleas": [15, 17, 22, 25], "ask": 15, "u": 15, "design": [15, 36], "cheatsheet": [15, 17], "rev": 15, "client": 15, "git": [15, 18, 26, 35, 36], "linux": [15, 26, 32, 36], "homework": 15, "java": [15, 16, 26, 32, 36], "sign": 15, "subteam": [16, 36], "overview": [16, 36], "base": [16, 21, 36], "segment": [16, 36], "opencv": [16, 32, 36], "basic": [16, 21, 31, 36], "tank": [16, 36], "simul": [16, 36], "6": [16, 21, 36], "mock": [16, 36], "season": [16, 35, 36], "2024": [16, 34, 35, 36], "short": [17, 26], "sourc": [17, 26], "feel": [17, 22, 32], "free": [17, 22, 32], "cli": 17, "alreadi": [17, 22], "learn": [17, 26], "full": [17, 25, 32], "guid": [17, 26, 32, 36], "found": [17, 22, 32], "repositori": [17, 22], "host": 17, "repo": [17, 32], "master": [17, 32], "product": [17, 32, 35], "chang": [17, 31], "messag": [17, 35], "fetch": 17, "option": 17, "dublic": 17, "separ": 17, "back": [17, 22, 34], "togeth": 17, "allow": [17, 32, 34], "everyon": 17, "differ": 17, "independ": 17, "break": 17, "button": 17, "copi": [17, 22, 34], "past": [17, 22], "folder": [17, 25, 34], "save": [17, 31], "don": 17, "write": 17, "descript": 17, "step": 17, "requir": [17, 32, 35], "remov": 17, "readi": 17, "sync": 17, "otherwis": 17, "addit": 17, "action": 17, "check": [17, 26, 31], "view": 17, "bar": 17, "addion": 17, "checkout": 17, "ani": [17, 22, 34], "start": [17, 31], "origin": 17, "menu": 17, "notifi": 17, "befor": [17, 22, 34], "avoid": 17, "conflict": 17, "particularli": 17, "big": 17, "request": [17, 35], "try": [17, 32, 35], "instal": [21, 26, 35, 36], "offici": [21, 22, 32, 34, 35, 36], "document": [21, 25, 31, 34], "regard": [21, 22], "read": 21, "entir": 21, "wiki": 21, "ahead": 21, "major": 21, "compon": 21, "extern": 21, "navx2": 21, "kinemat": 21, "odometri": 21, "ctre": [21, 22], "pathplann": [21, 25], "edu": 21, "wpi": 21, "com": [21, 22, 32], "phoenix6": 21, "pathplannerlib": 21, "lib": 21, "revlib": 21, "revrobot": 21, "troubl": 22, "follow": [22, 25, 26, 32, 34], "reach": 22, "veteran": 22, "discord": 22, "choic": 22, "its": [22, 34], "websit": 22, "32": 22, "bit": 22, "wa": [22, 34], "made": 22, "2003": 22, "default": [22, 34], "fine": 22, "spam": 22, "account": [22, 34], "usernam": 22, "doesn": 22, "matter": 22, "exist": 22, "thread": [22, 32], "organ": 22, "afterward": 22, "laptop": 22, "mani": 22, "wai": [22, 32, 34], "my": 22, "recommend": [22, 26], "termin": 22, "prefer": 22, "powershel": 22, "gh": 22, "auth": 22, "web": 22, "browser": 22, "letter": [22, 31], "page": [22, 34, 36], "jdk": 22, "develop": 22, "kit": 22, "avail": [22, 34, 36], "temurin": 22, "great": 22, "choos": 22, "openjdk": 22, "16": 22, "lt": 22, "hotspot": 22, "jvm": 22, "suit": 22, "instruct": 22, "doc": 22, "might": [22, 26], "sai": 22, "limit": 22, "trial": 22, "realiti": 22, "never": 22, "winrar": 22, "standalon": 22, "shouldn": 22, "interfer": 22, "diagnost": 22, "devic": 22, "falcon": 22, "500": 22, "microsoft": 22, "spark": 22, "max": 22, "experienc": 22, "wish": 22, "contribut": 22, "titanalgorithm": 22, "sure": [22, 31], "path": [22, 31, 32], "unoffici": 22, "mai": [22, 31], "correctli": 22, "risk": 22, "ethan": 22, "charoenpitak": 22, "info": 22, "deploy": 22, "aim": 25, "keep": 25, "possibl": [25, 35], "especi": 25, "lot": 25, "refer": [25, 34, 35], "someon": 25, "wrote": 25, "pascalcas": 25, "top": [25, 34], "level": [25, 34], "constant": [25, 34], "macro_cas": 25, "m_camelcas": 25, "camelcas": 25, "enum": 25, "test": [25, 32, 34], "pascalcasetest": 25, "pascalcasesubsystem": 25, "abstract": 25, "pascalcasecommand": 25, "cpp": 25, "hpp": 25, "test_camelcas": 25, "cmake": [25, 32], "modul": [25, 32, 35], "outlin": 25, "projecct": 25, "subfold": 25, "relat": [25, 26, 36], "auto": 25, "routin": 25, "reus": 25, "topic": 26, "These": 26, "simpli": 26, "writ": 26, "irrelev": 26, "even": 26, "style": [26, 36], "applic": [26, 36], "pattern": 31, "paper": 31, "diment": 31, "squar": 31, "marker": 31, "script": [31, 32], "cm": 31, "type_calibr": 31, "py": [31, 32, 34], "TO": [31, 32], "process": [31, 32, 34, 36], "cfg": 31, "hold": 31, "flat": 31, "surfac": 31, "front": 31, "camera": [31, 32], "recogn": 31, "overlai": 31, "specifi": [31, 34], "config": [31, 32], "logic": 31, "determin": [31, 35], "focal": 31, "resolut": 31, "close": 31, "optic": 31, "center": 31, "distort": [31, 32], "coeffici": [31, 32], "four": 31, "accur": 31, "apriltag": [31, 32, 35, 36], "pose": [31, 34, 35], "estim": 31, "left": 31, "current": [32, 34], "aarch64": 32, "x86_64": 32, "plan": 32, "maco": 32, "packag": 32, "issu": 32, "visual": 32, "studio": 32, "solut": [32, 34], "msvc": 32, "consid": 32, "mingw": 32, "clang": 32, "abov": 32, "aruco": 32, "contrib": 32, "calibr": [32, 35, 36], "submodul": 32, "intel": 32, "realsens": 32, "sdk": 32, "googletest": 32, "framework": 32, "json": 32, "modern": 32, "vcpkg": 32, "scratch": 32, "debian": 32, "binari": 32, "execut": 32, "curl": 32, "ol": 32, "ethanc8": 32, "titanian": 32, "raw": 32, "pool": 32, "v": 32, "vcpkg_2023": 32, "12": 32, "titan2022_amd64": 32, "deb": 32, "sudo": 32, "apt": 32, "nlohmann": 32, "makefil": 32, "ninja": 32, "toolchain": 32, "altern": 32, "manual": [32, 34], "mkdir": 32, "cd": 32, "b": 32, "dcmake_toolchain_fil": 32, "buildsystem": 32, "dbuild_exampl": 32, "debug": 32, "forc": 32, "clangd": 32, "dcmake_export_compile_command": 32, "dcmake_build_typ": 32, "relwithdebinfo": 32, "gninja": 32, "j": 32, "directori": [32, 34], "dno_realsens": 32, "compat": 32, "edit": 32, "ip": [32, 34], "udp": [32, 34], "server": 32, "stream": [32, 34], "quaddecim": 32, "quadsigma": 32, "decodesharpen": 32, "keyword": 32, "width": 32, "height": 32, "fp": 32, "exposur": 32, "paramet": 32, "camset": 32, "help": 32, "gener": 32, "field": 32, "meter": 32, "rotat": [32, 34], "degre": 32, "quick": 32, "matrix": 32, "charuco": 32, "take": 32, "pictur": 32, "multipl": 32, "angl": 32, "20": [32, 34], "photo": 32, "network": [32, 35, 36], "impliment": [32, 34], "offer": 34, "tabl": 34, "commun": 34, "between": 34, "tri": 34, "mitig": 34, "reconnect": 34, "problem": 34, "socket": 34, "lowest": 34, "protocol": 34, "achiev": 34, "lost": 34, "packet": 34, "less": 34, "reliabl": 34, "data": 34, "video": 34, "futur": 34, "idea": 34, "tcp": 34, "solv": 34, "h": 34, "header": 34, "temporari": 34, "networkingcli": 34, "22": 34, "9": 34, "5800": 34, "label": 34, "vector": 34, "vector3d": 34, "vec": 34, "send_vector": 34, "vector_nam": 34, "pose_nam": 34, "tag": 34, "position2": 34, "rotation2": 34, "send_tag": 34, "tag_nam": 34, "argument": 34, "thei": 34, "due": 34, "reutil": 34, "outsid": 34, "3d": 34, "bind": 34, "replac": 34, "intend": 34, "trbnetworkingclientref": 34, "trbnetworkingclientcr": 34, "trbvector3d": 34, "trbvector3dmak": 34, "returnvec": 34, "trbnetworkingclientsendvector": 34, "trbnetworkingclientsendpos": 34, "trbnetworkingclientsendtag": 34, "trbnetwork": 34, "initi": [34, 35], "sendvector": 34, "sendtag": 34, "note": 34, "although": 34, "explicitli": 34, "numer": 34, "midwest": 34, "branch": [34, 35], "networkingserv": 34, "5801": 34, "observ": 34, "subscrib": 34, "pass": 34, "lambda": 34, "translation3d": 34, "null": 34, "respond": 34, "networkingcal": 34, "tostr": 34, "networkingpos": 34, "networkingtag": 34, "2023": 35, "reason": 35, "capabl": 35, "detect": [35, 36], "filter": 35, "extend": 35, "kalman": 35, "unlik": 35, "roll": 35, "releas": 35, "model": 35, "mean": 35, "explicit": 35, "becaus": 35, "frequent": 35, "bug": 35, "fix": 35, "modif": 35, "rebuild": 35, "often": 35, "respect": 35, "commit": 35, "fork": 35, "merg": 35, "pull": 35, "preseason": 36, "train": 36, "histori": 36}, "objects": {}, "objtypes": {}, "objnames": {}, "titleterms": {"set": 0, "up": 0, "your": 0, "environ": 0, "lesson": [1, 4, 6, 8, 10, 11, 12], "8": [1, 12], "2024": [1, 12], "code": [1, 12], "overview": [1, 12, 15], "content": [1, 3, 6, 8, 10, 16, 18, 21, 26, 35, 36], "agenda": [1, 4, 11, 12, 15], "color": [2, 3, 14], "base": [2, 3, 14], "segment": [2, 3, 14], "opencv": [2, 3, 14], "python": [2, 3, 14, 34], "tutori": [2, 5, 7, 9], "2": [4, 20], "java": [4, 21, 22, 25, 34], "basic": 4, "tank": [5, 6], "drive": [5, 6], "simul": [5, 6, 7, 8, 9, 10], "3": [6, 19], "todo": [6, 10], "arm": [7, 9, 10], "4": [8, 23], "autonom": 8, "5": 10, "6": 11, "mock": 11, "season": [11, 22], "part": 11, "1": 11, "subsystem": 11, "command": 11, "led": 13, "program": [13, 15, 20, 21], "setup": [13, 34], "more": 13, "exampl": 13, "anim": 13, "rainbow": 13, "sine": 13, "wave": 13, "deploi": 13, "subteam": 15, "preseason": 16, "train": 16, "git": [17, 22], "structur": [17, 25], "clone": 17, "commit": 17, "push": 17, "pull": 17, "switch": 17, "branch": 17, "merg": 17, "applic": 18, "coprocessor": 19, "c": [20, 25, 34], "roborio": 21, "introduct": [21, 35], "librari": 21, "guid": [21, 25], "api": 21, "refer": 21, "instal": [22, 32], "github": 22, "cli": 22, "login": 22, "onli": 22, "pre": 22, "frc": 22, "game": 22, "tool": [22, 32], "phoenix": 22, "tuner": 22, "x": 22, "rev": 22, "hardwar": 22, "client": [22, 34], "option": [22, 32], "apach": 22, "maven": 22, "linux": [22, 23], "style": 25, "name": 25, "resourc": 26, "document": [26, 36], "other": [26, 32], "websit": 26, "team": 27, "2022": [27, 36], "histori": 27, "titan": [28, 35, 36], "algorithm": 28, "apriltag": 30, "detect": 30, "read": 30, "configur": [30, 32], "multithread": 30, "calibr": 31, "how": 31, "run": 31, "what": 31, "doe": 31, "o": 32, "support": 32, "build": 32, "instruct": 32, "local": 33, "network": 34, "why": 34, "limit": 34, "send": 34, "inform": 34, "With": 34, "repli": 34, "server": 34, "receiv": 34, "process": 35, "contribut": 35, "robot": 36}, "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": {"Setting up your environment": [[0, "setting-up-your-environment"]], "Lesson 8: 2024 Code overview": [[1, "lesson-8-2024-code-overview"], [12, "lesson-8-2024-code-overview"]], "Contents": [[1, null], [3, null], [6, null], [8, null], [10, null], [16, null], [18, null], [21, null], [26, null], [35, null], [36, null]], "Agenda": [[1, "agenda"], [4, "agenda"], [11, "agenda"], [12, "agenda"], [15, "agenda"]], "Color-based segmentation in OpenCV Python: Tutorial": [[2, "color-based-segmentation-in-opencv-python-tutorial"]], "Color-based segmentation in OpenCV Python": [[3, "color-based-segmentation-in-opencv-python"], [14, "color-based-segmentation-in-opencv-python"]], "Lesson 2: Java Basics": [[4, "lesson-2-java-basics"]], "Tank Drive Simulation: Tutorial": [[5, "tank-drive-simulation-tutorial"]], "Lesson 3: Tank Drive Simulation": [[6, "lesson-3-tank-drive-simulation"]], "TODO": [[6, "todo"], [10, "todo"]], "Arm Simulation: Tutorial": [[7, "arm-simulation-tutorial"], [9, "arm-simulation-tutorial"]], "Lesson 4: Autonomous Simulation": [[8, "lesson-4-autonomous-simulation"]], "Lesson 5: Arm Simulation": [[10, "lesson-5-arm-simulation"]], "Lesson 6: Mock Season Part 1\u2014Subsystems/Commands": [[11, "lesson-6-mock-season-part-1subsystems-commands"]], "LED Programming": [[13, "led-programming"]], "Setup": [[13, "setup"], [34, "setup"], [34, "id2"], [34, "id5"]], "More examples": [[13, "more-examples"]], "Animated Rainbow": [[13, "animated-rainbow"]], "Sine Wave": [[13, "sine-wave"]], "Deploying": [[13, "deploying"]], "Programming Subteam Overview": [[15, "programming-subteam-overview"]], "Preseason Training": [[16, "preseason-training"]], "Git": [[17, "git"], [22, "git"]], "Structure": [[17, "structure"], [25, "structure"]], "Cloning": [[17, "cloning"]], "Committing": [[17, "committing"]], "Pushing & Pulling": [[17, "pushing-pulling"]], "Switching branches": [[17, "switching-branches"]], "Merging": [[17, "merging"]], "Applications": [[18, "applications"]], "3 - Coprocessors": [[19, "coprocessors"]], "2 - C++ Programming": [[20, "c-programming"]], "Java / roboRIO Programming": [[21, "java-roborio-programming"]], "Introduction": [[21, "introduction"], [35, "introduction"]], "Library guides": [[21, "library-guides"]], "API references": [[21, "api-references"]], "Installation": [[22, "installation"], [32, "installation"]], "GitHub CLI": [[22, "github-cli"]], "Git login": [[22, "git-login"]], "(Only for pre-season) Java": [[22, "only-for-pre-season-java"]], "FRC Game Tools": [[22, "frc-game-tools"]], "Phoenix Tuner X": [[22, "phoenix-tuner-x"]], "REV Hardware Client": [[22, "rev-hardware-client"]], "(Optional) Apache Maven": [[22, "optional-apache-maven"]], "Linux": [[22, "linux"]], "4 - Linux": [[23, "linux"]], "Style guide": [[25, "style-guide"]], "Naming": [[25, "naming"]], "Java": [[25, "java"]], "C++": [[25, "c"]], "Resources": [[26, "resources"]], "Documentation and other websites": [[26, "documentation-and-other-websites"]], "Team #2022 History": [[27, "team-2022-history"]], "Titan Algorithms": [[28, "titan-algorithms"]], "AprilTag Detection": [[30, "apriltag-detection"]], "Reading Configuration": [[30, "reading-configuration"]], "Detection": [[30, "detection"]], "Multithreading": [[30, "multithreading"]], "Calibration": [[31, "calibration"]], "How to run": [[31, "how-to-run"]], "What it does": [[31, "what-it-does"]], "OS Support": [[32, "os-support"]], "Building": [[32, "building"]], "Instructions": [[32, "instructions"]], "Build Options": [[32, "build-options"]], "Configuration": [[32, "configuration"]], "Other Tools": [[32, "other-tools"]], "Localization": [[33, "localization"]], "Networking": [[34, "networking"]], "Why?": [[34, "why"]], "Limitations": [[34, "limitations"]], "C++ Client": [[34, "c-client"]], "Sending Information": [[34, "sending-information"], [34, "id3"]], "Sending Information (With Reply)": [[34, "sending-information-with-reply"], [34, "id4"]], "C Client": [[34, "id1"]], "Python Client": [[34, "python-client"]], "Java Server": [[34, "java-server"]], "Receiving Information": [[34, "receiving-information"]], "Titan Processing": [[35, "titan-processing"]], "Contributing": [[35, "contributing"]], "Titan Robotics #2022 Documentation": [[36, "titan-robotics-2022-documentation"]]}, "indexentries": {}}) \ No newline at end of file +Search.setIndex({"docnames": ["PreseasonTraining/2024CodeOverview/index", "PreseasonTraining/2_OpenCV_ColorSegmentation/Tutorial", "PreseasonTraining/2_OpenCV_ColorSegmentation/index", "PreseasonTraining/3_JavaBasics/index", "PreseasonTraining/4_TankDriveSimulation/Tutorial", "PreseasonTraining/4_TankDriveSimulation/index", "PreseasonTraining/5_AutonomousSimulation/Tutorial", "PreseasonTraining/5_AutonomousSimulation/index", "PreseasonTraining/6_ArmSimulation/Tutorial", "PreseasonTraining/6_ArmSimulation/index", "PreseasonTraining/7_Mock/index", "PreseasonTraining/8_2024CodeOverview/index", "PreseasonTraining/LEDProgramming/index", "PreseasonTraining/OpenCV_ColorSegmentation/index", "PreseasonTraining/Overview/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/2_OpenCV_ColorSegmentation/Tutorial.md", "PreseasonTraining/2_OpenCV_ColorSegmentation/index.md", "PreseasonTraining/3_JavaBasics/index.md", "PreseasonTraining/4_TankDriveSimulation/Tutorial.md", "PreseasonTraining/4_TankDriveSimulation/index.md", "PreseasonTraining/5_AutonomousSimulation/Tutorial.md", "PreseasonTraining/5_AutonomousSimulation/index.md", "PreseasonTraining/6_ArmSimulation/Tutorial.md", "PreseasonTraining/6_ArmSimulation/index.md", "PreseasonTraining/7_Mock/index.md", "PreseasonTraining/8_2024CodeOverview/index.md", "PreseasonTraining/LEDProgramming/index.md", "PreseasonTraining/OpenCV_ColorSegmentation/index.md", "PreseasonTraining/Overview/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": ["Lesson 8: 2024 Code overview", "Color-based segmentation in OpenCV Python: Tutorial", "Color-based segmentation in OpenCV Python", "Lesson 2: Java Basics", "Tank Drive Simulation: Tutorial", "Lesson 3: Tank Drive Simulation", "Arm Simulation: Tutorial", "Lesson 4: Autonomous Simulation", "Arm Simulation: Tutorial", "Lesson 5: Arm Simulation", "Lesson 6: Mock Season Part 1\u2014Subsystems/Commands", "Lesson 8: 2024 Code overview", "LED Programming", "Color-based segmentation in OpenCV Python", "Programming Subteam Overview", "Preseason Training", "Git", "Applications", "3 - Coprocessors", "2 - C++ Programming", "Java / roboRIO Programming", "Installation", "4 - Linux", "<no title>", "Style guide", "Resources", "Team #2022 History", "Titan Algorithms", "<no title>", "AprilTag Detection", "Calibration", "Installation", "Localization", "Networking", "Titan Processing", "Titan Robotics #2022 Documentation"], "terms": {"last": [0, 11], "year": [0, 11], "everi": [0, 3, 11, 12, 16], "command": [0, 3, 11, 15, 20, 21, 24, 31, 35], "subsystem": [0, 11, 15, 24, 35], "vision": [0, 11, 14, 34], "qna": [0, 11], "watch": [0, 11], "old": [0, 11], "match": [0, 11, 30, 31], "strategi": [0, 11, 35], "inspir": [0, 11], "todo": [1, 4, 6, 8], "figur": 1, "out": [1, 3, 21, 33], "where": 1, "we": [1, 3, 12, 14], "put": 1, "tutori": [2, 5, 7, 9, 15, 35], "what": [3, 14], "i": [3, 12, 14, 16, 21, 24, 31, 33, 34], "A": [3, 16], "jit": 3, "compil": [3, 21, 34], "just": [3, 12], "In": [3, 12], "time": [3, 12, 14, 16, 25, 33], "languag": [3, 12], "bytecod": 3, "Then": [3, 33], "translat": 3, "machin": 3, "code": [3, 12, 14, 15, 16, 21, 24, 31, 34, 35], "target": [3, 34], "platform": [3, 16, 31], "make": [3, 12, 14, 16, 21, 30, 31, 33], "more": [3, 5, 21, 25, 33], "cross": [3, 31], "than": 3, "c": [3, 25, 31, 35], "which": [3, 12, 16, 21, 33], "directli": 3, "static": [3, 12], "type": [3, 21, 31, 33], "variabl": [3, 12, 21, 24], "ha": [3, 12, 14, 16, 20, 33], "e": [3, 10, 21, 24], "g": [3, 10, 21, 24], "int": [3, 12, 33], "integ": [3, 12], "number": [3, 12], "doubl": [3, 33], "decim": [3, 12], "string": 3, "text": 3, "etc": [3, 10], "lower": 3, "case": [3, 12, 24], "primit": 3, "includ": [3, 16, 21, 24, 31, 33, 34], "upper": 3, "class": [3, 24, 33], "complex": 3, "see": [3, 12, 21, 33], "next": [3, 16, 21], "object": [3, 33], "orient": 3, "program": [3, 10, 15, 16, 21, 25, 35], "everyth": [3, 31], "an": [3, 12, 16, 21, 34], "certain": 3, "each": [3, 12, 16, 30, 33], "can": [3, 12, 14, 16, 21, 33, 34, 35], "have": [3, 14, 16, 20, 21, 33], "function": [3, 12, 33], "There": [3, 21, 31, 35], "": [3, 12, 14, 16, 21, 24, 31], "also": [3, 12, 21, 30, 35], "constructor": 3, "ar": [3, 12, 16, 21, 25, 30, 31, 33, 35], "method": [3, 12, 24, 33], "run": [3, 12, 21, 31], "when": [3, 12, 21, 31], "you": [3, 12, 16, 20, 21, 33, 34, 35], "creat": [3, 12, 16, 21, 33, 34], "modifi": 3, "public": [3, 24], "privat": [3, 24], "readonli": 3, "thing": [3, 12, 16], "onli": [3, 12, 14, 16, 31, 33], "access": [3, 12, 14, 24], "insid": [3, 16, 31], "same": [3, 16, 33], "all": [3, 12, 14, 16, 21, 30, 31, 33, 35], "instanc": [3, 12], "cant": 3, "after": [3, 12, 14, 16, 25], "creation": 3, "btw": 3, "member": [3, 16, 21, 24], "attribut": 3, "python": [3, 12, 15, 30, 31, 35], "exampl": [3, 21, 31, 33], "car": 3, "engin": 3, "new": [3, 12, 33], "float": [3, 12], "fuel": 3, "0": [3, 12, 21, 30, 33], "unit": 3, "gallon": 3, "mileag": 3, "mile": 3, "The": [3, 12, 20, 21, 24, 30, 33, 34], "thi": [3, 12, 14, 16, 21, 24, 30, 33, 34], "drive": [3, 14, 15, 24, 35], "x": [3, 12, 14, 30, 31], "void": [3, 12], "drivecar": 3, "33": 3, "per": [3, 31], "add": [3, 5, 9, 21], "addfuel": 3, "main": [3, 16, 21, 31, 34], "hondaciv": 3, "brand": 3, "zero": 3, "10": [3, 21, 31, 33], "fill": 3, "up": [3, 12], "30": 3, "drove": 3, "imsa": 3, "librari": [3, 12, 21, 31, 33, 34], "other": [3, 16, 21, 30, 35], "import": [3, 4, 6, 8, 14, 24, 33], "typic": [3, 16], "written": [3, 34], "peopl": 3, "consist": [3, 24], "standard": [3, 12, 33], "wpilib": [3, 14, 20, 21, 24, 33], "us": [3, 12, 14, 16, 21, 25, 30, 31, 33, 34], "frc": [3, 14, 20, 25, 33, 35], "It": [3, 21, 30, 34], "stuff": 3, "like": [3, 14, 31], "motor": [3, 10, 14, 21], "sensor": [3, 10], "our": [3, 12, 21, 24, 31, 35], "gyroscop": 3, "manufactur": 3, "And": 3, "own": [3, 31, 34], "reusabl": 3, "titan": [3, 31, 33], "algorithm": [3, 34, 35], "walkthrough": 3, "practic": 3, "inventori": 3, "manag": [3, 14, 21], "item": 3, "name": [3, 21, 31], "quantiti": 3, "arraylist": 3, "additem": 3, "search": [3, 21], "queri": 3, "result": [3, 12, 21], "size": [3, 30, 31], "If": [3, 12, 16, 21], "get": [3, 21, 33], "contain": [3, 16, 20], "ye": 3, "n": [3, 31], "r": 3, "window": [3, 21, 31], "special": 3, "charact": 3, "line": 3, "util": [3, 10, 12, 24, 30, 33], "scanner": 3, "print": [3, 30, 31], "done": 3, "automat": [3, 16], "vscode": [3, 14, 16, 21], "inventorymanag": 3, "arg": 3, "system": [3, 31, 33], "println": [3, 33], "welcom": [3, 35], "No": 3, "space": [3, 14, 31], "find": [3, 35], "exit": 3, "leav": [3, 33], "record": 3, "user": 3, "input": [3, 16], "inputscann": 3, "while": [3, 12, 14, 30], "loop": [3, 12], "condit": [3, 12], "true": [3, 21, 33], "boolean": 3, "isrun": 3, "userinput": 3, "nextlin": 3, "splittedcommand": 3, "split": [3, 10], "arrai": [3, 12, 33], "word": 3, "startswith": 3, "fals": [3, 12, 33], "els": [3, 12, 24, 31], "count": 3, "convert": [3, 12, 33], "newitem": 3, "1": [3, 12, 15, 21, 31, 35], "parseint": 3, "ad": [3, 21], "unknown": 3, "http": [4, 6, 8, 16, 21, 31], "titanrobotics2022": [4, 6, 8], "notion": [4, 6, 8], "site": [4, 6, 8], "2": [4, 10, 12, 15, 25, 31, 35], "1291dde0e33245d3aa9b26da1b6b99b4": 4, "friction": 5, "physic": 5, "talk": [5, 9], "about": [5, 9, 12, 25], "pidf": [5, 9], "usag": [5, 9, 16, 31], "3": [6, 10, 15, 25, 31, 35], "autonom": [6, 14, 15, 35], "1717871dea664a40b1e3d33cb9062274": 6, "arm": [7, 15, 24, 35], "5": [8, 15, 33, 35], "4": [8, 15, 25, 31, 35], "91d67fab859a40968919a2f86e20ffcf": 8, "torqu": 9, "graviti": 9, "provid": [10, 12, 30], "swerv": 10, "local": [10, 16, 21, 24, 34, 35], "measur": 10, "id": [10, 12, 21, 31, 33], "resourc": [10, 35], "link": [10, 14, 16, 31], "group": [10, 24], "intak": 10, "index": 10, "led": [10, 15, 35], "elev": 10, "shooter": 10, "give": 10, "hint": 10, "implement": 10, "detail": 10, "some": [10, 12, 20, 21, 35], "posit": [10, 31, 33], "math": [10, 12], "lesson": [12, 15, 35], "strip": 12, "microcontrol": 12, "arduino": 12, "uno": 12, "wokwi": 12, "onlin": [12, 16, 21], "emul": 12, "substitut": [12, 14], "real": 12, "board": [12, 31], "defin": 12, "two": [12, 14, 33], "first": [12, 16, 20, 21, 30, 33], "onc": [12, 16], "turn": 12, "second": [12, 14, 16, 33], "repeat": 12, "infinit": 12, "For": [12, 21, 31], "purpos": 12, "enough": [12, 33], "here": [12, 14, 16, 31, 35], "necessari": [12, 21, 30, 31, 34], "set": [12, 20, 21], "100": 12, "light": [12, 14], "displai": [12, 21, 30], "open": [12, 16, 21], "tab": [12, 16], "fastl": 12, "control": [12, 14, 16, 21], "sever": 12, "clear": 12, "pixel": [12, 30], "empti": 12, "state": 12, "send": [12, 21], "signal": [12, 33], "do": [12, 14, 16, 20, 21], "so": [12, 21, 24, 31, 34], "through": [12, 14, 20, 34], "show": [12, 33], "earlier": 12, "call": [12, 16, 33], "bracket": 12, "oper": [12, 34], "them": [12, 16], "chsv": 12, "hue": 12, "satur": 12, "valu": [12, 30, 31, 33], "crgb": 12, "red": 12, "green": [12, 14, 16], "blue": [12, 16], "want": [12, 16, 21], "color": [12, 15, 30, 35], "rgb": 12, "both": [12, 21, 31], "from": [12, 16, 21, 25, 31, 33], "255": 12, "8": [12, 15, 21, 31, 35], "one": [12, 16, 21, 24, 33], "byte": 12, "blank": [12, 33], "updat": [12, 16, 25, 33], "anoth": [12, 33], "instead": [12, 16], "num_l": 12, "th": 12, "But": 12, "interest": 12, "iter": 12, "your": [12, 16, 21, 31, 33, 34], "calcul": 12, "sinc": [12, 24, 33, 34], "most": [12, 14, 20, 21, 34], "divis": 12, "equat": 12, "divid": 12, "progress": 12, "multipli": 12, "rang": 12, "being": 12, "go": [12, 16], "now": [12, 21], "To": [12, 16, 21, 31, 34], "delai": [12, 33], "millisecond": 12, "similar": [12, 21], "sleep": 12, "without": [12, 16, 31], "fast": 12, "list": [12, 16, 21], "notabl": 12, "featur": [12, 16], "until": 12, "forev": 12, "statement": [12, 33], "thing1": 12, "thing2": 12, "funciton": 12, "1000": 12, "wait": 12, "modulo": 12, "number0": 12, "return": [12, 21, 33], "remaind": 12, "specif": [12, 16, 21, 34], "sin": 12, "co": 12, "tan": 12, "pow": 12, "y": [12, 21, 30], "sqrt": 12, "log": [12, 21], "natur": 12, "log10": 12, "hsv": 12, "actual": 12, "support": [12, 20, 33], "download": [12, 14, 16, 21], "desktop": 12, "version": [12, 21, 34], "project": [12, 14, 16, 21, 31, 33, 35], "connect": [12, 21], "select": [12, 16, 21, 31], "usb": [12, 14], "port": [12, 31, 33], "under": [12, 21], "tool": [12, 30], "click": [12, 16, 21], "upload": [12, 16], "doe": [14, 33], "best": [14, 31], "smoothest": 14, "experi": [14, 16], "driver": 14, "reduc": 14, "amount": [14, 20], "think": 14, "wast": 14, "dure": 14, "game": [14, 33], "optim": 14, "autom": 14, "task": 14, "score": 14, "much": [14, 24], "point": 14, "15": 14, "period": 14, "good": [14, 33], "bad": 14, "robot": [14, 21, 33, 34], "perform": [14, 33], "structur": [14, 33], "file": [14, 16, 21, 24, 30, 31, 33], "store": [14, 21], "github": [14, 16, 31], "softwar": [14, 21, 35], "bild": 14, "coprocessor": [14, 25, 33, 34, 35], "roborio": [14, 25, 33, 35], "part": [14, 15, 35], "should": [14, 21, 30, 31], "alwai": [14, 16, 25], "plug": 14, "comput": 14, "ethernet": 14, "wifi": 14, "station": 14, "press": [14, 16, 21], "enter": [14, 16, 21], "disabl": 14, "emerg": 14, "stop": [14, 21], "restart": 14, "enabl": 14, "again": 14, "work": [14, 16], "phoenix": [14, 20], "tuner": 14, "monitor": 14, "how": [14, 21], "need": [14, 16, 21], "non": 14, "programm": [14, 20], "know": [14, 21], "rememb": [14, 16], "t": [14, 16, 21], "fly": 14, "hardwar": 14, "hard": 14, "di": 14, "custom": 14, "team": [14, 24, 25, 35], "pleas": [14, 16, 21, 24], "ask": [14, 21], "u": 14, "design": [14, 35], "cheatsheet": [14, 16], "rev": 14, "client": 14, "git": [14, 17, 25, 34, 35], "linux": [14, 21, 25, 31, 35], "homework": 14, "java": [14, 15, 25, 31, 35], "sign": 14, "subteam": [15, 35], "overview": [15, 35], "base": [15, 20, 21, 35], "segment": [15, 35], "opencv": [15, 31, 35], "basic": [15, 20, 30, 35], "tank": [15, 35], "simul": [15, 35], "6": [15, 20, 21, 35], "mock": [15, 35], "season": [15, 34, 35], "2024": [15, 21, 33, 34, 35], "short": [16, 25], "sourc": [16, 25], "feel": [16, 21, 31], "free": [16, 21, 31], "cli": 16, "alreadi": [16, 21], "learn": [16, 25], "full": [16, 24, 31], "guid": [16, 25, 31, 35], "found": [16, 31], "repositori": 16, "host": 16, "repo": [16, 21, 31], "master": [16, 21, 31], "product": [16, 31, 34], "chang": [16, 30], "messag": [16, 34], "fetch": 16, "option": 16, "dublic": 16, "separ": 16, "back": [16, 21, 33], "togeth": 16, "allow": [16, 31, 33], "everyon": 16, "differ": 16, "independ": 16, "break": 16, "button": 16, "copi": [16, 21, 33], "past": [16, 21], "folder": [16, 24, 33], "save": [16, 30], "don": [16, 21], "write": 16, "descript": 16, "step": 16, "requir": [16, 31, 34], "remov": 16, "readi": 16, "sync": 16, "otherwis": 16, "addit": 16, "action": 16, "check": [16, 21, 25, 30], "view": 16, "bar": 16, "addion": 16, "checkout": 16, "ani": [16, 21, 33], "start": [16, 21, 30], "origin": 16, "menu": 16, "notifi": 16, "befor": [16, 33], "avoid": 16, "conflict": 16, "particularli": 16, "big": 16, "request": [16, 34], "try": [16, 31, 34], "instal": [20, 25, 34, 35], "offici": [20, 21, 31, 33, 34, 35], "document": [20, 24, 30, 33], "regard": 20, "read": 20, "entir": 20, "wiki": 20, "ahead": 20, "major": 20, "compon": 20, "extern": 20, "navx2": 20, "kinemat": 20, "odometri": 20, "ctre": [20, 21], "pathplann": [20, 24], "edu": 20, "wpi": 20, "com": [20, 21, 31], "phoenix6": 20, "pathplannerlib": 20, "lib": 20, "revlib": 20, "revrobot": 20, "troubl": 21, "follow": [21, 24, 25, 31, 33], "reach": 21, "veteran": 21, "discord": 21, "sure": [21, 30], "re": 21, "64": 21, "bit": 21, "intel": [21, 31], "amd": 21, "cpu": 21, "11": 21, "panel": 21, "box": 21, "isn": 21, "look": 21, "entri": 21, "sai": 21, "either": 21, "32": 21, "amd64": 21, "arm64": 21, "distribut": 21, "glibc": 21, "popular": 21, "distro": 21, "debian": [21, 31], "ubuntu": 21, "mint": 21, "arch": 21, "elementari": 21, "o": 21, "fedora": 21, "enterpris": 21, "suse": 21, "choic": 21, "its": [21, 33], "websit": 21, "standalon": 21, "default": [21, 33], "fine": 21, "spam": 21, "ethan": 21, "georgi": 21, "On": 21, "apt": [21, 31], "sudo": [21, 31], "account": [21, 33], "usernam": 21, "doesn": 21, "matter": 21, "exist": 21, "thread": [21, 31], "organ": 21, "afterward": 21, "laptop": 21, "mani": 21, "wai": [21, 31, 33], "my": 21, "recommend": [21, 25], "termin": 21, "prefer": 21, "powershel": 21, "gh": 21, "auth": 21, "web": 21, "browser": 21, "letter": [21, 30], "page": [21, 33, 35], "jdk": 21, "develop": 21, "kit": 21, "avail": [21, 33, 35], "temurin": 21, "great": 21, "choos": 21, "openjdk": 21, "16": 21, "lt": 21, "hotspot": 21, "jvm": 21, "bashrc": 21, "shell": 21, "configur": 21, "export": 21, "path": [21, 30, 31], "home": 21, "bin": 21, "java_hom": 21, "suit": 21, "instruct": 21, "doc": 21, "might": [21, 25], "limit": 21, "trial": 21, "realiti": 21, "never": 21, "winrar": 21, "shouldn": 21, "interfer": 21, "script": [21, 30, 31], "must": 21, "x11": 21, "wayland": 21, "network": [21, 31, 34, 35], "curl": [21, 31], "l": 21, "raw": [21, 31], "githubusercont": 21, "ethanc8": [21, 31], "frclinuxdevkit": 21, "sh": 21, "bash": 21, "extens": 21, "vscodium": 21, "environ": 21, "fldk_install_ext_destin": 21, "launch": 21, "microsoft": 21, "binari": [21, 31], "oss": 21, "yourself": 21, "codium": 21, "diagnost": 21, "devic": 21, "falcon": 21, "500": 21, "complet": 21, "kind": 21, "involv": 21, "process": [21, 30, 31, 33, 35], "unless": 21, "debug": [21, 31], "peripher": 21, "These": [21, 25], "assum": 21, "current": [21, 31, 33], "session": 21, "android": 21, "rootf": 21, "userspac": 21, "ca": 21, "certif": 21, "waydro": 21, "waydroid": 21, "init": 21, "prop": 21, "persist": 21, "multi_window": 21, "wget": 21, "someblob": 21, "releas": [21, 34], "x_2024": 21, "0_apkcombo": 21, "apk": 21, "app": 21, "phoenix_tun": 21, "spark": 21, "max": 21, "unfortun": 21, "experienc": 21, "wish": 21, "contribut": 21, "titanalgorithm": 21, "aim": 24, "keep": 24, "possibl": [24, 34], "especi": 24, "lot": 24, "refer": [24, 33, 34], "someon": 24, "wrote": 24, "pascalcas": 24, "top": [24, 33], "level": [24, 33], "constant": [24, 33], "macro_cas": 24, "m_camelcas": 24, "camelcas": 24, "enum": 24, "test": [24, 31, 33], "pascalcasetest": 24, "pascalcasesubsystem": 24, "abstract": 24, "pascalcasecommand": 24, "cpp": 24, "hpp": 24, "test_camelcas": 24, "cmake": [24, 31], "modul": [24, 31, 34], "outlin": 24, "projecct": 24, "subfold": 24, "relat": [24, 25, 35], "auto": 24, "routin": 24, "reus": 24, "topic": 25, "simpli": 25, "writ": 25, "irrelev": 25, "even": 25, "style": [25, 35], "applic": [25, 35], "pattern": 30, "paper": 30, "diment": 30, "squar": 30, "marker": 30, "cm": 30, "type_calibr": 30, "py": [30, 31, 33], "TO": [30, 31], "cfg": 30, "hold": 30, "flat": 30, "surfac": 30, "front": 30, "camera": [30, 31], "recogn": 30, "overlai": 30, "specifi": [30, 33], "config": [30, 31], "logic": 30, "determin": [30, 34], "focal": 30, "resolut": 30, "close": 30, "optic": 30, "center": 30, "distort": [30, 31], "coeffici": [30, 31], "four": 30, "accur": 30, "apriltag": [30, 31, 34, 35], "pose": [30, 33, 34], "estim": 30, "mai": 30, "left": 30, "aarch64": 31, "x86_64": 31, "plan": 31, "maco": 31, "packag": 31, "issu": 31, "visual": 31, "studio": 31, "solut": [31, 33], "msvc": 31, "consid": 31, "mingw": 31, "clang": 31, "abov": 31, "aruco": 31, "contrib": 31, "calibr": [31, 34, 35], "submodul": 31, "realsens": 31, "sdk": 31, "googletest": 31, "framework": 31, "json": 31, "modern": 31, "vcpkg": 31, "scratch": 31, "execut": 31, "ol": 31, "titanian": 31, "pool": 31, "v": 31, "vcpkg_2023": 31, "12": 31, "titan2022_amd64": 31, "deb": 31, "nlohmann": 31, "makefil": 31, "ninja": 31, "toolchain": 31, "altern": 31, "manual": [31, 33], "mkdir": 31, "cd": 31, "b": 31, "dcmake_toolchain_fil": 31, "buildsystem": 31, "dbuild_exampl": 31, "forc": 31, "clangd": 31, "dcmake_export_compile_command": 31, "dcmake_build_typ": 31, "relwithdebinfo": 31, "gninja": 31, "j": 31, "directori": [31, 33], "dno_realsens": 31, "compat": 31, "edit": 31, "ip": [31, 33], "udp": [31, 33], "server": 31, "stream": [31, 33], "quaddecim": 31, "quadsigma": 31, "decodesharpen": 31, "keyword": 31, "width": 31, "height": 31, "fp": 31, "exposur": 31, "paramet": 31, "camset": 31, "help": 31, "gener": 31, "field": 31, "meter": 31, "rotat": [31, 33], "degre": 31, "quick": 31, "matrix": 31, "charuco": 31, "take": 31, "pictur": 31, "multipl": 31, "angl": 31, "20": [31, 33], "photo": 31, "impliment": [31, 33], "offer": 33, "tabl": 33, "commun": 33, "between": 33, "tri": 33, "mitig": 33, "reconnect": 33, "problem": 33, "socket": 33, "lowest": 33, "protocol": 33, "achiev": 33, "lost": 33, "packet": 33, "less": 33, "reliabl": 33, "data": 33, "video": 33, "futur": 33, "idea": 33, "tcp": 33, "solv": 33, "h": 33, "header": 33, "temporari": 33, "networkingcli": 33, "22": 33, "9": 33, "5800": 33, "label": 33, "vector": 33, "vector3d": 33, "vec": 33, "send_vector": 33, "vector_nam": 33, "pose_nam": 33, "tag": 33, "position2": 33, "rotation2": 33, "send_tag": 33, "tag_nam": 33, "argument": 33, "thei": 33, "due": 33, "reutil": 33, "outsid": 33, "3d": 33, "bind": 33, "replac": 33, "wa": 33, "intend": 33, "trbnetworkingclientref": 33, "trbnetworkingclientcr": 33, "trbvector3d": 33, "trbvector3dmak": 33, "returnvec": 33, "trbnetworkingclientsendvector": 33, "trbnetworkingclientsendpos": 33, "trbnetworkingclientsendtag": 33, "trbnetwork": 33, "initi": [33, 34], "sendvector": 33, "sendtag": 33, "note": 33, "although": 33, "explicitli": 33, "numer": 33, "midwest": 33, "branch": [33, 34], "networkingserv": 33, "5801": 33, "observ": 33, "subscrib": 33, "pass": 33, "lambda": 33, "translation3d": 33, "null": 33, "respond": 33, "networkingcal": 33, "tostr": 33, "networkingpos": 33, "networkingtag": 33, "2023": 34, "reason": 34, "capabl": 34, "detect": [34, 35], "filter": 34, "extend": 34, "kalman": 34, "unlik": 34, "roll": 34, "model": 34, "mean": 34, "explicit": 34, "becaus": 34, "frequent": 34, "bug": 34, "fix": 34, "modif": 34, "rebuild": 34, "often": 34, "respect": 34, "commit": 34, "fork": 34, "merg": 34, "pull": 34, "preseason": 35, "train": 35, "histori": 35}, "objects": {}, "objtypes": {}, "objnames": {}, "titleterms": {"lesson": [0, 3, 5, 7, 9, 10, 11], "8": [0, 11], "2024": [0, 11], "code": [0, 11], "overview": [0, 11, 14], "agenda": [0, 3, 10, 11, 14], "color": [1, 2, 13], "base": [1, 2, 13], "segment": [1, 2, 13], "opencv": [1, 2, 13], "python": [1, 2, 13, 33], "tutori": [1, 4, 6, 8], "content": [2, 5, 7, 9, 15, 17, 20, 25, 34, 35], "2": [3, 19], "java": [3, 20, 21, 24, 33], "basic": 3, "tank": [4, 5], "drive": [4, 5], "simul": [4, 5, 6, 7, 8, 9], "3": [5, 18], "todo": [5, 9], "arm": [6, 8, 9], "4": [7, 22], "autonom": 7, "5": 9, "6": 10, "mock": 10, "season": [10, 21], "part": 10, "1": 10, "subsystem": 10, "command": 10, "led": 12, "program": [12, 14, 19, 20], "setup": [12, 33], "more": 12, "exampl": 12, "anim": 12, "rainbow": 12, "sine": 12, "wave": 12, "deploi": 12, "subteam": 14, "preseason": 15, "train": 15, "git": [16, 21], "structur": [16, 24], "clone": 16, "commit": 16, "push": 16, "pull": 16, "switch": 16, "branch": 16, "merg": 16, "applic": 17, "coprocessor": 18, "c": [19, 24, 33], "roborio": 20, "introduct": [20, 34], "librari": 20, "guid": [20, 24], "api": 20, "refer": 20, "instal": [21, 31], "oper": 21, "system": 21, "github": 21, "cli": 21, "login": 21, "onli": 21, "pre": 21, "frc": 21, "game": 21, "tool": [21, 31], "phoenix": 21, "tuner": 21, "x": 21, "rev": 21, "hardwar": 21, "client": [21, 33], "option": [21, 31], "apach": 21, "maven": 21, "linux": 22, "style": 24, "name": 24, "resourc": 25, "document": [25, 35], "other": [25, 31], "websit": 25, "team": 26, "2022": [26, 35], "histori": 26, "titan": [27, 34, 35], "algorithm": 27, "apriltag": 29, "detect": 29, "read": 29, "configur": [29, 31], "multithread": 29, "calibr": 30, "how": 30, "run": 30, "what": 30, "doe": 30, "o": 31, "support": 31, "build": 31, "instruct": 31, "local": 32, "network": 33, "why": 33, "limit": 33, "send": 33, "inform": 33, "With": 33, "repli": 33, "server": 33, "receiv": 33, "process": 34, "contribut": 34, "robot": 35}, "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": {"Lesson 8: 2024 Code overview": [[0, "lesson-8-2024-code-overview"], [11, "lesson-8-2024-code-overview"]], "Agenda": [[0, "agenda"], [3, "agenda"], [10, "agenda"], [11, "agenda"], [14, "agenda"]], "Color-based segmentation in OpenCV Python: Tutorial": [[1, "color-based-segmentation-in-opencv-python-tutorial"]], "Color-based segmentation in OpenCV Python": [[2, "color-based-segmentation-in-opencv-python"], [13, "color-based-segmentation-in-opencv-python"]], "Contents": [[2, null], [5, null], [7, null], [9, null], [15, null], [17, null], [20, null], [25, null], [34, null], [35, null]], "Lesson 2: Java Basics": [[3, "lesson-2-java-basics"]], "Tank Drive Simulation: Tutorial": [[4, "tank-drive-simulation-tutorial"]], "Lesson 3: Tank Drive Simulation": [[5, "lesson-3-tank-drive-simulation"]], "TODO": [[5, "todo"], [9, "todo"]], "Arm Simulation: Tutorial": [[6, "arm-simulation-tutorial"], [8, "arm-simulation-tutorial"]], "Lesson 4: Autonomous Simulation": [[7, "lesson-4-autonomous-simulation"]], "Lesson 5: Arm Simulation": [[9, "lesson-5-arm-simulation"]], "Lesson 6: Mock Season Part 1\u2014Subsystems/Commands": [[10, "lesson-6-mock-season-part-1subsystems-commands"]], "LED Programming": [[12, "led-programming"]], "Setup": [[12, "setup"], [33, "setup"], [33, "id2"], [33, "id5"]], "More examples": [[12, "more-examples"]], "Animated Rainbow": [[12, "animated-rainbow"]], "Sine Wave": [[12, "sine-wave"]], "Deploying": [[12, "deploying"]], "Programming Subteam Overview": [[14, "programming-subteam-overview"]], "Preseason Training": [[15, "preseason-training"]], "Git": [[16, "git"], [21, "git"]], "Structure": [[16, "structure"], [24, "structure"]], "Cloning": [[16, "cloning"]], "Committing": [[16, "committing"]], "Pushing & Pulling": [[16, "pushing-pulling"]], "Switching branches": [[16, "switching-branches"]], "Merging": [[16, "merging"]], "Applications": [[17, "applications"]], "3 - Coprocessors": [[18, "coprocessors"]], "2 - C++ Programming": [[19, "c-programming"]], "Java / roboRIO Programming": [[20, "java-roborio-programming"]], "Introduction": [[20, "introduction"], [34, "introduction"]], "Library guides": [[20, "library-guides"]], "API references": [[20, "api-references"]], "Installation": [[21, "installation"], [31, "installation"]], "Operating system": [[21, "operating-system"]], "GitHub CLI": [[21, "github-cli"]], "Git login": [[21, "git-login"]], "(Only for pre-season) Java": [[21, "only-for-pre-season-java"]], "FRC Game Tools": [[21, "frc-game-tools"]], "Phoenix Tuner X": [[21, "phoenix-tuner-x"]], "REV Hardware Client": [[21, "rev-hardware-client"]], "(Optional) Apache Maven": [[21, "optional-apache-maven"]], "4 - Linux": [[22, "linux"]], "Style guide": [[24, "style-guide"]], "Naming": [[24, "naming"]], "Java": [[24, "java"]], "C++": [[24, "c"]], "Resources": [[25, "resources"]], "Documentation and other websites": [[25, "documentation-and-other-websites"]], "Team #2022 History": [[26, "team-2022-history"]], "Titan Algorithms": [[27, "titan-algorithms"]], "AprilTag Detection": [[29, "apriltag-detection"]], "Reading Configuration": [[29, "reading-configuration"]], "Detection": [[29, "detection"]], "Multithreading": [[29, "multithreading"]], "Calibration": [[30, "calibration"]], "How to run": [[30, "how-to-run"]], "What it does": [[30, "what-it-does"]], "OS Support": [[31, "os-support"]], "Building": [[31, "building"]], "Instructions": [[31, "instructions"]], "Build Options": [[31, "build-options"]], "Configuration": [[31, "configuration"]], "Other Tools": [[31, "other-tools"]], "Localization": [[32, "localization"]], "Networking": [[33, "networking"]], "Why?": [[33, "why"]], "Limitations": [[33, "limitations"]], "C++ Client": [[33, "c-client"]], "Sending Information": [[33, "sending-information"], [33, "id3"]], "Sending Information (With Reply)": [[33, "sending-information-with-reply"], [33, "id4"]], "C Client": [[33, "id1"]], "Python Client": [[33, "python-client"]], "Java Server": [[33, "java-server"]], "Receiving Information": [[33, "receiving-information"]], "Titan Processing": [[34, "titan-processing"]], "Contributing": [[34, "contributing"]], "Titan Robotics #2022 Documentation": [[35, "titan-robotics-2022-documentation"]]}, "indexentries": {}}) \ No newline at end of file