Robot Arm "Violating" Joint Constraints prevents future movement/planning
We have an arm that we're trying to control using the move_arm stack. We're having difficulties where the arm gets moved to the edge of our joint limits, but then gravity (or noise) pulls the arm slightly past the joint constraint. Once this happens, the arm can not move, because the start state violates the joint constraints. How do people normally deal with this problem?
Edit:
I've tried to write some simple code which pushes the arm just out of the joint limit, but a problem occurs is that the arm is trying to go back into a position where it thinks it is in a limit, and can not actually get there. (For example, the solution from the IK solver is right at the end of the joint limit). So my follow-on question is this: Is there a way to treat the IK/planner to have slightly tighter joint limits then what exists in real life? This way the planner can plan to put a joint at its limit, but when we actually get there there is a bit of play so move_arm will at least successfully go to it?
Edit2: See my answer below for how I have solved this problem for our robot.
FYI you can look at my answer to see how I solved this problem for our specific situation.