2
$\begingroup$

if we have a robot with 5 DoF and we want to plan its movement. The inverse kinematic solver will do this job without a doubt. However, it is usually assumed that axes can be moved in a synchronized way. More precisely, if the solution of my IK solver is q_dot = [0.01,0,0.01,0.01,0.01], the robot will try to move 4 axes at the same time, however, what if the power of the robot is just sufficient to move only 2 axes at the same time. The actual motion will be probably different than one expected.

Questions:

  • Using the nullspace technique, one can pre-define the sequence of axes so that axes are moved in this pre-defined hierarchy. However, I am afraid that this approach will limit the flexibility of the robot too much. Does anyone know a better solution or reference about it?
$\endgroup$
2
$\begingroup$

You could use joint constraints with timers or guard conditions applied to them.

Basically, the constraint of the axes that you don't want to move, you can set to zero degree allowed angles change. Then change this constraint to something non-zero, when certain condition is met. This condition can be your timer, or the fact that other axes have finished their move, or reached certain angle. In turn this other turning axes constraints can be set to zero angle at the same time. This way you can have only a set of axes rotating (or translating if that is what you need) at the same time.

Now, joint constraints can be very tedious. I am not sure how well you can apply them to conventional IK solutions, but they certainly lot easier to use with iterative solvers. My practical suggestion would be to use FABRIK solver, with conic joint constraint projected on a 2D plane.

You can find more information here: http://www.andreasaristidou.com/FABRIK.html If high precision is not the main target, this solution is pretty good. My personal experience is, that this solver is very fast and gives a natural motion. Also, conic constraints can be applied relatively easily.

Hope this helps you progressing on your project.

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.