Today, I was working on getting my climber to work for the 2022 FRC season. Because the requirement to earn points in the competition is to hold the bot above the ground for 5 seconds once the bot gets communications cut, we were playing with the brake mode on our Victor SPX. After we disabled the bot from teleop mode (as it would be in competition), it slowly lowered our bot to the ground. We realized that this brake mode was not holding our bot, so we used our java code and made an override method in robot.java for disabledPeriodic to hold the last known power setting of the climber. By looking at shuffleboard, we knew that the variable was holding correctly, but the motor was not being set to the power we wanted in order to hold the bot above the ground after communications were cut. If anyone could give us some pointers on how to get our bot to hold above the ground for 5 seconds after being disabled as it would be in competition, it would be a great help. Thank you so much for your help! Have a great day! I have attached my the link to my code down below.
This is not possible to do in code. The disable at the end of the match disables all motors. If brake mode is insufficient to hold your robot, you’re going to need to look at mechanical alternatives. The below thread has some possibilities:
Yup. Mechanical solutions are needed.
Depending on how your climber is driven and geared, running the motors in brake mode can be the easiest and best solution. Your bot slowly lowers, yes, but if done correctly, you can still easily be above the ground at the 5 second mark.
The idea behind brake mode is that the leads of the motors are shorted, and as the robot lowers, it runs the motor in reverse as a generator. You can calculate the rate of falling from the basic power equation:
mgv = EI = E^2/R
where m = mass, g = gravitational field, v = falling speed, E = emf of motor, I = generated current and R = motor resistance.
The emf generated by the motor is proportional to the rotor speed and can be estimated to a very close approximation by realizing that 12 V is generated at the 12 V free speed. The motor resistance can be found by dividing 12 V by the 12 V stall current.
Doing all the math gives the falling speed (I use all MKS units):
v = (mgr^2R)/(G^2k^2n)
where r = radius of drive (winch drum, etc.), G = gear ratio, k = 12 V/motor free speed, n = number of motors
We drove our climber with 2 Falcons on a 40:1 reduction with a 3" diameter drum:
R = 0.044 ohms
k = 0.018 volt seconds/radian
calculated falling speed = 3.4 cm/s
So as long as we lift more than, say, 20 cm off the carpet (7 or 8 inches), we are good. Note that the above assumes no friction, so the calculated value is very conservative. Falling speeds in reality can be slower than the calculated value by quite a bit.
So we just try to make sure that we gear and climb so that brake mode works. We find that easier than a mechanical solution.
This is also something where poor efficiency is in your favor! That’s the key to worm gear’s self locking behavior.
You can increase the friction in your drive train somewhat by using more low ratio stages in your gearbox. Increasing your gear ratio as high as you can tolerate (slowing climbing speed) will also help.
I’ve got a thread with actual NEO brake mode measurements, if you want to see data. Brake mode is identical to a motor that is hard shorted between all three phases. FYI, merely shorting two wires together is NOT good enough to replicate “brake” state
I’m really in the mechanical solution camp… I would love love love to see a nicely packaged FRC type worm gear with enough ratio to actually self lock! FYI, that’s up around 20:1 if someone wants to get on it! On the bad side, there’s a significant efficiency hit to get this characteristic.
This topic was automatically closed 365 days after the last reply. New replies are no longer allowed.