/ohmer-zoo

Hipster FRC robot that playtests Strongback, Kotlin, Gradle, Dagger 2, and unit tests (for science).

Primary LanguageKotlin

Ohmer Zoo

Kotlin Strongback Gradle Junit 5 Mockito GradleRIO

> A *laissez-faire* ("let them do") FRC robot created to explore and evaluate several libraries and practices by playing with them.

This robot is a rewrite of Ohmer 2016, our robot for the 2016 Stronghold game.

We looked back at our code and—naturally—found parts we didn't like. Some of these problems (though not all) could have been avoided had we been stricter with our code quality. The new code takes a radical step in the other direction, for fun and learning.

A note of warning: Parts of the code are intentionally (or maybe unintentionally) overkill. This project tries to find the fine balance between power and ease-of-use, which entails constantly pushing the line in hopes of reaching some "Whoa dude, worth" moment and then writing about it. On a real robot, it is much wiser to abide by the KISS principle: Keep it simple stupid.


Libraries

FRC
  • Strongback for a more fluent and intuitive WPILib ❤️
  • GradleRIO for deploying robot code through Gradle 👌
Java
  • Gradle for build and dependency management *blog post forthcoming
  • Dagger 2 for dependency injection *turned out to be absolutely unnecessary
  • Kotlin for a better Java *biggest commitment of this list, but worth considering
  • JUnit 5 for unit testing *JUnit 4 may be safer due to ubiquity alone
  • Mockito for mocking *easy to learn, but tricky to properly use