This week, I designed a kinematic coupling; thought about stiffness measurement and machine controllers; and looked up differential wedge-drive stages.
PUPS 4/Lab 4
This week, I’m traveling over the weekend starting Friday – so my primary functional requirement for my kinematic coupling was simplicity! However, I still wanted to produce a reasonably functional kinematic coupling for low-load applications. I started my design process by focusing on what appropriate materials I could source easily/without having to wait for Bal-Tec to ship. The immediate choices for kinematic components that fit these descriptions are precision-ground, hardened rods & balls – they are dirt cheap, available everywhere, and can be easily mounted to other components with steel- or glass-filled epoxies. Using rods instead of vees increases the Hertzian contact stresses present in the coupling, but at my expected load levels I wasn’t too concerned about this. I designed a waterjet-cut frame which would locate the components in slots and holes, with a 60-degree contact angle. The frame is designed as two nested components to reduce material consumption, and has a M5 hole at the center of the upper mount to allow it to be mounted to other objects. The intent was that in a reasonably well-stocked machine shop, this coupling could be designed and built in under 6 hours (including epoxy cure time).
I was able to source 1/4″ ground steel dowel pins, and 1/2″ aluminum plate stock to build my base from. I then ordered 1/2″ 440C stainless (to reduce fretting corrosion) balls (which are an outrageous deal – $6 for 10 balls, hardened to C58, and ground to +/- 0.0005″), and started building! After waterjetting out the frame, I cleaned the upper mounting surfaces of the frame plates and the outside surfaces of the precision components with alcohol, placed the components in their mounting slots, and applied DEVCON steel-filled epoxy to the corners where the two components meet. I’m also going to pot the undersides of the components (through the mounting slots) later.
Unfortunately, the balls I ordered didn’t arrive in time for me to install them (my fault – I didn’t realize the mailroom closed at 3), and so I haven’t been able to measure the stiffness, repeatability or accuracy of my coupling. However – I will have the balls on Monday, and will be conducting the following tests:
- Accuracy: My review group spent a long time discussing what the “accuracy” criteria for a kinematic coupling is – unlike a linear stage, it only has one position that it can assume. We came to the conclusion that accuracy defines how close a given point on the coupling’s frame comes to that point’s designed location, meaning that accuracy primarily captures component & manufacturing process accuracy. In the case of my stage, I expect that the top face of the stage should be 36.898 mm from the bottom face – I’ll be checking this with a height gauge on a surface plate, as shown below (1-2-3 block is there to serve as a height offset). (Aside: As a preliminary check, I did measure the height of the top surfaces of the dowel pins. They are supposed to be 0.684″ above the bottom of the stage: they measured from .674″ to .681″, with the height difference between pairs of pins being extremely close (around .0003″))
- Repeatability: To determine repeatability, I’m going to place a precision (.0001″) dial test indicator so that it indicates on the bottom surface of the upper plate. I’ll then bolt roughly 10 N of weight to the top of the upper plate, and insert and remove it a few times, measuring the deviation from the nominal position each time. Time permitting, I may also experiment with angular repeatability, by mounting a laser pointer on top of the stage, shining it at a wall a large distance (~5m) away, and then removing & reinstalling the stage while measuring the error in the laser dot’s position.
- Stiffness: Finally, to determine stiffness, I’ll place additional (known) weights on the stage while the DTI is indicating on the underside of the stage, and measure the deflection at each load. Especially given my low preload, I’m expecting to see a fairly non-linear deflection profile.
Once I’ve done these tests, I’ll close the design loop by modifying my spreadsheet to accurately reflect the geometry of the device (particularly including non-parallelism between the two parts of the coupling). If stiffness is substantially lower than expected, I’ll also try to identify the source of the compliance – I’m particularly curious about the quality of my epoxying technique.
Update 2016-02-29: I was home sick today, but still managed to finish and test my coupling! Here’s the final product:
I’ve updated my design spreadsheet with the data, but here’s the summary:
- Accuracy: The coupling is .021″/0.53 mm shorter than expected. This isn’t exactly surprising, given that the coupling’s height relies on the X/Y accuracy of the waterjet (which is old and janky).
- Repeatability: Over 10 trials, I got a measurement range of 4 microns, and a standard deviation of 1.2 microns.
- Stiffness: I found an average stiffness of 3470 N/mm, and saw some limited evidence of the nonlinear stiffness behavior expected with this type of coupling (and my low preload). My set of weights really isn’t the best, though (either 1-2-3 and vee blocks, or machine vises) – I’d like to redo with higher weight resolution.
Final Project Development
I’ve decided to go ahead with my mill CNC conversion! I’m really excited to be working on this project – it’ll give me an opportunity to characterize the bananas out of my mill, really focus on highly rigorous applications of the techniques that we’re learning in this class, and give me a super useful tool once I’m done.
This week, in my spare time, I worked on two separate problems:
- Stiffness Testing: As I mentioned last week, I’d like to directly measure the static stiffness of my machine’s existing frame and bearings. These are components that I don’t (really) have any control over in my error budget, so I’d like to pin those values down as tightly as I can. To do this, I’ll need to be able to apply a known force between the workpiece (effectively, the machine’s table) and the tool, in multiple orientations (at a minimum, X/Y forces and Z forces that push the tool away from the table).There are a couple different ways I’ve thought of to do this, including pulleys and known weights, but I’ve convinced myself that the most useful tool for solving this problem will be a device that uses a screw, spring and load cell in series to apply a known force with reasonable force resolution. The tool can be mounted in different orientations simply; can have its resolution adjusted by swapping out springs and load cells; and can be used to measure other machines in the future.Here’s a sketch of the design I’m working on right now. I’ve identified & ordered a urethane die spring, 200kg load cell and 1/2″-20 screw for the system, and am now laying out the device’s frame. According to my calculations, with this screw, I should be able to apply force in increments as small as 20 N (4 lbf). The diameter/length ratio of the components means that buckling should not be a concern, but I’m going to add some removable acrylic covers to either side of the device to protect against this possibility regardless.
- Machine Controllers: I also started looking at options for machine controllers, and what these options mean for the rest of my component selection. The controllers that I’ve found so far are:
- Mach3 + interface
Of these options, GRBL and Mach3 are (probably) the best known. Mach3 is *much* more expensive than the others, and is not open-source. LinuxCNC is incredibly reconfigurable, but is much less user-friendly.
Researching these controllers also got me thinking about what mechanical features are important to me. I want my machine to be able to be used as both a manual and a CNC machine – but I also want to make sure that the “feel” of the machine in manual mode isn’t impacted by the presence of the motors. Ideally, I would use DC motors and on-machine axis position sensors, to provide closed-loop position & velocity control, DRO readout, and minimal cogging. Unfortunately, none of the low-cost controllers support closed-loop motor control, and I’ve already been able to source two Geckodrive G723 5-amp NEMA23 steppers, which are super nice. However, there are major downsides to stepper motors, including their cogging behavior and ability to lose steps under high load. Currently, I’m thinking that what I’ll wind up doing is using the steppers with one of the low-cost controllers, but then also implementing a second control system that reads absolute position encoders; runs the DRO; and compares the current absolute position measurements to the position reported by the stepper controller & stops the machine if it loses steps. I’m going to need to do some more analysis first, though – I’m still not sure if the motors I’ve found are going to be strong enough! (I’ve also tried to capture all of this in my current FRDPARRC table, visible here)
For Seek-And-Geek this week, I tracked down a device that I’d seen a few weeks ago in FUNdaMENTALS – the Bell-Everman KAOS stage:
When I initially saw the KAOS stage in FUNdaMENTALS, I was confused – it was in a section about differential drive systems executed with screws, but I didn’t actually see any screws, or any obvious differential mechanism, in the images (in retrospect, I should have flipped the question and asked, “if there IS differential motion in this stage, where would the screws need to be to create it?”). However, as soon as I saw the full image of the stage, I immediately understood. Two carriages are mounted to a common linear rail (the horizontal one in the picture above. Each of these carriages has a linear rail mounted on top of it at some angle (ensuring that the two rails are not parallel), and the stage itself is mounted to both linear rails. When the two carriages move together, nothing interesting happens – the stage simply moves with them. However, when there is differential motion between the carriages, the stage will move laterally as well, since the distance between the rail mounts on the carriage are fixed. In the design shown above, if the carriages move towards each other, the stage will move backwards (into the page) – if they move away from each other, the stage moves forward (out of the page).
In this design, I suspect that the most important parameter to tune was the angle of the second-stage rails. There are actually two parts to this. First, the angle between the first-stage linear rail (the one that the carriages ride on) and each one of the second-stage linear rails determines the mechanical advantage that the second-stage rails have on the first-stage rail (they’re basically inclined planes), and by extension, what the efficiency of the lateral drive stage is. Second, the relative angle between the two second-stage rails determines the resolution of the lateral motion – larger angles will produce smaller amplifications of differential motion.
I’m fascinated by applications of differential motion, and particularly by how they can be extended to support novel mechanisms. My work at Barrett Technology introduced me to the use of differentials in cable drivetrains & in robots, where they help reduce moving mass and improve colocation of multiple joint axes. Someday, I’d love to circle back to this design area – maybe even to build a triple differential, which would colocate three separate rotational axes.