[DONE]Testers needed for integration of switchable kinematics

More
31 May 2021 17:59 - 08 Jun 2021 07:14 #210809 by Aciera
An updated branch for switchable kinematics has been made available here:

github.com/LinuxCNC/linuxcnc/commit/d0ae...78619c1aa6019c33214d

The branch can be installed using a 'scratch' deb from the buildbot. See the instructions at
buildbot.linuxcnc.org/
The 'scratch'-debs can be found in the last section of the page sorted by distributions. They are built automatically by the buildbot and are available for a limited amount of time.

Or to build the branch as a run-in-place (rip) install (Note that for this you will need to have all the required dependenies installed to compile LinuxCNC):

$ git clone git://github.com/linuxcnc/linuxcnc.git linuxcnc-s_kinsv2-dev
$ cd ~/linuxcnc-s_kinsv2-dev/src
$ git checkout dgarr/s_kinsv2
$ ./autogen.sh
$ ./configure --with-realtime=uspace
$ make && sudo make setuid
$ source ../scripts/rip-environment

This branch adds the capability to switch between two (or more) different switchable kinematic modules inside a GCODE program using M codes. This functionality can be used for machines where post-homing joint control is needed during setup or to avoid movement near singularities from gcode. Such machines use specific kinematics calculations for most operations but can be switched to identity kinematics for control of individual joints after homing. This is very useful when using non-trivial kinematics such as 5axis milling and is essential for industrial robots.

The following switchable kinematics modules have been included in the branch:
Warning: Spoiler!


The following sim configs can be found in the directory 'configs/sim/axis/vismach':
Warning: Spoiler!


Please note that any user-created/user-modified kinematic modules will need to include these required elements in order to function (Kinematic modules that come with the distribution already comply) :

Warning: Spoiler!


The easiest way to create a custom kins module is to adapt the hal component userkins (added oct 2020). This template component can be modified locally by a user and can be built using halcompile (instead of c) so should be much simpler for many users (plus no Makefile mods required). The component should be able to do almost anything a c-file-based kinematics module can do.

Any test of non-trivkins kins and any test that exercises a gui is helpful especially since different users may use guis in different ways and find errors or unexpected behavior. Of particular interest are servo systems to test for thudding or following errors when switching kinematics.

It would be nice if users with experience in 5axis machining could review the 5axis sim configs mentioned above and in particular the setting of the rotation points.

Reviewing the switchkins documentation for accuracy/completeness would be useful:
github.com/LinuxCNC/linuxcnc/blob/dgarr/...otion/switchkins.txt

and also the README and .txt files in the switchkins sim config directories would be helpful too.


Personally, I believe this is a very useful feature and I'd like to get this included as a permanent feature in LinuxCNC.

Please report any findings and successfull tests in this thread.

Thanks
Last edit: 08 Jun 2021 07:14 by Aciera. Reason: Formatting , fixed an error in the rip build process, fixed expired link to documentation
The following user(s) said Thank You: arvidb, tommylight

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

More
01 Jun 2021 06:46 - 01 Jun 2021 16:01 #210860 by Aciera
One thing I notice is that if I try to load a config that uses classicladder it fails.
Opening classic ladder in gmoccapy gives an error:

"Classicladder real-time component not detected"

[edit]
I just built the current master and classic ladder doesn't work. So something has gone wrong there.

[edit2]
Issued a bug report about broken classicladder on github
Last edit: 01 Jun 2021 16:01 by Aciera.

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

More
01 Jun 2021 09:36 - 01 Jun 2021 09:37 #210871 by Aciera
I managed to get my drives working without needing Dmitry to put his patch on the source code. Turns out I can get his driver installed using halcompile and I got homing working using a workaround with the inbuilt functionality for absolute-encoders.

So this makes it a lot easier for me to test any updates on the branch. Also I can now start with tests on my servo system since my other mill (with stepper motors) needs classicladder support.
Last edit: 01 Jun 2021 09:37 by Aciera.

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

More
01 Jun 2021 12:04 #210880 by Aciera
In the switchkins documentation :
buildbot.linuxcnc.org/doc/scratch/v2.9.0...tion/switchkins.html

4.2. Gcode/Mcode commands

in the gcode sequence

I think this:
M68 E3 Q1 ;update analog-out-03 to select kinstype 0
should maybe be:
M68 E3 Q0 ;update analog-out-03 to select kinstype 0


6. User kinematics provisions

Maybe there could be a note that userkins.comp will not (as I understand it) produce a switchable kinematic?



7. Warnings

Two Typos, should be:

2. Reading the _digital_ input
3. Aborting (M2) the gcode _program_ ...
The following user(s) said Thank You: tommylight

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

More
01 Jun 2021 21:45 #210920 by andypugh
I haven't been following this, can you point me to a discussion of the use-case for switchable kinematics?

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

More
02 Jun 2021 05:55 - 02 Jun 2021 05:59 #210960 by Aciera
switchable kinematics was inspired by this thread on 5axis simultaneous machining:
forum.linuxcnc.org/10-advanced-configura...kinematics?start=220

Also here is my application for a serial manipulator where switchable kinematics is not only useful but essential to overcome the limitations of the kinematic involved:
forum.linuxcnc.org/38-general-linuxcnc-q...lity?start=10#192821

Note that there aren't many users of non-trivial kinematics and even fewer are regular contributors on the forum. I have however helped a few to install the switchkins-branch for use on 5-axis mills.
The ability to switch between trivial and non-trivial kinematics is a major contribution to anybody working with advanced kinematics.
Last edit: 02 Jun 2021 05:59 by Aciera.

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

More
02 Jun 2021 07:54 #210976 by cmorley
Would switching between C axis milling and regular spindle control on a lathe be an application (or make it simpler)?

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

More
02 Jun 2021 09:54 #210983 by Aciera

Would switching between C axis milling and regular spindle control on a lathe be an application (or make it simpler)?

Interesting question. I guess we would have to ponder how a change in the kinematic model might be helpful (ie. lathe to milling)

I've though about converting the A-rotary on my knee mill to an A-rotary/lathe-spindle. A milling operation would still be a regular XYZA setup. If I then changed the mill bit to a lathe tool the Z (milling) would become the X (lathe) and the X (milling) would become the Z (lathe).
I could see this to be an application of switching between two trivial kinematics.

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

More
04 Jun 2021 00:50 #211116 by cakeslob
So, within a program I can switch between joint, world and tcp?
something like this rough example?
m68 world
world moves
m68 joint
joint moves
load subroutine that doesnt specify kins type
joint moves

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

More
04 Jun 2021 11:14 - 04 Jun 2021 11:28 #211140 by Aciera

So, within a program I can switch between joint, world and tcp?


Correct.
M429
world moves
M428 
joint moves
load subroutine that doesnt specify kins type
joint moves

Note that it doesn't have to be joint, world, tcp. It could also be a switch between mill and lathe kinematics that basically just swaps X and Z axis. This way you can use standard GCODE for milling and lathe work on the same machine in the same program. Im working on a sim config for just such a mill-turn setup.
Last edit: 04 Jun 2021 11:28 by Aciera.
The following user(s) said Thank You: arvidb

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

Time to create page: 0.127 seconds
Powered by Kunena Forum