Everything has been going great with my OpenRAVE integration, and we are now field testing the robot.
One thing that came up yesterday was a automated move crash. I've been looking into it this morning and found that the user had manually moved a joint past one of the OpenRAVE model's limits.
(limits on our manipulator are what I'm going to call 'soft', in that the joints are able to move past what we would call the limit with no physical issues, but I have chosen to set limits in OpenRAVE to constrain planning).
My hypothesis on the cause of the crash is that the user had the joint at 190 degrees. OpenRAVE had then created a plan from 180 degrees (the limit) to 90 degrees. Our plan compiler then took the trajectory and turned it into motor commands to move the drive through 90 degrees, instead of the 100 degrees actually needed. Later in the movement, because the drive is 10 degrees out of position, the manipulator crashed.
I have now got a fixed for problem on the compiler side, but I was wondering if there is any feature of OpenRAVE that can help here.
Is there any way to set up OpenRAVE (or the BiRRT planner) to prefer to move within a set of soft limits, but allow movement if it has to between hard limits.
I'm pretty sure that this is not possible, but I thought it best to ask.