mechnical arm question

we use 2 cim motor, a toughbox and sprockets to move our arm (single joint). its moving fast but if we let go of the joystick it falls down (it doesnt hold itself up).

what can we do (mechanicly\electronically) to solve this?

Counterweight past the pivot or surgical tubing/bungee cords as an assist.

(or any other method . . gas shocks, springs, whatnot)

or gas springs…

I saw the title of this thread, and before I clicked on it I thought to myself: “I bet the answer to the question is – add surgical tubing.”


Add surgical tubing, neutrally balance the arm.


How did you program it? Do you have feedback control running?

My worry: my team does not have a counterbalance or anything, just a closed loop. Now we never tested out the physical arm so… My worry is that the motor or speed controllers are going to burn out.


Well, if you’re worried about it, I’m sure plenty of people around here would be happy to help you figure out if you need passive assistance (to borrow a phrase from JVN) or not. But we’d need information like the motors powering it, the gear ratio, the approximate center of gravity and weight, etc. before we could help with that.

I’ll have to get back to you on that. All I know so far is that it is ~62 inches long, using a window motor and the gear ratio is pretty big. Yea, no so informative. I been programming the whole time so I have no idea:p Now I don’t trust WPI’s PID loop (sorry guys) so I’ll be writing my own from scratch

we are using a counterwieght.
we dont have feedback control running, how would that work ? currently we control it buy pushing\pulling the joystick making the cim (through a jaguar) turn the arm up or down, but when its up and we let go it falls down again.

in what manner will surgical tubing help? picture anyone?

Neutral balancing with some kind of elastic potential energy device will help (assuming the geometry is right). Futhermore, setting your speed controller to ‘brake’ instead of ‘coast’ will help further.

I’m not sure about the other languages, but with LabView the PID Control functions are developed by National Instruments, not WPI.

The C++ code uses WPI’s libraries. From what I’ve seen it’s good enough, but for more accuracy, you should create your own PID loop.

I’d like to contribute here with a few pictures and details to give an example of what I feel is a very well executed arm. (I really don’t mean to be bragging, I just know it works really well.)

Let me start with:
KOP FP motor and transmission and an additional 4.125 chain reduction for a total reduction of ~495:1. With the efficiency of the stages added in we have a useful power reduction of 495*.59 = 292.5:1. (BTW, the floating chain tensioner has been replaced with a fixed one, as seen in the second picture.)

The surgical tubing was added to assist the motor. It balances the arm, when the arm is retracted, at about 120 deg. When the arm is extended, it balances at about 60 deg.

This arm can easily swing 270 degrees in 4 seconds. The thing to understand is this speed is with use limiting the drive to the FP motor to only +/-35%. We are using a PID control for both positioning and to holding the arm. Honestly, even if we remove power, the arm holds it’s position.

The best part is, this motor barely, if ever, rises above room temperature.

Between surgical tubing and a cunningly placed and expertly designed gusset, our FP-run arm stays in place very well AND stays nice and cool, too. In spite of running screw drives near constantly, the pull on the battery isn’t that bad at all.

You could try to use a window lift motor. Its considerably slower but it has a lot of torque. You can gear it up to go faster too. We used one this year and it allows us to stop our lift at any point and keep it there until we command it to move

the motor needs a holding current that is applied in software.

Some motors can handle that okay for a while, but things like the Fisher Price or Banebots ones this year will quickly overheat and likely be destroyed if any appreciable current is applied while the motor is not turning. They rely on an internal fan to keep the windings cool.

Mechanically: You could use a worm gear to power the arm.
Electronically/ Programming: Use a PID loop to make the arm keep it’s position as long as the joysticks aren’t moving.