Hello all, I have been attempting to set up our robot to be able to do trajectory pathing and ran into an issue while trying to characterize the system to get the constants for the PID loops. I set up the identification tool according to the docs but run into an issue where when I deploy the project I get these Error codes for our Talons.
ERROR -200 CTR: No new response to update signal Talon FX 6 ConfigFactoryDefault
and then repeating
ERROR -3 CTR: CAN frame not received/too-stale. Talon FX 6 GetSelectedSensorPosition
I’ve tried to look through the CTRE and WPI docs but have had no luck and as a still mostly beginner programmer I have little idea what to try to fix the issue. The only thing I can think of with my limited knowledge is how the Talons are set up/initialized but again have no idea. Any help would be appriciated, here is the GitHub.
I installed the most recent build of SysID from here I am no longer getting the issue with the Talons and now am getting this error
ERROR -111 Error: Loop time of 0.005000s overrun PrintLoopOverrunMessage
That typically happens a few times at robot startup as all of the vendor libs sort themselves out (the CTRE lib in particular is highly multithreaded). If there are no other symptoms then it’s nothing to worry about.
Alright, thats good to know so thanks for that!
However the original error returned after a few redeploys of the code from VS because SysID still wasn’t running the characterization.
factory defaulted the motors and the cycled power but no luck, however the same thing happened where the Talon errors are no longer appearing but the characterization still isn’t running.
If the errors are gone but nothing is happening, the next step would be to open up Glass or Shuffleboard and check what the values on NetworkTables look like during the test run.
No problem. We really need to add a page to the docs that explains that the vendor dependencies are brittle and gives advice for handling these sorts of errors, which are common even for experienced users.
One issue with Sys id that were having is changing units. We’re using falcons and the built in encoders for our shooter. Sys Id converts the encoder units to rotations per second and uses that to calculate the PID variables. Currently we’re putting all our setpoints and measurement functions in RPS too but would like to use RPM instead. We tried just changing the setpoint and measurement too RPM but that didn’t work. Also tried dividing our P by 60 to account for the larger error value and that didn’t work either. Any ideas???
Do the dimensional analysis carefully and calculate some test values with the constants to see if they’re in the right ballpark. Consult the CTRE documentation carefully to be sure your constants are in the units they expect.