petercorke / robotics-toolbox-matlab

Robotics Toolbox for MATLAB
GNU Lesser General Public License v2.1
1.26k stars 440 forks source link

DH table and missing some code in Link.m #119

Open RobaczeQ opened 2 years ago

RobaczeQ commented 2 years ago

Hello,

I don't really know if somebody visits this project on github and try to answer questions, I would be very grateful if it was the case.

I will start with code problem. In link.m in line 599: if length(v) == 1 ~isa(v,'sym') but it should be if length(v) == 1 && ~isa(v,'sym') It causes to show logic output in console instead of checking those 2 conditions.

Now, to main topic, DH-table of Kinova gen3 robotic arm. image image

Those screenshots are from Kinova User guide. How to convert those to use them in this toolbox? I mean, there is first row of table where you make 180 degree turn around X axis with theta=0, and second row theta=q1. I haven't find option to set theta_2=q1 and theta_1=0. Should I just omit first row and start with second (just change gravity term to negative)? If it's the case, last row shouldn't be to last link, not "to interface"? Or maybe start with first row, omit last one and move theta column one up to make theta_1=q1?

Another problem is with "to interface"/tool translation. In code of rne_dh.m in line 200-204 we can see:

            if j == n
                R = eye(3,3);
            else
                R = Rm{j+1};
            end

stating that for last link Rotation matrix is eye(3,3) which means no rotation, which is surly not the case with this robot arm. Adding .base or .tool translation doesn't help, cause those aren't used in rne_dh.m.

Thanks in advance for any help :)

Best regards, Matt