Skip to content

A 2024 Crescendo FRC robot written in Java using GradleRIO and WPILib. Focus on stability and rich diagnostics for driver operation.

Notifications You must be signed in to change notification settings

garrettsummerfi3ld/gigan

Repository files navigation

gigan

A 2024 Crescendo FRC robot written in Java using GradleRIO and WPILib. Focus on stability and rich diagnostics for driver operation.

Build Status

Action Status
CI CI
Qodana Qodana
CodeQL CodeQL Scanning
Spotless Syntax Check
Gradle Validation Validate Gradle Wrapper

How to use

Download the repository and prep for deployment.

git clone https://github.com/garrettsummerfi3ld/gigan.git

# On macOS/Linux
chmod +x ./gradlew

# To build and load dependencies
./gradlew build

Ensure you are connected to a roboRIO via Wi-Fi or USB direct connect.

Tip

It is recommended to open up Visual Studio Code with WPILib or WPILib's distribution of VS Code for easier access to diagnostic tools and console logs, as well as GradleRIO being default included.

Deploy the software to the roboRIO.

./gradlew deploy

If you are using the WPILib extension:

  • Ctrl+Shift+P (Windows/Linux) / Command(⌘)+Shift+P (macOS)
  • WPILib: Deploy Robot Code

Note

You can also access commonly used WPILib commands when clicking on the WPILib icon on an open file, this only shows up if you have WPILib VS Code opened

Competition use

Warning

You should always before a competition to create an event branch, to separate the new code written and not dirty up the main branch. You will need to install Event Deploy for WPILib from the VS Code marketplace.

To create an event branch, open up the repository in either GitHub Desktop, VS Code, or a terminal.

It is also recommended to have a naming convention of event/[name-of-event] where all changes are committed to that branch during an event.

If you were to have multiple programmers present at an event, you can also have another naming convention of event/[name-of-event]/[programmer].

VS Code

In the "Source Control" tab, go to the branches tab and click on the "+" button to create a branch.

Name the branch accordingly.

You can also switch branches with the same process.

GitHub Desktop

Click on the current branch name and click on the "New Branch" button.

Name the branch accordingly.

You can also switch branches with the same process.

Terminal

Browse to your project in the terminal, with cd commands to search around. Once in the root directory of the project, input the following commands:

# Creates and checks out a new branch under the name provided
git checkout -b event/[name-of-event-here]

Name the branch accordingly.

To switch branches back and forth input the following into the terminal:

git checkout [branch-name-here]

Features

Code features and quality gates

  • Preconfigured setup for GitHub Actions (helpful for CI/CD)
    • Build action for building the robot code (helpful for ensuring code compiles)
    • Qodana action for static analysis (helpful for finding bugs and code smells)
    • CodeQL action for static analysis and security scanning (helpful for finding bugs and security vulnerabilities)
    • Spotless enforcement action for code formatting (helpful for keeping code cleanly formatted after commits)
    • Gradle Validation action for validating the Gradle wrapper (helpful for ensuring supply chain security)
  • Preconfigured setup for Command-Based Robot projects (helpful for getting started)
  • Dependabot for dependency updates (helpful for keeping dependencies up to date)
  • Preconfigured setup for Spotless inside of Gradle (helpful for keeping code cleanly formatted during development)

Robot features

  • YAGSL is used for the swerve drivetrain
  • AdvantageKit logging and diagnostics
    • Unofficial REV-Compatible Logger (URCL) to perform additional logging
    • Power Distribution logging for power status during robot runtime
    • Writing all logs directly to a USB Drive connected to the RoboRIO
  • PhotonVision setup for performing autonomous tasks with Note detection
  • PathPlanner to run semi-autonomous or full autonomous tasks
  • NetworkAlerts support for any alerts relating to the operation of the robot
    • To install NetworkAlerts for Shuffleboard, run py driverstation/install-networkalerts.py on any computer.
  • VisualVM profiling enabled to provide information on application health with memory management and other vitals of the JVM.

Requirements

  • WPILib 2024.3.2
  • Internet connection (for Gradle to download dependencies)
  • NetworkAlerts (For Shuffleboard/FRC Web Components)
    • Automatic installation requires Python 3 to be installed

About

A 2024 Crescendo FRC robot written in Java using GradleRIO and WPILib. Focus on stability and rich diagnostics for driver operation.

Topics

Resources

Stars

Watchers

Forks

Packages

No packages published