Good Day everyone,
Hope every one is well and healthy. I am trying to write a program for kinematics of the left hand without using myrobotlb. I already have the DH parameters as below.
I need some help.
1. if the DH parameters are right. I assembled the stls in CAD and took the values form there. Also if anybody has DH parameters. Please Share.
2. As the servos for elbow and whole arm lift has limited movement i.e. not 180 degrees. Also due to setting of the potentiometer, everybody has different values for angles. For example, for me elbow is 150 degree for extension and 65 degrees for flexion. similar angles for whole arm i.e. 6 and 65. My Question is do we consider these angles in the kinematic calculations or not?
Thank you very much.
Hello, Kwatters did some
Hello,
Kwatters did some tests on InMoov with DH parameters, hope this can help you:
https://github.com/MyRobotLab/pyrobotlab/blob/master/home/kwatters/DHParamsIK3D.py
https://github.com/MyRobotLab/pyrobotlab/blob/master/home/kwatters/InverseKinematics3D.py
forward and reverse kinematics for the inmoov arm
There is no "official" set of DH params to describe the inmoov arm. I came up with a set of DH params that go from the omoplate to wrist.. I came up with my dh params table by using a program called "MRPT" which had a utility that let you see what it looked like and how it moved.
The DH Params I came up with are in the inmoov arm service here:
https://github.com/MyRobotLab/myrobotlab/blob/develop/src/main/java/org…
I think the table was pretty representative of the actual inmoov arm with a few key differences, as you noted.
The "zero" angle according to the model might be different from the "zero" angle of the servo, so there is an encoder offset to account for. If the IKSolver says to go to 90 degrees, depending on the robot calibration that might represent turning the servo to 180 degrees.. (assuming a 90 degree offset between the dh params and the physical model.)
The second is that the direction of rotation might be backwards in a few places in my model.. i'm not sure.
Ultimately, we need a better more comprehensive dh params table, perhaps you can help us? We could really benefit from defining the base or origin of the bot. Maybe that's somewhere in the torso? or between the shoulder blades?
In MRL, I implemented a simple IK solver that computes the forward kinematics for the arm , and then computes the jacobian matrix to perform gradient descent to get within a small distance to the desired location. I'm certain, this algorithm can be improved upon, but it works for many cases.
There are some joint angle constrains that can be specified in the model, so gradient descent doesn't try to turn a servo past it's limits, but I also think that part of the algorithm can be improved.
I have a bunch of videos from a while back on my youtube channel.. here's a few..
https://www.youtube.com/watch?v=uiNDJBPhpUk
https://www.youtube.com/watch?v=ijo6LBpMVqs