- Posts: 4819
- Thank you received: 0
[SOLVED] Command to Move in Joint mode
Is there a way in Gcode to command a move in Joint mode instead of world mode?
Thanks
Please Log in to join the conversation.
does the other Joints follow
you can switch the Mode via a UserMcode
so you can get there a efficent joint or world move
Please Log in to join the conversation.
With LinuxCNC 2.8 joints and axis are separated. This way a gantry can have two joints (or motors) for one axis. Although you would probably not want to move them independently in this case.
Now for a robot moving individual joints independently is quite important because the mathematical calculations behind a move in XYZABC (world coordinates) cannot handle certain moves of the arm.
So when we program a robot we can choose to execute a move in linear-interpolation or in joint-interpolation. If I have to manually jog the robot in joint mode to a new position the use of LinuxCNC for robot applications would be severly limited.
It would look something like this:
G0 J1 90° J2 22° J3 -40° J4 0° J5 -12° J6 360°
Really there would only be something like a rapid move (G0) and a move with a speed command attached (G1)
Please Log in to join the conversation.
If anybody has this already set up for a robot arm I would be very interested to hear how that is working out.
Please Log in to join the conversation.
forum.linuxcnc.org/10-advanced-configura...tics?start=90#124898
Though I am not sure that this is the best way to do it. It seems that it should be possible to do it inside LinuxCNC independent of the kinematics in use.
Please Log in to join the conversation.
However the kinematics seem to be limited to the 5-axis machine set up. I would need to change this to my 6-axis robot and
when I now try to halcompile genserkins.c I get an error "KINS_NOT_SWITCHABLE". As this line has been added to the genserkins.c file.
So it looks to me that the switchkins-branch is not compatilble with genserkins and this is then a dead end for my purpose as I essentially need to switch from genserkins to trivkins.
Please Log in to join the conversation.
The dgarr/s_kins branch now includes a kinematics moduleI'm playing around with the switchkins-branch ...
(genser-switchkins) for testing:
1) implements genserkins kinematics by default
(6 revolute joints)
2) is switchable to identity kinematics using joint
assignments set by the module parameter 'coordinates'
3) M428 command selects genser kinematics
4) M429 command selects identity kinematics
The only intree sim config using genserkins (puma560.ini)
has been used as the basis for a test config using:
1) [KINS]KINEMATICS=genser-switchkins
2) [RS274] section uses remap_subs for M428,M429
3) [HAL]HALCMD = net :kinstype-select ...
connects motion.switchkins-type pin to an analog out pin
used by M428,M429
4) [HALUI]MDI_COMMANDS provided for pyvcp buttons
sim config is puma560-switchkins.ini:
github.com/LinuxCNC/linuxcnc/blob/dgarr/...ma560-switchkins.ini
Notes:
github.com/LinuxCNC/linuxcnc/blob/dgarr/...ma560-switchkins.txt
The branch is force-pushed when changes are made.
The new kinematics module has not been tested on
hardware, if you test, please let me know --
dgarrett at panix dot com
Please Log in to join the conversation.
Did you edit genserkins? Both genserkins and trivkins function need to be in one kinematic modules.Aciera wrote: I'm playing around with the switchkins-branch and it is basically what I am looking for.
However the kinematics seem to be limited to the 5-axis machine set up. I would need to change this to my 6-axis robot and
when I now try to halcompile genserkins.c I get an error "KINS_NOT_SWITCHABLE". As this line has been added to the genserkins.c file.
Please Log in to join the conversation.
I just tried to halcompile the original .c file before I would start to make changes. As my programming abilities in C are rather limited my attempts are still pretty rough.
Ultimately my vision would be to be able to switch between three different kinematics: JOINT, Cartesian-WorldCoordinates and cartesian TOOL-COORDINATES but I have no idea how much of an effort an additional kinematic switch would require, let alone if I would ever be able to code that myself.
Please Log in to join the conversation.
refactored at commit eacbb7926 to share common routines
using a new file: genserfuncs.c. The functionality of the
provided kinematics modules (genserkins,genser-switchkins)
are not changed.
Please Log in to join the conversation.
