Close

Round and round.

A project log for Arcus-3D-P1 - Pick and Place for 3D printers

Open source, mostly 3D printable, lightweight pick and place head for a standard groove mount

masterofnullMasterOfNull 09/09/2018 at 08:170 Comments

Part rotation responds to joint position commands, but won't work as the C axis.  The reason is simple.

Tripod kinematics in Machinekit doesn't pass it through, and worse... explicitly sets the ABC axis position to 0.

I modified the source to fix it.  Took like 2 minutes.  But now I've now blown most of the night trying to get my build environment set back up for cross compiling Machinekit for the Debian Stretch armhf flavor which runs on the BBG.  

It doesn't work.. I didn't isolate the libraries properly, so I'm pulling in wrong versions of stuff.

So I just bailed and went the other route of just compiling it locally on the BBG, but for the life of me I can't get the my laptop connection shared out to it over USB.  I've done this literally hundreds of times, but my scripts/the old steps don't work anymore and I have no idea why.  I must have updated something and broke it.  

EDIT: Tried the same steps on the Pi, and they work fine.  Going that 'route'...  I crack myself up.. Now it's just a matter if I can fit the entire build environment and a swap file in the 1 gig I have remaining on the onboard flash.

I could always just resort to plugging it into my micro-router, but now this is personal.

However, I have figured out all my Machinekit related issues:  

Got to play with the camera, and discovered I really need to split my lights to run on two seperate mosfets.  The glare from running both lights in parallel completely overwhelms the bottom vision.  I'm redesigning the flippy part of the light too a bit while I'm at it.

Here is a little video of most of what works now, with me manually putting in the appropriate M and G codes, and manually stepping the joint position for part rotation in 10 degree increments.  I'm still about half a degree off on my scaling for the negative side of the C axis rotation, and I believe my limit settings also need to be scaled now as I can't go a full 180 anymore.  For a first try though here, it was actually pretty close.

I also ended up replacing my dirt cheap mirror flip servo with a proper one.  I tried to design the mirror arm to tolerate a pretty wide range of error and still stop centered, but what can I say.  The knock-off servos just suck that badly and the brand name ones behave a whole lot better.  They were ok at 50Hz update rate, but when I switched to 400Hz, they got worse.

I think I'm going to relegate the knockoffs to just powering the tape feeders, where they just do the grunt work of pulling back the lever and no accuracy is required at all.

Discussions