Can you get me started on using LinuxCNC on a non-traditional kinematic mechanis

More
23 Jul 2024 04:13 #305885 by dave.franchino@gmail.com
Hey kind folks, 

Total newby to LinuxCNC and I'm just hoping for a nudge in the right direction. I would like to use Linux CNC to drive novel kinematic mechanism that will eventually resolve two simple XY coordinates. I do know the mathematical equations that resolve a couple of rotational joints with interesting kinematics into the XY coordinate, but I have no idea how to use that math in a way that will eventually wrote back to g codes. I'm sure there are samples of people using non-linear, non-xy mechanisms, but I'm not sure where to start. Any good resources for how I might take a kinematic macadism that is not a traditional thing? Linear XY where I know the math and get that so that g-codes will drive. They make it to properly? Sorry if this question isn't even phrased properly.  Not sure where to begin. 

Thanks!

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

More
More
23 Jul 2024 21:24 #305926 by dave.franchino@gmail.com
@aciera,  thank you very much!  - do you have experience with non-trivial kinematics?  The example in the document you sent is actually pretty close to what I'm trying to do with a few exceptions. I note that the forward and inverse transformations transform joint lengths (AB, BD) to Cartesian coordinates.  if the joints were cables wrapped around a drum, would it still be appropriate to transform cable length the cartesian coordinates or would you actually resolve that back to stepper motor steps in order to define a cable length?

 

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

More
24 Jul 2024 05:28 #305944 by Aciera

if the joints were cables wrapped around a drum, would it still be appropriate to transform cable length the cartesian coordinates

Yes, as long as the cable gets wound up uniformly (ie the coil does not change diameter due to stacking of the cable on the drum).

or would you actually resolve that back to stepper motor steps in order to define a cable length?

This is done in the [JOINT_n] section of the ini file. The 'STEP_SCALE' value defines how many steps the motor needs to rotate to move the joint one machine unit (inch/mm).

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

More
02 Aug 2024 01:36 #306692 by dave.franchino@gmail.com
Sorry for the newby questions... Where does the code for non traditional kinematics reside?  I'm pretty sure we've derived the forward and reverse joint transformations but not exactly sure where these are stored? 

Thanks

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

More
02 Aug 2024 07:21 - 02 Aug 2024 07:31 #306700 by Aciera
Custom kinematics written in C can be found in 'src/emc/kinematics'
github.com/LinuxCNC/linuxcnc/tree/master/src/emc/kinematics

Generally I would suggest to write custom kinematics as a component (.comp). Unless of course you have a compelling reason to use C (and know it well enough). See examples like github.com/LinuxCNC/linuxcnc/blob/master...onents/millturn.comp
or the more complex
github.com/LinuxCNC/linuxcnc/blob/master.../xyzab_tdr_kins.comp

For the latter there is a paper with documentation:
forum.linuxcnc.org/10-advanced-configura...mill?start=80#263694

[edit]
to compile and install a custom kinematic file:
halcompile --install <path/your_component.comp>

(prepend 'sudo' if you are on a package install):
Last edit: 02 Aug 2024 07:31 by Aciera.

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

More
09 Aug 2024 20:25 #307383 by dave.franchino@gmail.com
Sorry... another newb question.

I have written and understand the need for a reverse transformation that converts a desired X,Y location to joint rotations (I have a simple 2-axis system).

We are running in open loop so there is no feedback.

Is there a reason LinuxCNC needs the "forward transformation" (which if I understand correctly, would convert a known joint rotation to LinuxCNC to a specific X,Y location. in an open loop system, what purpose does having both a forward and reverse transformation in your kinematics file do?

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

More
10 Aug 2024 09:32 - 10 Aug 2024 09:35 #307409 by Aciera
I think there is actually a way to run linuxcnc using only forward or inverse kinematics using the 'kinstype=' parameter but I have not experimented with that at all:

See 'trivkins - generalized trivial kinematics' section:
linuxcnc.org/docs/stable/html/man/man9/kins.9.html

I'm not even sure if this would have any meaning in a non-trivial kinematic.
Last edit: 10 Aug 2024 09:35 by Aciera.

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

Time to create page: 0.136 seconds
Powered by Kunena Forum