Using IMEs on the ClawBot to eliminate "sagging" of the arm

I have built a ClawBot like this one for my class’s Nothing But Net challenge. It’s going to get an overhaul, but I have a question that I’d like to float up. (the overhaul’s irrelevant to this question.)

Let’s take the arm in this picture:
http://www.vexrobotics.com/media/catalog/product/cache/11/image/296x/5e06319eda06f020e43594a9c230972d/c/l/clawbot-3ql.jpg

Ideally, the arm should be moving up and down flawlessly every time, right? But in reality, with my ClawBot, the arm continues to move downward for a bit after I’ve moved it in the downward direction, after the robot is no longer commanded to move its arm, as if gravity were pulling it down. It does the upward direction fine.

Here’s where my question comes in: Would installing an IME onto the arm motor fix the problem? My theory is that the error-based correcting algorithm of the IME should catch this drift and immediately apply counter-torque to keep the arm from dropping, or “sagging” as I call it.

Would this work?

An encoder would simply allow you to determine the position of the arm (and therefore speed). If you program an algorithm like PID (or even just a proportional controller) to use this information to send the correct power levels to the motors in order to eliminate the “sag” and improve performance of your arm.

If you have RobotC version 4, PID is already built into it. More information on that in this thread:
https://vexforum.com/t/robotc-has-pid-to-control-your-flywheel/31108/1

There are also many other threads on this forum about PID that you could check out, or ask me if you have any more questions.

This thread may interest you.
https://vexforum.com/t/clawbot-improvements/23723/1

A team using a 6 bar lift last year told me that they set their motor power to 10 instead of 0 when it was supposed to remain stationary so that gravity would not affect it.

We did the same with our four bar reverse four bar. We called it “holding power” and it also counter acted momentum.

To be perfectly honest, a PID loop is a bit overkill for a sagging clawbot arm. Unless you really want to implement PID, I’d recommend that you send a small value(10-20) to the motors in place of setting your motors to 0 and stopping them altogether. Easier programming and no annoying loop tuning.

So the PID would be how you would do it if the clawbot was bigger or you care about the load it’s holding. Depending on the weight of the object the claw can hold, 10 power units may not be enough.

I made the assumption that the OP was talking about the claw arm sinking because of its own weight. In which case, 10 - 20 power units would probably be enough.

My 6th grade team built one for their first ever competition. By the end of the day the claw was gone. A gravity ramp with dump gate found it way on the bot. Biggest issue was the claw breaking the fowl line. It was a great experience watching the kids adapt and succeed. They ended up ranked 17th of 28 and was selected mostly because of rank to join the #2 final alliance and taking second place with them. My 7-8 grade teem ranked #12 and was shifted into the 8th alliance captain at their first ever event too. They used the Claw base with a 4 ball conveyor that had to be hand loaded but also had an autonomous mode. Found the weight of the conveyor assembly to be heavy and by the end of the day had 3 bent axles.

I know this is not an answer to your question but it will be fun to hear if your team follows a similar path.