Skip to content
This repository has been archived by the owner on Aug 15, 2021. It is now read-only.
/ JARGON Public archive

Robotics library to create advanced control systems in FTC.

License

Notifications You must be signed in to change notification settings

Future14473/JARGON

Repository files navigation

JARGON

JARGON stands For JARGON: A Robot Guidance OperatioN, a robotics library for creating control systems, primarily targeted towards FTC.

THIS PROJECT IS CURRENTLY DISCONTINUED

The main developer of this project is leaving, the project is not complete to be easily usable. Also, there are already multiple other open-source similar libraries and repositories easily accessible with more people involved, and are better tested by users. Acknowledging the limitations of having one overly ambitious developer, this library simply cannot at the current state keep up to be competitive. However, for the curious, there are a few strategies and implementations that may still be worth looking at, and can provide some inspiration; this is released under an MIT licence, so you are free to copy whatever you wish.

Instead, here are some other libraries you can check out:

  • FTCLib: a general purpose FTC library containing lots of helpful utilizes, control system parts, a path and trajectory system, etc.
  • Roadrunner: A library for more advanced paths and trajectories.
  • RevExtensions2: Provides additional features interacting with your REV hub that may be useful for making better control systems.
  • FutureResource: Some introductions/tutorials on various beyond-basics concepts in robotics. (This is where is focused instead).

To play around,

dependencies {
    // Core: Robot modeling, motion profiles, geometry and math
    implementation 'org.futurerobotics.jargon:jargon-core:0.2.0'
    // path system: Paths, curves, trajectories, constraints
    implementation 'org.futurerobotics.jargon:jargon-pathing:0.2.0'
    // experimental basic state-space control system utilities
    implementation 'org.futurerobotics.jargon:jargon-state-space:0.2.0'
}

Existing features include:

  • Path planning/profiling
    • 2d geometry framework
    • Flexible path and trajectory generation system
  • Control systems framework
    • Customizable and extendable motion profile generation system
    • Utilities for math, linear algebra, geometry, physics
    • Basic controller elements like PID, feed-forward, etc.
  • Model based control systems
  • (Experimental) state-space control system

Other info

Principles of design:

  • Gentle learning curve -- provide both basic and advanced versions of components.
  • Keep everything well documented.
  • Extensible and customizable
  • Adherence to good programming principles
  • Abstraction over performance without neglecting performance

JARGON is inspired by: