[WPILib Meeting Notes] 4-1-2021

Sorry about being a bit late :slight_smile:

Welcome Jason!

    Joining the Documentation and PathWeaver projects


    Prateek: Fixed a small bug in the quintic hermite basis matrix that only affects splines with non-zero second derivatives
    Tyler: I've been trying to generate circular arcs with cubic splines. It's not going well.


    GitHub Actions outage
        Azure DNS


    Dalton: Update on current PRs
        Merged battery article
        Merged glossary page (should be a nice place in the future)
        Merged state-space and controls
    Dalton: More extensions
        Introducing.... delta! An extension for listing changed files and providing links on RTD.
    Dalton: More structure changes
    Dalton: Black formatter broke :(


    External contributors for 2022 branch

Machine Learning

    Reviewed docs, Grant said he was going to look into it

Pi Image

    Peter: Haven't gotten around to the PiGPIO commit thats blocking a new release
        ZQ: I can work on it tomorrow


    Added gyro configuration (offsets + filter window) over NT
    Working on custom device support


    External contributor making a unified repo for docker images and makefiles.
    Investigate https://github.com/RyanHir/WPI-toolchains


    Sentry is a possible option for crash reporting in Glass applications


    Tyler: Merged dt scatter plots
    Tyler: PiPhi5 split the median filter PR up
        #84 (plot UI refactor) needs rebasing and review
        #78 (median filtering) will get rebased afterward
    Prateek: might start looking at distribution of robot program (i.e. build robot program in CI and deploy directly from sysid)
        Libssh, https://api.libssh.org/master/libssh_tutor_guided_tour.html
    Dalton: Update on Generator PR?
        Looking on more configurations and such


    Merged #387, ready for release.


    Many merged PRs
    Titlebar styling
    Jason: Splitting up 2021 vs 2022 focused changes

VS Code/Installer

    Updated 2020.3.2 installer as well with new VS Code location
        ACTION: Push the hotfix


    Prateek: Added setTrajectory() method to FieldObject2d which makes it easier to visualize trajectories in Glass
    Starlight220 might work on Mechanism2d
        Peter: Need to write an issue to document through process and direction


With respect to Tyler’s remark about circular arcs: I was not satisfied with the paths I was able to describe with PathWeaver for the IR@Home challenges, so set out to get circular arcs to work with trajectory-following. It wasn’t hard at all, but there were a few hiccups. I guess the main thing is that trajectory following is built on top of Spline classes. There isn’t any strong technical reason that it should require splines rather than more general parameterizable curves. Consequently, I made my Curve class a subclass of Spline which required that I lied about the coefficient matrix, then just provided my own parameterization function.

A couple of our other mentors then pointed out that transitions from straight paths to circular arcs involve velocity discontinuities which could be problematic. That led to a much longer investigation culminating in implementation of “railroad transition curves”, aka Euler spirals, aka Clothoid curves.

We generate the code for paths using arcs, spirals, and straight lines from specifications consisting of lists of points and circles using a Python program that writes Java code for inclusion in our robot program.


Yeah, the one problem with a naive lines + arcs implementation is the curvature discontinuity where the two meet. Euler spirals seem like a great way to address that issue and I’m glad this worked out!

I might take a look at a simple implementation with this but switching WPILib to that would involve a major rewrite of the backend. I suspect that a lot of teams are pretty satisfied with the shape of the spline-based paths that we provide, but it’s always great to hear feedback and how teams are building off the existing tools!