Swerve Programming

Introduction

Introductory discussion. Challenges and ways to deal with them.

Basic Drive and Teleop navigation programming

Working session 05/27/2023. Quicksilver review. Constants, starting Drive subsystem.

Working session 05/31/2023. Discussion on Quicksilver deficiency related to the swerve module definition.

Working session 06/03/2023. Replacing Swerve module constant classes with ENUM. Making initial code for the generic passthrough motor definition.

Working session 06/04/2023. In-depth discussion re: WPI methods that translate joystick inputs into the motor controller inputs based on Quicksilver code. Continue working on the Motor passthrough code. Implementing IMU Passthrough code for both Pigeon2 and NavX.

Working session 07/08/2023. Adding SRX hardware PID configuration.

Working session 07/14/2023. Encoder programming and updates.

Working session 07/15/2023. Motor inversion and encoder phase testing.

Working session 07/21/2023. Drive command. Swerve state.

Working session 07/22/2023. Generic controller implementation. Drivemanually Command.

Working session 07/24/2023. Swerve teleop testing.

Swerve – first unveiling video

Swerve – maneuverability testing 08/04/2023

Swerve – Current limiters, Field Odometry 08/05/2023

Working session 08/13/2023 – PathPlanner trajectory driving

Swerve programming – overview of trajectory tuning changes, IMU restore; encoder – principals of working and types, motor selection for swerve; working session 08/27/2023

Swerve programming – adding Xbox controller for swerve navigation 08/27/2023

Swerve programming – logging with DataLogManager 08/27/2023

Swerve programming – Subway Surfer controls; Rio logging 09/01/2023

Swerve programming – NEO working session 10/01/2023

Programming Team Videos 2021

Introduction to Java – Beginner Programmer

Java – Control statements, loops. Introduction to Java Classes. Working Session 01/16/2021

Java Objects and Classes. Special main method. Introduction to methods. Constructors. 01/18/2021

Java – Objects and Methods. Working session 01/23/2021

Java – Arrays. Iterating through the array. Codefights challenges. 01/30/2021

Java – Multidimensional arrays. Instance Initializer block. Introduction to inheritance. 02/13/2021

Java – Inheritance vs Aggregation. 03/07/2021

Java – Inheritance, Aggregation, Introduction to Polymorphism – Method overloading and Overriding 04/15/2021

Java – “this” keyword, covariant return type, Runtime Polymorphism. Abstraction intro 04/16/2021

Java – Abstract Classes and methods, Interfaces, Static variables. 05/06/2021

Singleton classes. Lambda Expressions. Methods as parameters. 06/01/2021

Lambda Expressions 07/16/2021

FRC 2021 Code and Code Repository

Team999 code structure. Files and directories in the code tree. Subsystems and Commands. 01/23/2021

Autonomous – following a trajectory. 02/16/2021

Autonomous – follow a trajectory. 02/20/2021 – part1

Autonomous – follow a trajectory 02/20/2021 – part2

Autonomous – follow a trajectory 02/23/20201

Autonomous – PID controller, Ramsete controller; Java templates

Autonomous – Ramsete controller and PID controller; Robot hardware 03/06/2021

Autonomous – PID calibration 03/09/2021

Introduction to PathWeaver 03/23/2021

Robot Characterization – 1st attempt 03/13/2021

Autonomous – trajectory driving code analysis 03/16/2021

Robot Characterization 04/10/2021

GIT – using USB stick as a repository -part-1

GIT – using USB stick as a repository – part-2

New Command Robot – introduction 05/18/2021

New Command Robot – Instruduction #2 – 06/05/2021

Robot Systems

Introduction to PID control. Working session 01/30/2021

PID Driving – introduction