I have just started learning vrep for a week and I wonder is there and way I can limit the position degree of a joint during IK calculation?
I want my UR10 robot draw between 3-4 waypoints but it keeps drawing with uncomfortable joint like in the picture
When I try to change the configuration of the EF joint, the robot will stop working
I'm using code from the smoothMovementsInFkAndIk
Thank you!
How can I limit the working space of the robot?
-
- Posts: 5
- Joined: 09 Apr 2024, 09:06
Re: How can I limit the working space of the robot?
There is an option to avoid joint limits in simIK.setGroupFlags:
A more customizable approach to drive the robot configuration towards "better" poses could be of introducing a secondary task, e.g. to attract the elbow up, without affecting the accuracy of the primary task.
Another more advanced approach known in robotics literature consists in -provided the robot has redundant degrees of freedom for the task- computing the null space of the jacobian matrix. The span of the null space will give you all the joint directions in which to move while keeping the tip-target error to zero, e.g. the so called "self motion" can be obtained by this. The simIK plugin offers various way to obtain the jacobian matrix (simIK.computeJacobian, simIK.computeGroupJacobian, with a callback argument to simIK.handleGroup, ...) then CoppeliaSim provides a linear algebra library (matrix.lua) to conveniently work with vectors and matrices.
simIK.group_avoidlimits
: joint limits are actively avoided
A more customizable approach to drive the robot configuration towards "better" poses could be of introducing a secondary task, e.g. to attract the elbow up, without affecting the accuracy of the primary task.
Another more advanced approach known in robotics literature consists in -provided the robot has redundant degrees of freedom for the task- computing the null space of the jacobian matrix. The span of the null space will give you all the joint directions in which to move while keeping the tip-target error to zero, e.g. the so called "self motion" can be obtained by this. The simIK plugin offers various way to obtain the jacobian matrix (simIK.computeJacobian, simIK.computeGroupJacobian, with a callback argument to simIK.handleGroup, ...) then CoppeliaSim provides a linear algebra library (matrix.lua) to conveniently work with vectors and matrices.