I have an external program that loads lots of poses and sends it to the robotic controller to be run via TCP-IP. The issue is sometimes the motion will be cut off due to initial positioning of the robot (i.e cannot reach) or speed/acceleration exceeds the limits, or a singularity is found.
Is there a way to make sure all the poses can be excuted based on the current posistion of the robot before I send it to be run? It always seems to be where I position the arm (and how the joints are positioned). Sometimes if I move the arm slightly, it will run all the poses without any issues.
I second that request.
My program have a list of poses and tries to move through all of them individually. If one of them fails for any reason (out of reach / collision / limits reached / singularity) I want to let the program know, and continue on to the next pose.
Currently in these cases the program would just stop completely and an error message will be shown to the ui.
Is there anyway to know if a move command is going to succeed before sending it?
you can use the script function is_within_safety_limits() to check if a pose is out of reach before executing the move. I never tested if it prevents singularity poses tho
@m.birkholz The is_within_safety_limits() is a great check to see if the motion is within the safety parameters, ie any safety planes or other safety restrictions. But it won’t look for singularities. You’ll probably want to check for both though.
The only way to check for singularities I can think of is running your own kinematic model and cross referencing it to the robot positions. I know there are a few products that have done this, however it sounds like this would be a great feature request. I’ll make a note of it for the team.