I am working on a 3 DOF parallel manipulator, I was successful in solving the inverse kinematics and forward kinematics of my manipulator. But I am facing a problem in generating a workspace for it.

I created a MATLAB script to find workspace by Monte Carlo Simulation Method, the output of the script generates random position coordinates which the end effector can reach with at least one orientation.

After generating random coordinates, I was easily able to solve the inverse kinematics, but when I tried to solve the forward kinematics, I was not able to get the same position coordinates that I used to solve the inverse kinematics.

Also, when I tried to manually change the leg lengths of my parallel robot in SolidWorks according to the output of inverse kinematics, I was not getting the same position coordinates of the end effector, as the values, I used to solve the inverse kinematics.


(For Inverse Kinematics Input: randomly generated position coordinate; Output: leg lengths)

(For Forward Kinematics Input: leg lengths obtained from inverse solution; Output: position coordinate of end effector)

I don't know where I am going wrong, Can anyone please help me with this?

Thank you in advance, I really appreciate your help !!

Kind Regards, Shiv

  • $\begingroup$ Welcome to Robotics, Shiv. You may have noticed that this site tries to gather questions and answers that are of broad, lasting value. Unfortunately, there is not much we can do with your question. We can help with specific problems and even points of conceptual confusion. But, frankly, it looks like you just need some more effective debugging (neither broad nor lasting) -- and you didn't show any code. $\endgroup$
    – r-bryan
    Feb 1, 2022 at 18:06
  • $\begingroup$ Even if we can't help, maybe just asking questions will help you solving your problem. What is your main goal? Just to define the workspace of the manipulator?, In this case why do you need forward kinematics? With monte carlo on inverse kn, will give you the space that can be reached by the manipulator. $\endgroup$ Feb 2, 2022 at 10:30
  • $\begingroup$ Hi @PeterDevenyi , My goal is to find a reachable workspace for my manipulator. Yes, to find workspace by Monte Carlo method. I do not need forward kinematics. But to verify the randomly generated position coordinates by Monte Carlo is where forward kinematics will help. Currently, my model in SolidWorks shows incorrect position coordinate when I try to move it to the position coordinate generated by the Monte Carlo method. ( I need my forward kinematics to match inverse kinematics, both my mathematical solutions should match my SolidWorks model) $\endgroup$
    – Shiv
    Feb 2, 2022 at 16:30
  • $\begingroup$ By incorrect, do you mean, it is somewhere else in a random place? Or is it just inaccurate? Perhaps it is in a different location because of how IK handles singularities (although perhaps that shouldn't be the case with a parallel manipulator)? At this stage, you probably need to debug your code as @r-bryan mentioned. Even a visual confirmation can tell what is wrong, at least whether your IK or FK is the culprit. $\endgroup$ Feb 3, 2022 at 9:58
  • $\begingroup$ @PeterDevenyi, I found the problem as to why my PKM was not able to reach a randomly generated point. The answer is the spherical joints of my PKM. I still haven't been able to get the end effector to reach the random point, but limiting the range of S-joints will work. I was able to limit the S-joints in Z-direction using the vector gradient angle formula and I got the correct distance of the end effector from the origin in the z-direction, Now I need to limit the spherical joint in X & Y direction. Does anyone know how to limit the range of S-joints mathematically or in Solidworks? $\endgroup$
    – Shiv
    Feb 7, 2022 at 15:47


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.