Log in

View Full Version : Trim for motors


nate15810
15-01-2009, 18:30
does anybody know any codes for trim for some ofthe motors?
we have an arm and 2 DC motors do not have enough torque to keep it up.

it needs to keep some power on the motors on all times.

billbo911
15-01-2009, 18:44
does anybody know any codes for trim for some ofthe motors?
we have an arm and 2 DC motors do not have enough torque to keep it up.

it needs to keep some power on the motors on all times.

Ahh, sounds like you need to counterbalance the arm.

There are several ways to do this. Add weight to the light end, like maybe using the motor it's self.
Add spring tension to the rear. Surgical tubing seems to be very popular.
Add a gas spring to the front side. The options are as numerous as your creativity.

Now here is something we might have tried this year if we had a need for it.

The pressure regulators are "relieving" regulators. That means that the low pressure side will be bled out if the pressure in that side exceeds the regulated setting.
So, use a piston to add a constant force lifting the arm. Set the regulator to the amount of force needed to balance the arm. The motor will then only be lifting the weight of the object being lifted or lowered.

Chipawa
15-01-2009, 21:29
Did you consider trying to use the window motors? These will hold their position when not powered.

Mike AA
15-01-2009, 22:45
I dont remember exactly how to program it but you could use a potentiometer to keep the location the same and the controller would constantly readjust the motors until they match what you want the location to be.

-Mike AA

Nate Smith
16-01-2009, 08:34
A few years back(when I was working with 66), we used the van door motors(not sure if they are included this year or not, haven't really studied the KOP list for this year), along with the braking feature on the Victors, to successfully hang all 130ish pounds of our robot(the "breakaway claw" that we had that year, for those who remember it). Basically, we had both van door motors on opposite ends of a common winch pully(direct driving the pully), and relied on the Victor's braking option to keep us from sinking to get the "hanging" points at the end of the match...if the Jaguars have a similar feature(I think I remember reading they do, but with how my mind works, who knows if I'm right or not...), that might surve your purposes well...

Bongle
16-01-2009, 08:38
A pure software solution would be to use a PID loop and a potentiometer.

The WindRiver code includes some very robust PID classes (see class PIDController in PIDController.h/cpp). I imagine the labview setup includes them too, but we're not a labview team so I don't know for sure. You just need to put a potentiometer on the arm joint, then use a PID loop to hit your desired arm positions. The nature of a PID loop will ensure that appropriate amounts of power are used to maintain your arm's position. Properly tuned, it will be faster, more accurate, more reliable, and have less oscillations than a human controlling.

RyanN
16-01-2009, 09:40
Not related to code, but do NOT do this to a FP motor or the small RS545 motors (or whatever they're named). They do not take stall current very well at all, no matter how much power is being fed to them. In 2007, we managed to burn out 2 motors on our arm.

Daniel_LaFleur
16-01-2009, 10:21
The pressure regulators are "relieving" regulators. That means that the low pressure side will be bled out if the pressure in that side exceeds the regulated setting.
So, use a piston to add a constant force lifting the arm. Set the regulator to the amount of force needed to balance the arm. The motor will then only be lifting the weight of the object being lifted or lowered.


This will work well, but remember that the orifice of the relieving regulator is very small. Probably on the order of .010" effective orifice size, maybe smaller. This means that while it will bleed out excess pressure, it will do so reletively (sp?) slowly.

qwv123
16-01-2009, 12:20
A pure software solution would be to use a PID loop and a potentiometer.

The WindRiver code includes some very robust PID classes (see class PIDController in PIDController.h/cpp). I imagine the labview setup includes them too, but we're not a labview team so I don't know for sure. You just need to put a potentiometer on the arm joint, then use a PID loop to hit your desired arm positions. The nature of a PID loop will ensure that appropriate amounts of power are used to maintain your arm's position. Properly tuned, it will be faster, more accurate, more reliable, and have less oscillations than a human controlling.

Yes, PID works very well for this, unless you are lifting so much weight that the motors struggle to maintain their positions. If you are using LabVIEW, it does have several PID VIs, as well as some sort of autotuning PID wizard. My team has not used it, but it seems quite simple to implement.

billbo911
16-01-2009, 12:47
This will work well, but remember that the orifice of the relieving regulator is very small. Probably on the order of .010" effective orifice size, maybe smaller. This means that while it will bleed out excess pressure, it will do so reletively (sp?) slowly.

Wow, I didn't realize it was that small! :rolleyes: You're absolutely correct, that might limit this systems usability. And, I'm certain we are not allowed to modify the regulators. I'll have to verify this against the rules.

Yep, can't be modified by my reading of rule <R71>

<R71>
In addition to the items included in the Kit Of Parts, pneumatic system items specifically permitted on 2009 FRC ROBOTS include the following items. All included items must be “off the shelf” pneumatic devices rated by their manufacturers for pressure of at least 125psi, and used in their original, unaltered condition (except as required for assembly with other components).