Understanding motor mechanisms and Phoenix 6

I’ve been struggling to understand Phoenix 6’s units, and I think it’s because of my general lack of understanding of motors. Phoenix 5 would give us the motor’s position using TalonFX.getSelectedSensorPosition(), which would return “encoder ticks” or “raw sensor units”, which I understood as so:

  • the internal rotor has binary-like “markings” on it
  • when the rotor rotates, a light sensor can sense how many markings have been viewed
  • every new marking seen is the same as an encoder tick

I understood that from this explanation. So the way that we would measure wheel rotations dividing the total number of encoder ticks by the ticks-per-rotation ratio.

Now, Phoenix 6 uses TalonFX.getPosition() which returns the “position of the device in mechanism rotations.” I was explained that “mechanism rotations” means rotor rotations / SensorToMechanismRatio. I’m assuming a mechanism rotation is more of an abstract term, so for example, in my case, it would be the wheel making a full rotation. So is a rotor rotation the same as an encoder tick, and the SensorToMechanismRatio is the same as the number of ticks in one mechanism rotation?

Or is a rotor rotation one full motor shaft rotation, and SensorToMechanismRatio measures how many shaft rotations it takes for one mechanism rotation?

Phoenix 6 operates fundamentally in Motor shaft rotations.

Mechanism is a ratio of Motor shaft rotation / the gear ratio of said user defined mechanism to get the final output rotation.

2 Likes

So the rotor rotation is the same as a shaft rotation, and the SensorToMechanismRatio is what we define as the number of shaft rotations in one mechanism rotation (in other words, a gear ratio). Did I understand correctly?

Yes you understand correctly.

You no longer have to do manual conversion math for internal sensor “ticks”

2 Likes

Thank you!

This topic was automatically closed 365 days after the last reply. New replies are no longer allowed.