02-14-2011 01:36 PM
I've been working with the robot arm module and making very good progress at simulating Denso VS series 6 axis robot arm for a development project on a tight schedule. Except now I am becoming more confused buy the module's implementation of the Denavit-Hartenberg kinematic parameters. The "Rotation" or "theta" term appears to be ignored. The five DH joint parameters" alpha, r, theta, d and type" should be all that's needed. Correct? For most joints the last (sixth?) term in the kinematic properties cluster "Coord Offset" appears to do what the Theta term isn't. But for the life of me, I can't find a combination of any parameters that properly describe the arm in its entirety.
Ultimately this issue reveals itself at the end effector which is visually correct, but has mis-oriented coordinate. Therefore output transformation angles don't match the real life robot's angles.
02-14-2011 01:59 PM
I'd really like to edit/change the title of the original post but having a difficult time w/ that too.
02-14-2011 02:59 PM
Are you using the Robotics module or the Denso Toolkit? Some of your stuff looks like it is from the robotics module but the 3d picture does not.
02-14-2011 03:22 PM
I am using the Denso toolkit with the project... but the graphics are completly custom and the no Denso Tookit code is implicated with the issue I'm describing. It doesn't use DH parameters. What I ultimatly need is to match the inverse kinematics generated by LV with those generated by Denso.
02-14-2011 03:48 PM
I am not sure entirely what the robot is supposed to look like but I can give you some general guidelines.
1) Theta vs offset - Most textbooks etc use theta to describe the angle of the revolute joint. In this case we not only need theta to describe the angle of the joint at any position but the offset to help configure how the zero of theta is oriented.
So theta the joint angle that is modified by the kinematics while the offset is a constant.
2) To debug my arm parameters I first try to check whether all my joints rotate around their z axis. That is the first constraint to set when trying to derive DH parameters. Assuming you have that then the twist and distance are fairly easy to get.
At this point you should have an arm where all the theta's rotation match the joints except for offsets.
3) Fix offsets last.
02-14-2011 03:54 PM
To confirm your setup you are trying to get Inverse Kinematics from the Robotics Module and use it with the Denso Toolkit. Note that the Robotics Module uses a general numerical solver with all the advantages and disadvantages thereof. You will at least have to think about determinism (numerical solvers are not deterministic) and problems near singularities (numerical solvers often do not converge to a solution near them).
02-14-2011 05:38 PM
I understand the difference between Theta and offset. For anyone interested, here is a link to the best reference I've found:
http://www.youtube.com/watch?v=rA9tm0gTln8
It's just that modifying the Theta values in appear to have ZERO effect on any joint in the LV model. In the pict below of the model shown in joint position 0,0,0,0,0,0 all axis rotate as they should. The 6th Joint is the parent for the red coordinate system at the base of the end effector. Red's Z is pointed in the correct direction and it has no graphical angular offsets.
Red indicates (by the direction of x) the end effector is rotated 180 deg about the Z axis from the desired position. My issue is that no DH Theta parameter value in LV will change this or anything else. GRRRR
02-14-2011 06:03 PM
An offset of 180 degrees on the last joint should then be your solution. The theta values are overwritten by kinematics calculations and you do not want to store any configuration info there for revolute joints. You may want to do so for prismatic joints but you do not have any of those in this robot so far.
02-14-2011 06:04 PM
Maybe the offset is on the second to last joint. since they are at the same point
02-14-2011 06:16 PM
Modifying any Theta value for any link has no effect on any joint.