Hello, I have a question about manual guidance (hand-guiding) implementation.
I want to create an application where the robot’s TCP, by default, stays at some position. The robot is in compliant mode, and its TCP can be removed from the default position by a hand-guided controller mounted as an end-effector. But the TCP should behave as a spring; thereby, it should tend to return to its default position after the external forces from the hand-guided control are canceled (e.g., when the operator stops pushing).
I used the PositionHold() of the CartesianImpedanceControlMode, with stiffness parameters in XYZ set to 50, and it works perfectly for the application. The only problem is that the joint axes are not limited, and the robot might go beyond its limits, so manual remastering is required.
My question is: is it possible to restrict the robot’s workspace, so the robot does not allow the operator to move the joints beyond their limits? The robot’s movement should not be stopped entirely but only restricted in the direction of exceeding the joint axis.
I have already tried the following:
- I defined axes limitations in Safety Configuration, but the system’s response (total stop) I get is not appropriate for my application.
- I implemented the handGuiding()from the HRCMotions class. But in this case, the robot’s motion is under the joints control, not the Cartesian control, which makes the interaction with the robot inconvenient.
Thank you in advance!