Arm braking options

I’m trying to design an arm for our offseason robot (10-15 lbs, 28"), and I’m looking for ways to prevent backdriving without stalling motors. Besides disk/bike brakes, what are some ways to brake the arm or otherwise hold it at an angle?

My bad idea of choice: A homemade parking pawl, with the pawl actuated by a servo or electric solenoid. A couple of notes on how I came to those conclusions:

  1. When playing defense, our arm will need to be pointed directly upwards. A sufficiently strong collision with another robot could cause a normal ratchet and pawl, configured to prevent downwards motion normally, could cause the arm to rotate backwards and exit frame perimeter. Therefore, a normal ratchet and pawl would be insufficient without a way to prevent motion in both directions (another ratchet and pawl? seems overkill).

  2. I’d like to avoid using a pneumatic piston to engage the parking pawl. While our team has the resources to use pneumatics, it’s hard to justify adding an entire pneumatic system for just one piston. A servo driving a rack and pinion (3D-printed parts could break, but I’m not too concerned about it) or an electric solenoid (stronger, but solenoids seem to go unused in FRC outside of pneumatics) would provide similar motion to a pneumatic piston.

1 Like

In this situation, you could reasonably gear the arm such that you’re stalling the motor at such a low holding voltage that you won’t burn it out. I usually aim for somewhere between 10% - 15% of stall torque on the motor’s end (or more technically, something like 1.5V or less of holding voltage).

Some quick JVN Calc work shows it’s not hard to do with a single 775pro pretty safely, though adding a second motor would halve the required reduction, and would be trivial for most situations like this. This example stalls the motor at ~1.11 Volts not accounting for inefficiencies, which according to motors.vex.com (775pro link) means you can hold your arm out for the entirety of an FRC match without burning out the motor (<2 Volts in the locked rotor graph).

3 Likes

Worm drive, as a general rule, doesn’t backdrive (unless certain easily-avoidable conditions are met).
A sufficiently large gear reduction will probably work–see Andrew’s post above. (Note: worm gears often have large ratios.)
Use a servo/solenoid–and I’d go with solenoid on this one–to drive a pin into holes in a large disc. You could also set this up to be usable in multiple preset locations.

1 Like

Off the top of my head, the most straightforward solution is to use something like a worm gear drive that can’t be backdriven.

(Actually, what prevents backdriving is a combination of large reduction and comparatively low efficiency. Worm drives, thanks to all the sliding contact, are not terribly efficient, which makes them often non-backdrivable. Other transmissions, such as cycloidal drives, may or may not be backdrivable, depending on construction.)

I’ve encountered several industrial motors and gearboxes with integrated electromechanical brakes that prevent rotation until you apply a sufficient current to the brake terminals. I’ll see if I can find some online.

As a reminder, those aren’t going to be legal in FRC, given the current motor rules. Even the offseason events might raise a couple eyebrows.
https://www.midwestmotion.com/products/brgp/12v/100-124rpm/100-140inlb/MMP%20D33-455A-12V%20GP81-035.pdf would probably be fairly nice to have if paired with http://www.midwestmotion.com/brakes/br015.html for, say, a climber. Unfortunately… not on the list.

If you really feel the need for a mechanical break solution you could use a pin driven linearly by a servo or a piston. I’m understanding correctly that it only needs to lock when in the highest position. Anything you do here though will be unsatisfactory because your motorgroup should just be beefy enough that this doesn’t happen. Worm gear is also a good solution.
How tight does this have to be?
If you’re using an encoder and a PID loop or something like that you should have no problem keeping it at about that angle.
Is your arm going backwards out of frame too?
If not you could just apply a light power against a hardstop to keep it in place.

1 Like

I super don’t recommend a worm drive (or any thing like that). Very inefficient, can be fragile (since the worm is taking a lot of shock load in worst case situations). Simply stalling the motor to keep it up isn’t that bad of an idea, assuming your stall voltage/current is low enough.

All that being said, I’d still recommend just using a disk brake or similar friction device, 2898 had a lot of success with that this year. You could even do it servo-based, like 118 in 2018.

The inefficiency is what resists backdriving, and so in this case it may actually be an advantageous feature.

The worm gear can be shielded from the shock load if there’s an additional chain or belt reduction after the worm gear.

1 Like

I’d personally recommend just gearing it such that you can stall the motor at a low enough voltage that the motors won’t burn out, since it’s easier to integrate with controls than a manual brake, and then having a cosine feedforward on the arm, that applies a voltage proportional to the cosine of the arm’s angle with the ground(because the torque on the arm from gravity is proportional to the cosine of the angle), and running a standard control loop. That being said, if you really want to use a brake, I’ve heard good things about disc brakes from multiple teams, thought I haven’t personally used one.

I’ll also add my vote for stalling at a low voltage.

Another downside to worm gears I didn’t see mentioned above is that they also can’t be backdriven when the robot is disabled. So if you need to reset the arm with the robot disabled, you have to turn the input side much further than you would have to move the output side. In 2016 we used a worm gear for our arm and planned on using a cordless drill to reset the arm. Unfortunately we didn’t plan that our bumpers would be in the way of the drill input so we had to reset it by hand, and it took about 5 minutes just to turn the arm 90°.

Another thing I haven’t seen mentioned here is that you can counterbalance arms just like elevators. Using a constant force spring pointed directly downwards on the opposite side of the pivot point, you can balance the torque from gravity on the arm so all the motor has to do is accelerate and decelerate the arm.

2 Likes

From the OP, a normal ratchet and pawl may work, depending on the exact situation. If you want the arm to never rotate over the back and leave the frame perimeter, simply add a hard stop there to prevent it. Any impacts could cause the arm to bounce further up, ratcheting a little more each time, up until it hits that hard stop - at that point it would stay there, regardless of impacts, until you released the ratchet. Make sure you understand the durability of your system, though… Shock loads on a ratchet and pawl can break things, depending on material and durability. You would also need to do some testing and calibration to ensure you could release the ratchet if the arm jammed all the way up - we saw many teams use ratchet wrenches on climbers in Steamworks, and they weren’t always able to easily release to lower the robot.

One thing to consider to avoid shock loads and make driving and braking the motor easier is using some sort of counter balance for the arm’s weight.

One other thing to think about is if your arm has set positions at each goal area then you could make a steel plate that goes on the arms axis with holes that a pin could be drove into when the arm is in alignment.

On the topic of counterbalancing, if this arm is only in the range of (0-90*), and not (0-180*), you could use gas shocks similarly to Poofs this season. As mentioned already, constant force springs on the back side of the arm, and torsion springs are also an option. We used torsion springs in 2016 to help try to counterbalance our arm. No idea if it really made a difference for the size of springs we actually got.

I will also add to the support for stalling at a low voltage. If you are really concerned about burning motors you can use a minicim as the chance of burning that up is significantly less. That being said if done right a 775pro can be used without a worry of burning it up.

I probably should have mentioned this before, but we originally planned on using this reduction with a brake to drive the arm:

775a Redline -> VersaPlanetary (9:1 -> 9:1) -> 12:60 #35 sprocket reduction

In hindsight, however, I don’t really trust the high-reduction VP gears to not brake under high stress, even if there is a chain/sprocket to mitigate any shock loads. With that in mind, I did a quick pro/con sheet of all of the options presented so far. This is partially to assist my thinking, and partially to help any other teams that find this thread via Google.


Worm Gearbox: Use a non-backdrivable worm gear setup in addition to the normal gearing.

  • Pros:
    • Doesn’t require any extra programming
    • Inherently has a high reduction, so one stage of the main gearbox can be removed
  • Cons:
    • Resists backdriving too well in some cases; pit crew may find it difficult to manually move the arm if the robot cannot be enabled
    • No good COTS options as of now: The only two options I found were the AM WormBox, which is out of stock right now, and the AM RAW Box, which is expensive ($220 as of writing). Additionally, both gearboxes are backdrivable in normal operation.

Stalling a high-reduction gearbox: Use a PID loop to hold the arm at a position using only the power of the motors themselves, no brake system required.

  • Pros:
    • Requires very little extra programming, since our team is already using PID to control the arm
    • If using a custom gearbox, we will have more control over the gearbox packaging
    • Counterbalancing (surgical tubing, constant-force springs, counterweights, gas shocks, pneumatic pistons, etc.) can minimize the necessary reduction
  • Cons:
    • The only good COTS options for this are VersaPlanetary and 57 Sport gearboxes. Both of them are planetary gearboxes with small gears, so high shock loads may break them, but an external chain/sprocket reduction should mitigate this.
    • For a custom gearbox, gears are expensive.
    • Teams with minimal manufacturing capabilities may not be able to manufacture a custom gearbox, although this isn’t an issue for our team.

Pin through disk: Use a pin (solenoid, servo w/ rack and pinion, pneumatic piston) to interfere with carefully placed holes in a sprocket or disk.

  • Pros:
    • Safer for motors (requires no stalling)
    • Allows for preset positioning of the arm, which might be good for teams not using PID
  • Cons:
    • Pin might break under high loads, although this is unlikely
    • Requires some extra programming/timing to ensure that the pin is not engaged when moving the arm

Electromagnetic brakes built into motors: Some industrial motors have electromagnetic brakes, which can resist backdriving.

  • Pros:
    • Small packaging
    • Simple to use
  • Cons:
    • Not available with FRC-legal motors

Push arm against a rear hardstop: Place a hardstop at the rear limit of travel and stall the motors against that hardstop

  • Pros:
    • Requires less effort to be put into a braking mechanism for start-of-match and defense configurations (arm pointing straight up)
  • Cons:
    • Limits the arm’s rotation to one side of the robot
    • Not a standalone solution

Disk brake: Use a bike brake to stop motion through friction.

  • Pros:
    • The “standard” option for arms in FRC
    • Generally effective
  • Cons:
    • Might be hard to actuate without a pneumatic system
    • Can be spacious compared to other braking options

Friction brake (not sure of name): Push an aluminum plate against a hub on the gearbox axle, using friction to stop motion.

  • Pros:
    • Smaller packaging
    • Can be placed in the gearbox itself, increasing its effectiveness
  • Cons:
    • Less common than traditional disk brakes
    • Might be hard to actuate without a pneumatic system

Ratchet and pawl: Use a ratchet to resist the downward force of gravity, and release the pawl when that downward motion is intentional.

  • Pros:
    • Very effective if used correctly
    • Has a COTS option if using a VersaPlanetary gearbox
  • Cons:
    • If used for arm braking, there will need to be a way for the robot to disengage the pawl by itself
    • Can break under high shock loads, although an external chain/sprocket drive should mitigate this

All that being said, I think we’ll try for a custom gearbox and a gas shock for counterbalancing. I’d normally try to avoid complex manufacturing challenges for this season, since our team isn’t as strong as it was last year, but I think we have the resources to execute this well. Additionally, it seems like the most sensical option for our team for a couple of reasons:

  1. We already have experience making custom gearboxes. Our 2018 offseason robot had an extra-powerful gearbox (4x775, originally intended to drive a climber) to drive its arm, and that robot has many similarities to this offseason’s robot design.

  2. We’re using PID anyway, so we might as well use that PID system to hold the arm at a position

I might work on my parking pawl system as well, but only as an experiment. Looking at the models of the VP ratchet, it shouldn’t be too hard to make a custom pawl that resists motion in both directions.

1 Like

The goal of this post isn’t to shy away from using gas shocks - under the right conditions they are a great addition. From my experience this past year, they were not necessary but would have given us some flexibility in arm control that we couldn’t take advantage of.

Word of warning about using gas shocks - make sure that the surface area they can possibly contact (whether normally or by twisting onto the side of the arm) is free of lightening holes. We developed our arm with gas shocks in the plans, and had them installed for some time, but took them off by Kettering.

Due to requirements for the way the gas shocks would be implemented on our bot, they could twist off of the side of the arm under high stress. The guides on the end of the gas shocks would then slide into the lightening holes on our arm, and prevent the arm from operating.

Having gas shocks would have meant less overall power consumption from the arm, no question. Based on my experience and what I’ve read from other teams, power consumption problems are best solved with current limiting on the drivetrain when other mechanisms are in motion (e.g. 254’s drivetrain current limiting / disabling compressor when their upper structure is in motion).

Disclaimer: I haven’t read through this whole thread yet.

In 2018 we put a pneumaticly actuated bike brake on the elevator which worked well, but was hard to package due to its size and the awkward mounting of the caliper. In 2019 we stole an idea from 971’s 2018 robot, and put a hex hub on a relatively fast moving axle, that we could then use a pneumatic pancake piston to drive a stationary plate into. Hard to describe nicely and hard to see in the CAD, but it looks like this:


It packaged well into the robot and has worked flawlessly all year. See 971’s CAD for the “gold standard” implimentation.

4 Likes

Did you use any sort of friction material on the plate?

I know 254 did something similar in 2015, but with a steel disk and some brake liner.

We were originally going to put some high durometer neoprene in there, but when we tried it out for the first time the bare aluminum worked fine. It’s geared down enough from the drum that you don’t need a ton of force to hold it stationary. When it’s locked in, you really can’t move the elevator by hand.

Edit: in the image I posted above, you can see a thin layer of black material to the left of the piston. That was the rubber that we ommitted from the final robot.

Using this technique for short term holds (during a match) is OK, but don’t use this for holds longer than a few minutes. 3946 burned out a CIM stalled at 10% throttle on the 2017 robot in a 2018 Mardi Gras parade. This was the CIM for the climber; during the match it was held inside the frame perimeter by running it at 10% in reverse against the ratchet.

That’s rather close to the wording I used in the post-mortem. I was just sharing my experience on the limits of this technique - good for matches, and do not use for long-term (at least for a CIM, which was the most stall tolerant FRC motor until the NEO). For practice, I would recommend monitoring the CIM temperature or checking it about every ten minutes, and certainly at battery changes.