= Programming Process = This page outlines the process, best practices, and resources for programming your FTC robot. == 1. Code Architecture Overview == * **Main Structure** * Use of `OpMode` classes for Autonomous and Teleoperated modes. * Separation of initialization, main loop, and cleanup logic. * Modularization: Organize code by subsystem (drivebase, intake, arm, etc.) for clarity and maintainability. * **Team Standards** * Naming conventions for variables, methods, and classes. * Use of constants for motor/servo names and configuration values[3]. == 2. Getting Started == * **Setting Up the Development Environment** * Install Android Studio and the FTC SDK. * Import the latest FTC project template. * **Basic Workflow** * Write code in the `teamcode` package. * Test on the robot using the Driver Station app[2][5]. * **Official Resources** * [[https://ftc-docs.firstinspires.org/programming_resources/index.html|FTC Programming Resources]] * [[https://ftc-docs.firstinspires.org|FTC Docs]] == 3. Documentation and Comments == * **Javadoc Style** * Use ?? comments for classes, methods, and fields. * Document parameters, return values, and usage examples[3]. * **Inline Comments** * Clarify complex logic or non-obvious code. * Avoid redundant comments if code is self-explanatory[3]. * **Generated Documentation** * Use Android Studio to generate Javadoc HTML for team reference. == 4. Autonomous and TeleOp Strategies == * **Autonomous Mode** * Write code to perform pre-planned tasks at the start of the match. * Use encoders, timers, or sensors for precise control[4][8]. * **Teleoperated Mode** * Map gamepad inputs to robot actions. * Implement advanced controls (e.g., arm positions, intake triggers)[4][8]. * **Vision and Sensors** * Integrate AprilTag, TensorFlow, or color processing for advanced automation[1]. == 5. Testing and Debugging == * **On-Robot Testing** * Test code frequently on the robot. * Use logcat and telemetry for debugging. * **Iterative Development** * Fix issues as they arise. * Maintain a log of bugs and solutions. == 6. Version Control == * **Git/GitHub** * Use version control to track changes and collaborate. * Commit frequently with descriptive messages[5]. * **Branching Strategy** * Use branches for new features or experiments. * Merge to main after testing. == 7. Resources and References == * **Tutorials and Examples** * [[https://github.com/MastersNYEngineering/Tutorial|FTC Robot Coding Tutorial]] * [[https://docs.revrobotics.com/ftc-kickoff-concepts/into-the-deep-2024-25/programming-teleop/programming-initialization|REV Robotics Programming Guide]] * **Community Support** * Reddit, Discord, and official FTC forums for help and inspiration[3][5]. --- [[robot:build|Back to Build Process]] | [[robot:testing|Next: Testing & Iteration]]