TCP 5-axis kinematics

More
7 years 3 months ago #139922 by plopes9000
Replied by plopes9000 on topic TCP 5-axis kinematics

dgarrett wrote: If you test dgarr/homing_h successfully and report so
it can be merged, i will work on adding support for
something like HOME_INDEX_NO_ENCODER_RESET as you
suggest


I took your branch dgarr/homing_h made one single change (see below) and homing with HOME_USE_INDEX = YES
worked just fine for all axis, I ran it twice - so for this configuration I can confirm it works.

Code:
case HOME_SET_INDEX_POSITION: /* This state is called when the encoder has been reset at the index pulse position. It sets the current joint position to 'home_offset', which is the location of the index pulse in joint coordinates. */ /* set the current position to 'home_offset' */ joint->motor_offset = - H[joint_num].home_offset; joint->pos_fb = joint->motor_pos_fb - (joint->backlash_filt + joint->motor_offset); joint->pos_cmd = joint->pos_fb; joint->free_tp.curr_pos = joint->pos_fb; // PL ++ /* this moves the internal position but does not affect the motor position */ offset = H[joint_num].home_offset - joint->pos_fb; /* this moves the internal position but does not affect the motor position */ joint->pos_cmd += offset; joint->pos_fb += offset; joint->free_tp.curr_pos += offset; joint->motor_offset -= offset; // -- PL /* next state */ H[joint_num].home_state = HOME_FINAL_MOVE_START; immediate_state = 1; break;

Was there anything else you meant for me to test?

Please Log in or Create an account to join the conversation.

More
7 years 3 months ago #139925 by jsskangas
Replied by jsskangas on topic TCP 5-axis kinematics
Do you think this is generalisable?

Depending what you mean with this.
It is already generic for normal xyzac or xyzbc table-table machine.

But if you mean that it could handle basically any kinematic machine type, like:
table-table, head-table, head-head + non orthogonal varieties of these machines.

Meaning we could write generic kinematic module that you simply select axis type, axis names, axes vectors and offsets.
From kinematic definition file it would automatically form needed translation and rotation mattresses and calculate these together to form inverse and forward transformations.


It is not practical to write different kinematics for every type of machine.

This would simplify multiaxis kinematic definition by factor of 10.

I know it not a simple task, but doable.

Please Log in or Create an account to join the conversation.

More
7 years 3 months ago #139927 by andypugh
Replied by andypugh on topic TCP 5-axis kinematics

jsskangas wrote: But if you mean that it could handle basically any kinematic machine type, like:
table-table, head-table, head-head + non orthogonal varieties of these machines.


No, I wasn't meaning _that_ general. I was just asking if the pivot positions (for example) were hard-coded.
(Though perhaps that would be OK, if they were hard-coded to zero, you could set the machine homing limits to suit)

Please Log in or Create an account to join the conversation.

More
7 years 3 months ago - 7 years 3 months ago #139940 by dgarrett
Replied by dgarrett on topic TCP 5-axis kinematics
@plopes9000

Was there anything else you meant for me to test?


No -- thanks for your report!

I've merged (cherry-picked) dgarr/homing_h
to the master branch and created a new branch
dgarr/home_index_no_encoder_reset that is based on the
updated master branch. Please 1) review the changes,
2) the documentation (.txt) files, and 3) test this
branch.

When this branch is successfully tested, it can be
merged to master but it is probably prudent to wait
a week or two in case problems surface with the homing_h
incorporation.

Branch Ref:
github.com/LinuxCNC/linuxcnc/commits/dga...dex_no_encoder_reset
Last edit: 7 years 3 months ago by dgarrett.

Please Log in or Create an account to join the conversation.

More
7 years 3 months ago #139942 by plopes9000
Replied by plopes9000 on topic TCP 5-axis kinematics

dgarrett wrote: @plopes9000

Was there anything else you meant for me to test?


No -- thanks for your report!

I've merged (cherry-picked) dgarr/homing_h
to the master branch and created a new branch
dgarr/home_index_no_encoder_reset that is based on the
updated master branch. Please 1) review the changes,
2) the documentation (.txt) files, and 3) test this
branch.

When this branch is successfully tested, it can be
merged to master but it is probably prudent to wait
a week or two in case problems surface with the homing_h
incorporation.

Branch Ref:
github.com/LinuxCNC/linuxcnc/commits/dga...dex_no_encoder_reset


Will test it tonight. But have just looked at your changes and all looks good - thank you!

Please Log in or Create an account to join the conversation.

More
7 years 3 months ago #139964 by plopes9000
Replied by plopes9000 on topic TCP 5-axis kinematics

When this branch is successfully tested, it can be
merged to master but it is probably prudent to wait
a week or two in case problems surface with the homing_h
incorporation.


I'm getting an error:
Code:
paju@zx45:~/linuxcnc-dev-test/home_index_no_encoder_reset/src$ linuxcnc /home/paju/linuxcnc/configs/zx7045-prod2.9.0-test/zx7045-prod.ini LINUXCNC - 2.9.0~pre0 Machine configuration directory is '/home/paju/linuxcnc/configs/zx7045-prod2.9.0-test' Machine configuration file is 'zx7045-prod.ini.expanded' invalid command name "parse_ini" while executing "parse_ini $inifile" (file "/home/paju/linuxcnc-dev-test/home_index_no_encoder_reset/lib/hallib/check_config.tcl" line 151) check_config validation failed LinuxCNC terminated with an error. You can find more information in the log: /home/paju/linuxcnc_debug.txt and /home/paju/linuxcnc_print.txt as well as in the output of the shell command 'dmesg' and in the terminal

Please Log in or Create an account to join the conversation.

Time to create page: 2.636 seconds
Powered by Kunena Forum