TCP 5-axis kinematics
Where do the following points lie in space?
setp xyzbc-trt-kins.x-offset 0
setp xyzbc-trt-kins.y-offset 0
setp xyzbc-trt-kins.z-offset 0
setp xyzbc-trt-kins.x-rot-point 160
setp xyzbc-trt-kins.y-rot-point 0
setp xyzbc-trt-kins.z-rot-point 0
Please Log in or Create an account to join the conversation.
xyzbc-trt-kins (switchkins)
Uses remapped user m codes for kins switch:
M429: Identity Kinematics
M428: XYZBC (TCP)
M430: userk Kinematics A
hal net is required to connect the analog out pin N,
Example (for N=3): net :kinstype-select <= motion.analog-out-03net :kinstype-select => motion.switchkins-type
Hal Input pins:xyzbc-trt-kins.x-offset, xyzbc-trt-kins.z-offset:
X and Z offsets are the offsets from the center of rotation of the B axis relative to the center of rotation of the C axis.
Hal Input pins:xyzac-trt-kins.x-rot-point, xyzac-trt-kins.y-rot-point, xyzac-trt-kins.z-rot-point:
X, Y and Z rot-point pins represent the offsets of the center of rotation of the C axisrelative to the machine absolute zero
But I'll say it again if your machine has indeed a rotary/tilting spindle then the -trt kinematics will not work for you. The math in the -trt kinematics is not going to work for an -srt machine.
Please Log in or Create an account to join the conversation.
Please Log in or Create an account to join the conversation.
linuxcnc.org/docs/2.8/html/motion/5-axis-figures/Figure-11.png
Then you should try '5axiskins'. Have a look at the simualtion at /configs/sim/axis/vismach/5axis/bridgemill
If you have a setup like one of these (ie a tilting/rotating mechanism on the machine table) then either 'xyzac-trt' or 'xyzbc-trt' will be useful to you:
linuxcnc.org/docs/2.8/html/motion/5-axis-figures/Figure-3.png
linuxcnc.org/docs/2.8/html/motion/5-axis-figures/Figure-7.png
There are also mixed types. If you are still unsure then please post a picture of your machine.
[edit]
There is also documentation on a XYZBC-SRT kinematic by the same author who contributed the xyzac-trt and xyzbc-trt kinematic: forum.linuxcnc.org/media/kunena/attachme...5-axis-machines2.pdf
[edit2]
I made a simulation from the documented xyz-srt kinematic mentioned above and, as far as I can tell, it does basically the same as '5axiskins' does in the 'bridgemill' simulation config.
Since I don't really have any hands on experience with 5-axis machining I can't say more than that.
Attachments:
Please Log in or Create an account to join the conversation.
So should i go back to 2.8.2?
Please Log in or Create an account to join the conversation.
No, I think you would want to use the master version as you might find the 'switchable kinematics' feature useful.So should i go back to 2.8.2?
Please Log in or Create an account to join the conversation.
Dimensional drawing in the photo.
Please Log in or Create an account to join the conversation.
Inside '5axiskins.c' you will find some commentary and the definition of the DEFAULT_PIVOT_LENGTH that you will probably want to change to 160:
/********************************************************************
* Description: 5axiskins.c
* kinematics for XYZBC 5 axis bridge mill
*
* Derived from a work by Fred Proctor & Will Shackleford
*
* Author:
* License: GPL Version 2
* System: Linux
*
* Copyright (c) 2007 Chris Radek
*
* Notes:
* 1) pivot_length hal pin must agree with mechanical
* design (including vismach simulation) and augmented
* with current tool z offset
* (typ: mechanical_pivot_length + motion.tooloffset.z)
* 2) C axis: spherical coordinates aziumthal angle (t or theta)
* projection of radius to xy plane
* 3) B axis: spherical coordinates polar angle (p or phi)
* wrt z axis
* 4) W axis: tool motion. Negative values increase tool radial
* motion example: drilling into body at b,c angles
* 5) W axis motion is incorporated into the motion of the
* joints used for X,Y,Z positioning and no motor or
* hal pin connections are required for the joint specified
* as JW. However, a joint must be configured for W to
* support display of the W axis letter value for
* complicated reasons. (motion/control.c computes joint
* positions only for the number of configured kinematic
* joints (NO_OF_KINS_JOINTS) and the joint positions
* are needed to display axis letters via inverse
* kinematics.
* 6) If no coordinates module parameter is supplied, kins
* will use the required coordinates XYZBCW mapped
* to joints 0..5 in sequence.
* 7) Multiple joints may be assigned to an axis letter
* with the module coordinates parameter
* 8) If a coordinates module parameter is supplied,
* the kins will map coordinate letters in sequence
* to joint numbers beginning with joint 0.
* 9) Coordinates XYZBCW are required, AUV may be used
* if specified with the coordinates parameter and will
* be mapped one-to-one with the assigned joint.
********************************************************************/
// non-required coordinates (A,U,V) can be set by using
// the module coordinates parameter
#define REQUIRED_COORDINATES "XYZBCW"
#define DEFAULT_PIVOT_LENGTH 250
Note that this kinematic creates a hal-pin called 'pivot_length':
struct haldata {
hal_float_t *pivot_length;
Make sure you provide the required value (ie your 160mm plus any tool-length offset) in your hal. As in the file '5axisgui.hal' in the 'bridgemill' simulation configuration. You will probably want to remove the stuff for the vismach script so you will end up with something like this:
# compute pivot-length needed for 5axiskins
loadrt sum2 names=pivotsum
addf pivotsum servo-thread
setp pivotsum.in0 160
net :tool-len <= motion.tooloffset.z
net :tool-len => pivotsum.in1
net :pivot-len <= pivotsum.out
net :pivot-len => 5axiskins.pivot-length
Please Log in or Create an account to join the conversation.
hi all,
I am building the scara robot.
The switch kins is very good.
I want to move the scara in joint mode, but I want to use the position and Gcode in world mode.
When I run a gcode, it will calculate the position to know the angle of joins, after it move joins.
any idea helps me.
thank you so much
Please Log in or Create an account to join the conversation.
Scarakins should take care of calculating cartesian position from joint angles (forward kinematic) as well as calculating the joint angles for a given cartesian position (inverse kinematic).
The switch kins feature will let you switch between 'joint' mode and cartesian 'world' mode.
Please Log in or Create an account to join the conversation.