How to solve inverse kinematic problem in real-time?
18 views (last 30 days)
I want to make a real-time end-effector position control simulation of a 6 DOF robotic arm in simscape multi-body. In the simulation I want to make a matlab GUI like sliders to change the posiotion and the robotic arm starts to move in real-time. To do so, I should solve the inverse kinematic problem and the best way is to use matlab robotic toolbox. The problem is even with using this toolbox, robot cannot move in real-time and it should be done offline. Can anyone help me with that or suggest me a solution?
As I know, industrial robots like KUKA or ABB can solve the inverse kinematic problem in real-time or may be they use lookup table for moving in their workspace.
Yiping Liu on 8 Apr 2021
In 21a, RST introduced a new IK solver called analyticalInverseKinematics which allows you generate a closed-form IK function for a particular 6-DoF serial-link manipulator arm. Give it a try. AIK currently doesn't cover all the 6 DoF variations, but it covers a lot of them. the function will tell you if your robot is compatible.
It seems that your use case is for fast interaction with a manipulator end-effector in a GUI. So in this case, the "real time" feel depends on how fast you intend to move the manipulator end-effector. For a 6-DoF, even if you use the numeric iterative solver provided through inverseKinematics, you can still solve the IK reasonably fast with the LM solver with a small upper bound on number of iterations, assuming you are moving the end-effector smoothly (no sudden change in the desired EE pose) and you are passing the previously solved result to the IK as initial guess every time.
Also keep in mind that for grahpical interaction, the rendering of the robot in figure can actually take a lot of time if you don't use the correct way to draw. Check 'FastUpdate' — Fast updates to existing plot option on rigidBodyTree.show method.