Building higher order filters from biquad segments
FFT and/or Morlet wavelets of data to help user determine cutoff frequencies
Pole placement?
Show pole-zero map?
UI framework
The DSP parts will need native performance. Options for a GUI framework include:
Dear ImGUI (what most of our tools use, and provides seamless access to native libraries)
A web frontend with wpimath cross-compiled to WebAssembly via Emscripten
Another GUI framework that can invoke native code
Finding long-term maintainers will be an important part of keeping the tool alive. We use Dear ImGUI a lot because many of the active WPILib developers are comfortable with C++. Web technologies are more popular nowadays, but none of the currently active maintainers know those; we'll need to recruit from outside.
Describe alternatives you've considered
A filter base class was suggested in https://github.com/wpilibsuite/allwpilib/issues/5083, but that still requires manual user plumbing to dashboard elements that could be done in a dedicated filter UI instead.
There's nothing preventing that, but SysId is for a completely different use case. The UI layout requirements will almost certainly be different between the two tools.
Is your feature request related to a problem? Please describe.
It's difficult for teams to select and tune filters to meet their signal processing requirements.
Describe the solution you'd like
Features
I'd like to a see a filter design tool akin to the one in MATLAB's DSP toolbox that supports the following:
UI framework
The DSP parts will need native performance. Options for a GUI framework include:
Finding long-term maintainers will be an important part of keeping the tool alive. We use Dear ImGUI a lot because many of the active WPILib developers are comfortable with C++. Web technologies are more popular nowadays, but none of the currently active maintainers know those; we'll need to recruit from outside.
Describe alternatives you've considered
A filter base class was suggested in https://github.com/wpilibsuite/allwpilib/issues/5083, but that still requires manual user plumbing to dashboard elements that could be done in a dedicated filter UI instead.