ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question

How to get each joint angle if all joint positions (x,y,z) are known?

asked 2022-05-24 21:32:24 -0600

lyh458 gravatar image

If all joint positions or coordinates of each joint are known, How can I get each joint's angle?

e.g. there is a 6 DOF robot and its joint positions are known, P = [p1, p2, p3, p4, p5, p6].

How to calculate θ = [θ1, θ2, θ3, θ4, θ5, θ6]? Any api in ROS?

Thanks in advance!

edit retag flag offensive close merge delete

1 Answer

Sort by » oldest newest most voted

answered 2022-05-25 01:48:12 -0600

aarsh_t gravatar image


I don't know about the API. Because in Robotics this is the rare case. Generally you are given the position of the end effector and you want to get the joint angle based on that only. But if you know the math behind it, you can do it by self. I suppose your base is at (0,0,0) and with the the Z-Up (Z0). It is fairly simple task if all of the joint axis are perpendicular to the Z0 (planner robot). But when you go in spacial robots, you might need to solve the inverse jacobian and it can give you more than one solution. OR take the continuous non parallel pair of joints and solve it.

Lets say Z1 is parallel to Z0 and Z2 is perpendicular to Z1, Now take position P2 and solve it for θ1, θ2 its simple math. then take P2 as reference and solve it for θ3, θ4 etc etc. In case two joints are not perpendicular, just solve it for one and move forward. its simple trigonometry in your case.

edit flag offensive delete link more

Question Tools

1 follower


Asked: 2022-05-24 21:32:24 -0600

Seen: 66 times

Last updated: May 25 '22