[FTC]: How to Automate Lifts


I am on FTC 5291, TOWR, and for the challenge this year, we are using multi-stage linear bearings to lift. The lift is powered by a simple string, like common linear slides. The lift extends upward, making the height of the robot larger.

What I am wondering is: what is the best way to automate lifting the lift to a certain level? Please remember that this is for FTC, so we have limited resources and ability.

Here are the options we are considering:

  • String pot, a string that extends and contracts with the lift, outputting a signal as to how extended the lift is.
  • Encoders on the lift motor to output the turning of the motor on the lift.

We are also having a one stage, non-extending secondary lift on the end of the main lift, and it would be nice if the solution could be the same for both.

Feel free to give any more ideas, and if you have any specific parts you would recommend, could you specify them?


  • Andrew of FTC 5291

Encoders are probably integrated with your motors, which makes them a good starting point. Some key things that might throw it off:

  1. If cable coils over itself, the later wraps will be at a bigger diameter which will impact the reading.
  2. Cable stretch is a possibility under load.

There are a few ways you can compensate for both (some sort of calibration for both scenarios), but obviously you’ve got to consider both.

Couple of notes on overall lift automation:

–Have 1 limit switch, whatever else you do. Mount it so that the lift base will hit it and toggle it on when the lift is at height = zero. Code such that: If switch is pressed, lift goes up only. Also: If pressed, encoder = zero.*

–You’ll want to pull the lift down as well as up. (Gravity, misalignment, dirt, misalignment to gravity AKA “robot is tipping”–you kind of want to make sure the lift can come down, see also “low CG is a good thing”.) With a little bit of clever rigging, you could possibly put an encoder on a wide pulley on that line (wide pulley because you’ll need a few wraps to avoid slippage) so you’re less affected by cable wrapping on itself.

*I was going to suggest using limit switches at various heights that you want the lift to stop at, sole purpose being to send back “High enough for X”. That’s really easy with a single-stage, really tough with a multi-stage. Also takes a lot of sensor ports.

Simple/Short answer: use the motor’s encoder. This is by far the easiest method, although may or may not be the most accurate.
Stretching cable, cable going slack for whatever reason, varying friction, etc. etc. are all potential issues with this.

There are a number of increasingly complicated methods to do this. What my team has found to be the most effective (in general, not only for knowing lift position) is to use a rack and pinion or other method to move the first stage and then use cascade rigging from that. This makes your lift much quicker and your encoder more accurate (in general) If you need even more accurate, I’ve heard of teams trying to do this and use a giant linear potentiometer to keep track.

I’ve got quite a bit of FTC experience so feel free to shoot me a PM if you have questions


Thanks to all for the feedback!

Encoders and a limit switch are the bottom was our top idea already, but we wanted input from FRC, especially people around in 2011 or, to a lesser extend 2015.

Again, thanks for the help!