Five axis kinematics / tool center point proof-of-life

222 views
Skip to first unread message

Bob Vawter

unread,
Apr 10, 2019, 1:11:15 PM4/10/19
to Pocket NC
I received my Pocket NC and have gotten a simple linked-motion demo working using the nearly-there five-axis kinematics feature. It took some hacking.

https://youtu.be/Zi8YW3Cegp0

In the video above, the G54 origin (with tool length offset configured) is set to the front right corner of the cube and the following commands were issued via the MDI:

A45 B90 X2
X0
A0 B0

It took a little bit of hacking to get this working on a fresh-from-the-box machine running V4.0.1. I had to do the following:

* Update the apt sources list to include the archived debian wheezy packages since wheezy is obsolete:
echo 'deb http://archive.debian.org/debian wheezy main' >
/etc/apt/sources.list.d/wheezy.list

* Update the machinekit source list per:
http://www.machinekit.io/docs/getting-started/APT-packages-wheezy/

* Upgrade machinekit to a newer package that includes the `comp` command in order to build and install the pocketnckins module:
apt-get update
apt-get install machinekit machinekit-xenomai

* Add the phase "Five Axis Kinematics" to /etc/dogtag

* Edit /home/pocketnc/pocketnc/Settings/features/five_axis_kinematics/kinematics.hal to comment out the lines that reference the `motion.carte*` signals.
* I haven't been able to find a reference to these signals, perhaps this constitutes some kind of inhibitory signal from a private code branch?

* Restart the pocketnc service.

* Enable space transformations (necessary due to missing motion signals above?) with
halcmd sets space-change-ok true

* Set my tool's TLO and enable it using `G43 H1`

* Set my G54 origin.

* Call 'G60' to enable five-axis kinematics.

* Issue motion commands.

I've probably missed documenting a step somewhere along the line. This took about five hours to plow through. This code isn't exactly ready for prime-time (and you of course run a much higher risk of crashes), but what's there is looking pretty good. I'll mess around with Fusion toolpaths using the TPC option to see where that gets me.

The option to just post out a five-axis part without programming in the b-table offset or having to re-post because the stock isn't exactly in the right place would be a huge usability win for the Pocket NC.

To the Pocket NC team: Awesome product! I'm willing to help further flesh this out (under NDA if needs be).

Cheers.

jo...@pocketnc.com

unread,
Apr 10, 2019, 1:53:17 PM4/10/19
to Pocket NC
Hi Bob,

I'm impressed by your determination to get this working! We did sneak some 5 axis kinematics (or TCPC) functionality into our latest major version release, v4.0.0. Unfortunately, it's not quite ready for prime time. You're right about those signals, we have a private branch with some custom changes made to MachineKit. I'm surprised it worked as well as it did for you without them. We'd love to hear how it goes for you with real tool paths. What we've encountered so far is the TCPC moves often hit a bug in LinuxCNC/MachineKit that isn't otherwise seen very often. This is the offending bug: https://github.com/LinuxCNC/linuxcnc/issues/550

We believe that once it's fixed, that we'll be able to move forward with an official five axis kinematics feature. Feel free to contact me directly if you're eager to move forward with this.

-John

Adam Lange

unread,
Dec 27, 2019, 1:42:16 PM12/27/19
to Pocket NC
I would like to develop a FreeCAD and/or pythonocc based CAM solution.  I think the two options for inverse kinematics are either the G60 route or a postprocessor.  I'd be willing to work on either but before jumping in on any one I'd like to check in on the status of this G60 project.  Has there been any progress on this front?  Any recommendations on where I should be putting my effort?

jo...@pocketnc.com

unread,
Dec 27, 2019, 5:48:00 PM12/27/19
to Pocket NC
Unfortunately, we’re still hung up on this bug fix being ported to MachineKit: https://github.com/LinuxCNC/linuxcnc/issues/550

The safest bet for now is to write your own post processor.
Reply all
Reply to author
Forward
0 new messages