0

Given three sets of joint angles in which the end effector is in the same position, is it possible to find the DH parameters?

If the robot has 2 DOF in shoulder, 2 DOF in elbow, and 1 dof in wrist, with DH parameters as upper arm length, elbow offset in 1 axis, lower arm length, can this be solved, if so how?

I tried iterating through DH parameters to minimize position of end effector with forward kinematics, but this doesnt seem to work as DH parameters of 0 for everything makes 0 minimal distance.

Reason for this; given a physical robot, no DH parameters are known, and measuring by hand is not accurate.

1 Answers1

1

For a 5-DOF manipulator you will have 15 DH parameters. Three sets of joint angles will yield 9 equations, so that will not be enough to determine the parameters. And this is assuming you know the end-effector position, whereas if you are simply trying to use the constraint that all three positions are equal then you will have even fewer equations to work with.

You should be able to estimate the $\alpha$ parameters simply by inspecting the robot -- hopefully they are all 0 deg or $\pm$90 deg.

If you are measuring the end-effector position then you can simply set up as many test points as are necessary to get all of the parameters. This can be done strategically to simplify the process. Start with the outermost link, rotate that joint only, and look at how the end-effector position changes, then you can determine that link's parameters. Then move to the next link and repeat.

Alternatively, you can use the forward kinematics in a differential form as would be used to determine end-effector velocity, $\dot{p}$, in terms of joint angle velocities, $\dot{\theta}$, based on the Jacobian, $J$.

$\dot{p} = J \dot{\theta}$

Consider this relationship in terms of differences in end-effector position related to differences in joint angles:

$\Delta p = J \Delta \theta$

The above relationship can then be used to solve for the DH parameters given a series of measured $\Delta p$ and $\Delta \theta$ values using a non-linear least-squares solution.

Brian Lynch
  • 1,387
  • 7
  • 13
  • based on the actual robot, the only dh parameters are the ones i list, upper arm length, elbow offset x, lower arm length. The issue is not knowing exactly where the end effector is, as I can not measure the center of the shoulder joint (which is what I use as base frame so the shoulder has no offset). – user-2147482637 Nov 02 '15 at 05:14
  • Are you asking if your particular set of equations are determinate? – Brian Lynch Nov 02 '15 at 05:26
  • I am asking if there is a known method for solving dh parameters given some physical robot where the parameters are unknown, so it is not possible to measure inside the joint, and not possible to know the possition of the end effector relative to any frame within the robot. – user-2147482637 Nov 02 '15 at 08:06
  • If it is not possible to know the end-effector position then you cannot identify the DH parameters. Surely you must be measuring the end-effector position somehow? If so then just do as I said, work backwards from the outermost link. One method that you can use for identifying the link parameters is to setup fiduciary markers and use a camera, but that is quite a bit of work. – Brian Lynch Nov 02 '15 at 08:11
  • I can know end effector relative to another end effector location, but not the robot frame, if I could measure EE to robot frame (which is inside the robot), then I could measure the DH parameter. I do have a mocap sytem. – user-2147482637 Nov 02 '15 at 08:14
  • So you can measure relative end-effector movement but not the actual end-effector position? – Brian Lynch Nov 02 '15 at 08:23
  • Correct, since the actual ee is relative to a position inside the robot, and I can not measure from there, and since the DH is unknown, i cant use kinematics to calculate it accurately. – user-2147482637 Nov 02 '15 at 08:26
  • You can still determine link lengths by working backwards from the end-effector and actuating only one joint at a time. Move only the outermost link and record the EE position as you sweep through the angles, this will then form an arc segment in 3D space from which you can determine the axis and arc radius. – Brian Lynch Nov 02 '15 at 08:47
  • Yes, That is possible, I was hoping there was a better way. – user-2147482637 Nov 02 '15 at 09:15
  • I think that is the simplest method. You can also try setting up equations relating changes in joint angles to changes in EE position through the forward kinematics Jacobian. Then solve that system of equations using a non-linear least-squares solution for a series of measurements. – Brian Lynch Nov 02 '15 at 09:39