- Posts: 67
- Thank you received: 0
Genserkins failure with custom robot
8 years 5 months ago #110024
by Wireline
Genserkins failure with custom robot was created by Wireline
Hi!
Based on the puma560 files, I've built a custom vismach model of a staubli RX60L (long arm version) and got it working in preview:
[hr]
[hr]
What I am trying to do:
I want to get the axis movements, XYZABC, to work, but I can only use jog. Eventually I want to run a simple gcode program such as the stock milling one.
What is going wrong?
I am getting an error in terminal when trying to home the machine which reads:
The program does not exit and I am able to resume using 'jog' in joint mode. Nothing is returned in dmesg.
A small message displays in axis saying 'kinematics Inverse Failed'
What have I done to try and fix the problem?
I note that this error appears to relate to matrix operations in gomath.c, called from genserkins.c, and the former of which return the GO_RESULT_ERROR if they fail, triggering the error from genserkins.c in the terminal:
I have updated generkins.h, the hal file and the ini file with the parameters as I believe them to be correct, taking data from the manual and from a DH parameter analysis I have carried out (attached). I have recompiled my RIP install with the new versions (I did not run sudo make install however, its just at "make" level)
[Note: The DH params below are slightly different than in some onlinestudies, which refer to the short arm and where the zero position of the arm is horizontal rather than vertical.
[hr]
[hr]
[hr]
These are my new genserkins defaults:
.......Followed by the halfile params (I experimented with alternate angular units to no avail):
What code am I using?
I have attached genserkins.h, the new staubli gui file (zipped to get around file extension requirement), and the updated ini and hal files.
What help would I like?
My skill level: Intermediate python and c++, new to linuxcnc
I seem to have come up against a brick wall with fixing this one. I believe my DH params are correct and have checked my files for errors, but cannot see where the problem might be. Can anyone suggest where to start looking? Am I just missing a step? Here is the contents of my vismach folder:
Based on the puma560 files, I've built a custom vismach model of a staubli RX60L (long arm version) and got it working in preview:
[hr]
Attachment not found
[hr]
What I am trying to do:
I want to get the axis movements, XYZABC, to work, but I can only use jog. Eventually I want to run a simple gcode program such as the stock milling one.
What is going wrong?
I am getting an error in terminal when trying to home the machine which reads:
Code:
kinematicsInverse failed
ERR kI - compute_jinv (joints: 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000), (iterations=0)
The program does not exit and I am able to resume using 'jog' in joint mode. Nothing is returned in dmesg.
A small message displays in axis saying 'kinematics Inverse Failed'
What have I done to try and fix the problem?
I note that this error appears to relate to matrix operations in gomath.c, called from genserkins.c, and the former of which return the GO_RESULT_ERROR if they fail, triggering the error from genserkins.c in the terminal:
Code:
retval = compute_jinv(&Jfwd, &Jinv);
if (GO_RESULT_OK != retval) {
rtapi_print("ERR kI - compute_jinv (joints: %f %f %f %f %f %f), (iterations=%d)\n", joints[0],joints[1],joints[2],joints[3],joints[4],joints[5], genser->iterations);
return retval;
}
I have updated generkins.h, the hal file and the ini file with the parameters as I believe them to be correct, taking data from the manual and from a DH parameter analysis I have carried out (attached). I have recompiled my RIP install with the new versions (I did not run sudo make install however, its just at "make" level)
[Note: The DH params below are slightly different than in some onlinestudies, which refer to the short arm and where the zero position of the arm is horizontal rather than vertical.
[hr]
Attachment not found
[hr]
Attachment not found
[hr]
These are my new genserkins defaults:
Code:
#define DEFAULT_A1 0
#define DEFAULT_ALPHA1 0
#define DEFAULT_D1 0
#define DEFAULT_A2 0
#define DEFAULT_ALPHA2 -PI_2
#define DEFAULT_D2 0
#define DEFAULT_A3 400
#define DEFAULT_ALPHA3 0
#define DEFAULT_D3 49
#define DEFAULT_A4 0
#define DEFAULT_ALPHA4 PI_2
#define DEFAULT_D4 400
#define DEFAULT_A5 0
#define DEFAULT_ALPHA5 -PI_2
#define DEFAULT_D5 0
#define DEFAULT_A6 0
#define DEFAULT_ALPHA6 PI_2
#define DEFAULT_D6 0
.......Followed by the halfile params (I experimented with alternate angular units to no avail):
Code:
setp genserkins.A-0 0
setp genserkins.A-1 0
setp genserkins.A-2 400
setp genserkins.A-3 0
setp genserkins.A-4 0
setp genserkins.A-5 0
setp genserkins.ALPHA-0 0
setp genserkins.ALPHA-1 -1.570796326
setp genserkins.ALPHA-2 0
setp genserkins.ALPHA-3 1.570796326
setp genserkins.ALPHA-4 -1.570796326
setp genserkins.ALPHA-5 1.570796326
setp genserkins.D-0 0
setp genserkins.D-1 0
setp genserkins.D-2 49
setp genserkins.D-3 400
setp genserkins.D-4 0
setp genserkins.D-5 0
What code am I using?
I have attached genserkins.h, the new staubli gui file (zipped to get around file extension requirement), and the updated ini and hal files.
What help would I like?
My skill level: Intermediate python and c++, new to linuxcnc
I seem to have come up against a brick wall with fixing this one. I believe my DH params are correct and have checked my files for errors, but cannot see where the problem might be. Can anyone suggest where to start looking? Am I just missing a step? Here is the contents of my vismach folder:
Attachment not found
Please Log in to join the conversation.
8 years 5 months ago #110025
by Wireline
Replied by Wireline on topic Genserkins failure with custom robot
Not sure if attachments are showing up for everyone else, I cannot see them in my browser in the main thread (just says "You do not have permissions to access this page.") but they appear in edit > preview?
Please Log in to join the conversation.
8 years 5 months ago #110027
by Wireline
Replied by Wireline on topic Genserkins failure with custom robot
Attachment not found
Please Log in to join the conversation.
8 years 5 months ago #110028
by Wireline
Replied by Wireline on topic Genserkins failure with custom robot
Attachment not found
Please Log in to join the conversation.
8 years 5 months ago #110029
by Wireline
Replied by Wireline on topic Genserkins failure with custom robot
Attachment not found
Attachment not found
Please Log in to join the conversation.
8 years 5 months ago #110030
by Wireline
Replied by Wireline on topic Genserkins failure with custom robot
Looks to be a limit on attachments per post, I have now separated them out
Attachment not found
Attachment not found
Please Log in to join the conversation.
8 years 5 months ago #110031
by Wireline
Replied by Wireline on topic Genserkins failure with custom robot
Shot of arm in vismach:
Contents of folder, am I missing anything?
Attachment not found
Contents of folder, am I missing anything?
Attachment not found
Please Log in to join the conversation.
8 years 5 months ago #110036
by Wireline
Replied by Wireline on topic Genserkins failure with custom robot
DH Table:
Attachment not found
Please Log in to join the conversation.
8 years 5 months ago #110049
by Wireline
Replied by Wireline on topic Genserkins failure with custom robot
OK some progress. I changed the home values in the ini file to 5 arbitrarily for each joint, and now I do not get kinematics failures when homing, but I do when trying to move in the X Y Z A B or C axes. There seems to be something off with where axis believes the joints to be. Moving in X briefly worked, but immediately said it had hit a soft limit. The rotation gauge jumped from its home zero point right to its limit, which makes me think I missed something in setting up the joints.
I also modified the DH params too and included d6 = 105, to include the distance from joint 5 to tool tip. I added a 40mm long tool.
EDIT: OK I am starting to suspect I have used an inappropriate DH convention. I recall reading somewhere that a specific convention was used in genserkins, I will have to look the book up (or just bodge it!). Its proving a tough nut to crack, but I am using the absolute world position numbers as a guide as to where things might be wrong. It seems there is an erroneous 90 degree offset to joints 2 and 3, however reversing their direction or setting them to zero does not seem to help.
Is there a way to view the actual kinematic model, rather than the vismach one?
I also modified the DH params too and included d6 = 105, to include the distance from joint 5 to tool tip. I added a 40mm long tool.
EDIT: OK I am starting to suspect I have used an inappropriate DH convention. I recall reading somewhere that a specific convention was used in genserkins, I will have to look the book up (or just bodge it!). Its proving a tough nut to crack, but I am using the absolute world position numbers as a guide as to where things might be wrong. It seems there is an erroneous 90 degree offset to joints 2 and 3, however reversing their direction or setting them to zero does not seem to help.
Is there a way to view the actual kinematic model, rather than the vismach one?
Please Log in to join the conversation.
8 years 5 months ago #110258
by Wireline
Replied by Wireline on topic Genserkins failure with custom robot
In case anyone struggles with the same error message, I eventually tracked the problem down to the updated ini parameters I had added. I am not sure which line exactly yet but by process of elimination and going back to a previously working config, the ini was the culprit! Still need to iron out some kinks with the kinematics but at least I am not getting Inverse Kinematics Failed anymore
Please Log in to join the conversation.
Time to create page: 0.130 seconds
