i am trying to implement a matlab script where the user can enter quaternions and retrieve the corresponding denavit hartenberg parameters for this link. My approach is to create the homogenous transformation matrix from the entered quaternions and then calculate the DH-Parameters from it.

Transformation matrix with denavit hartenberg parameters

For now it works for a and d, but it has difficulties with negative alpha angles. I am calculating alpha with 'acosd(Matrix(3,3))', but this always returns positives angles. For example if i have a link with -pi/2 for alpha i retrieve pi/2. I discovered that the transformation matrix has exact the same values for a link with a negative and a link with positive alpha angle. Therefore it is unclear for me how i should identify the sign of alpha with this approach.

Is it even possible what i am trying to do here? And do you have an idea how i can calculate alpha from the transformation matrix with taking into account the sign?

  • $\begingroup$ If you looking for alpha, isnt as simple as arcsin matrix(3,2), since it literally only sin of alpha? $\endgroup$
    – Albert H M
    Commented Jun 15, 2021 at 10:06
  • $\begingroup$ Or if you can compare your arccos(3,3) and arcsin(3,2) so you can get the sign $\endgroup$
    – Albert H M
    Commented Jun 15, 2021 at 10:08


Your Answer

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