Arm Sys ID Help

We are attempting to use Sys ID to characterize our arm, but the data we get doesn’t look correct. The velocity versus time graphs has data points jumping between 0 rad/s and ~1.5 rad/s, and the response timescale is 21,546 ms. If the velocity threshold is anything other than 0, we get an error message that the acceleration filter deletes all of the data. What might we be doing wrong?

We are using 1 Falcon 500 geared at 308:1 to power the arm, and a CANCoder 1:1 with the arm shaft for position feedback.

Here a screenshot of our data and settings:

Here are the config and data files:
arm sys ID config.json (777 Bytes)
sysid_data20230308-205121.json (403.3 KB)

1 Like

Have you tried a counts per rev of 4096 for the cancoder?

Yes, but it reported only a very small number of radians traveled. Our arm can travel roughly a quarter of a full rotation, or about 1.57 radians. Using 360 for the encoder counts/rev returned the correct travel distance.

Is the conversion factor in phoenix tuner 1? We had a similar issue and tuned our arm at 4096 and 1

Do you mean the sensor coefficient? I believe it is at the default.

Yeah, I think it might be at 360/4096, but we used 1 to make sure sysid is getting the values from the encoder in revolutions

We just tried setting the sensor coefficient, velocity measurement period, and velocity measurements window on the CANCoder to 1, with matching Sys ID settings, and got the same error. We are seeing lots of zeros in the data.

We didn’t change the velocity settings, just the sensor coefficient to 1 and the pulses per rev to 4096 - is it reporting the right distance travelled?

It does report the correct distance traveled after each test. I believe the issue is the zeros in the data, but changing the velocity threshold to anything other than zero just removes all of the data.

That’s really weird, all I can think to do is up the samples per average of the encoder to around 10 if it’s still 1 to reduce possible noise? That definetely shouldn’t be 1 with a cancoder.

We changed samples per average to 8 (CANCoder must use multiples of 8 and SysID can’t go higher than 15) and it didn’t change the behavior.

I’m not sure then - this is definetely not the same issue we were having. I think you used the exact same settings we used to fix the issue.

Why not try the Talon FX onboard encoder from your Falcon 500 and set the gear ratio to what your Falcon 500 is running?

Our arm gear ratio is 308.33:1 with a 3 stage MAXPlanetary and a chain final reduction. This means there is a significant amount of backlash. We would rather the feedback sensor be on the arm shaft because of this.