Wednesday, May 29, 2013

Printing the JHack simple servo bed



Jhack's derivative of the simple servo bed seems to be an improvement over the original simple servo bed that Gael posted recently.  It is certainly simpler to mount servos in it.  It is, however, fragile, in a few places and it isn't obvious how you attach it to the forearm shell save using glue. The same can be said for the cover over the servos that fits on top of the bed.  Once glued down, it would seem to me that you'd have to tear the while forearm apart if a servo failed.  I'm probably going to try to modify that while I'm waiting for the rest of my HK15298B servos to arrive.

The simple servo bed was a touch too big for my UP! Pro 3D printer so I had to tilt 45 degrees on the vertical to fit into my print volume.  Given the height of the resulting print, I had to use the stable support option which took a lot of filament to make the support and a lot of extra print time.  You can see the finished print here.


The extent of the support structure needed is quite clear.


You can get an idea of the nature of the paper-thin support structure in this pic of the support structure being removed.


While the removal of the support structure looks like a formidable task, as a practical matter it took less than ten minutes to clean it from the print.


The cover, not pictured, required a similar support structure.  It was considerably more fragile than the bed and required greater care in removal from the support structure.  I was able to do that successfully, however.

Friday, March 22, 2013

Seating the new, larger leadscrew in the bicep

Gael quite rightly suspected that the new, stronger lead screw I developed for the bicep would clash when it tried to seat in the recess in bottom of the RotGear.  Raising the hole that the thrust collar axis seats in by 11.5 mm sorted that problem out quite prettily.


Here you can see the revised HighArmSide part that supports the thrust collar.  I've overlaid the revised design over the old.  As you can see the new mounting hole has been moved upward a bit.  I simply plugged the old hole and cut a new one in the STL file.



Here is the forearm at full extension.


Contracting the forearm towards the bicep at the elbow.


Fully contracted, the lead screw slides into the recess in the bottom of the RotGear which allows the bicep to rotate in a perpendicular plane to its axis.



A closer view.


Removing RotGear you can see the lead screw seated where the recess in the bottom of the RotGear is.


A closer look.


Wednesday, March 20, 2013

Working on the Inmoov forearm/bicep actuator.

Gael Langevin's Inmoov robot uses a lead screw/thrust collar arrangement to move the forearm with respect to the bicep. He has noted that the lead screws are rather fragile and has, apparently, bought steel replacements.  I've priced lead screws and thrust collars and they are a substantial expense.  Given the goal of keeping the InMoov robot inexpensive it would seem that we should have another look at the notion of printing a lead screw.

While trying to get the servo for the elbow joint going I discovered that the 12.5 mm lead screw printed in ABS tended to suffer a shear failure in extension quite easily if you didn't have the potentiometer and servo settings just right.  After I'd broken three of them, I decided to take a crack at seeing if I could design a more robust lead screw with a larger cross section that would resist shear failures better.





I finally got a working model going this morning.  The cross sectional area of the screw is about 4.75 times larger than the 12.5 mm original. Basically, doubled the diameter of the lead screw and doubled the diameter.

Tuesday, March 12, 2013

Progress on the bicep gear box.

Well, I redesigned the lid on the bicep gear box and got all the pieces printed out.  I discovered that to print big footprint pieces you need to recalibrate the print table when you do a big print.  That doesn't take a long time and appears to be necessary if you intend to print pieces with dimensions over about 90-100 mm.

In any case, I spent a little time upgrading the lid to the gear box so that it take much less after print hand working than it did before.  The involute profile gear and the worm gear are, of course, opposite what one has in the shoulder.  For a 3D printer, that is not a big matter.

I did notice that the axis in the gearbox for the worm gear is about 0.5-1 degree off true.  That doesn't cause any real trouble, but I will remedy that later on.






I slapped on the same servo that I'd modified for the shoulder and, of course, the leads into the potentiometer were backwards to what they needed to be.  :-)

All the same, the HS-805BB servo turned the drive shaft barrel easily without lubrication.  

I got notice from the vendor for the spare gear sets for the HS805BB that they will arrive either this Friday or next Monday or at latest onTuesday.  Of course, they'd promised to deliver them by this Friday when I ordered them.  :-D

This weekend, I hope to have the time to get test the servos on the lead screws that position the forearm and the bicep away from the body.

Monday, March 11, 2013

Printing the gear box

This is just a minor note.  I am using an UP! printer to do the parts for the InMoov robot.  Fortunately, its 120x120x120 mm print volume had been sufficient to the task.  Lately, however, I've encountered a bit of a problem since beefing up the gear box design for the shoulder and bicep.

The UP! has an iron print base with heat applied in the center.  Of course, you get a thermal gradient with such a design and the edges are considerably cooler than the center.  The larger the footprint of a print the more likely you are to get lifting at one of the corners of the print.  The new gearbox has a footprint of 110x120 mm when printed on the large flat side.  It appears that that is about the limit for ABS printed on perf board.  Two prints of the gearbox got noticeable lift on one corner of the print.  These lifts were cosmetically annoying but did not compromise the functionality of the box.

All the same, my aesthetic sense was offended, so I reoriented the print to rest on the new box structure that encloses the servo.


This alteration reduced the footprint to 55x95 mm and does not cause corner curling on the UP!  It does, however, require 40 minutes additional print time and uses about 8 cubic centimeters extra for support material.

Here you can see the printed result.



The UP! leverages the same print preparation software used in Delta Micro Factory's larger, professional printers.  The sophistication of the support structures is readily apparent in the finished print.


Removal of the paper-thin supports is a very simply matter.

Thursday, March 7, 2013

Left Shoulder Progress

Sadly, my consultancy is in a parlous state thanks to a perfect storm of crazy circumstances, so my thoughts and time have been almost completely consumed in the past month in doing everything I can to make sure that my contributions are not part of the problems my clients are facing. Over the weekend and in the odd hour this week, however, I've turned back to my project to get the left shoulder, arm and hand of Gael Langevin's Inmoov working.

I have been working on the Kinect motion capture part of the project in recent weeks while my broken UP! 3D printer was properly diagnosed by Brian Quan at X-objects and the warranty replacement parts dispatched.  On Tuesday, a full extruder head assembly arrived which enabled me to put the printer back into service.

Just before the UP! failure last month, I decided to redesign the worm gear box that is used so extensively in the shoulder.  My main objective was to create a smoother running gearbox that required less modifications after coming out of the printer to work.  Initially, I was going to do a radical redesign of the gearbox.  Eventually, however, sanity returned and I decided to make as few mods to Gael's gearbox design as I could so that other people building Inmoov could, if they wanted, use my modified box as well.

Aside from some minor mods to let the box work more smoothly with the involute profile gear and matching worm gear which I published in Thingiverse, the major problem that I wanted to address was the difficulty in assembling the box and especially in mating the worm gear to the servo.

Gael screwed the worm gear onto the servo's nylon turntable.  When I tried that, the screw heads clashed with the gearbox.  I found that when I put the screws in from the nylon turntable side, however, I had ample clearance without disturbing the basic gearbox configuration.



In this configuration it became a simple matter just to plug the servo into the back of the nylon turntable.

Placing the screw heads on the backside of the turntable did, however, create one minor clashing problem.






I had to place the screws on the next line of holes in on the turntable instead of the outside ring as Gael did.  Originally, the gearbox had a rather angular opening to accommodate the servo drive shaft.  I had to open that up a bit to let the screw heads pass properly.  This was no big matter.




Here you can see the nylon turntable and screw heads in the actual modified gearbox.




In a brief correspondence with Gael he mentioned that the weight of the arm was going to be critical to its successful operation.  That got me to worrying that we would eventually have to increase the torque to the gearboxes.  A search revealed several other servos which had much higher torque ratings available at prices either near or not too far from what the Hitech HS-805BB cost me.

I noticed that the original gearbox design depended heavily for stability on the strength of the servo box attached with screws to the gear box.  To lessen that dependence I strengthened the frame containing the gearbox so that more powerful servos could be used.





Finally, I did a little paring on the gearbox to give better clearance to the involute profile gear and the connector between the worm gear and the servo turntable.





The top to the gearbox will require some superficial modifications as well.  I used a Dremel tool with a sander to make them for this exercise and will apply the mods to the STL of the top later on.





Overall, the modified gearbox is no great departure from Gael's original conception.  I checked and it is not substantially bigger than the original and does not clash, as best as I can determine, with the bicep/shoulder assembly.

At that point I was ready to mate the servo into the gearbox and test the ensemble.  Unfortunately, I missed trimming the gear stop from the main drive gear, something that Gael very specifically showed me how to do in this pic in his assembly instructions.





That little omission cost me two stripped gears in the servo when I fired it up.  Fortunately, replacement gear sets for the HS-805BB cost about $10, so it was no big tragedy.  I cannibalized replacement gears from one of the other servos.  At that point, I discovered that what Gael thought was left and what I thought was left were two very different things.  Once I swapped the leads on the potentiometer, the gearbox behaved brilliantly!





Note that the gearbox runs smoothly without grease.  Mind, I intend to grease it when I put it in service, but for now, it doesn't need lubrication.

Monday, February 25, 2013

Sorting out the Kinect skeleton feature



The Kinect has some very clever software and firmware which enables it to capture the skeleton patterns of up to two people at the same time.  I have been tracking the progress of the Kinect since it's introduction and bought a commercial, as opposed to an Xbox release, when it became available in 2012.  With the rapid completion of the Inmoov robot print here and the successful testing of the Mini Maestro 24 servo controller with the Hitech HS-805BB servos used to move the arms and shoulders, I began to delve into the Kinect SDK.

The Kinect can capture skeleton patterns in two modes; full body...



...and upper body {seated}




Extracting the Cartesian coordinates of the bones in three dimensions is straightforward.  Being a naturally suspicious sort, however, I decided to check to see how consistent the length of the individual bones actually was.  As I suspected, they vary.  This shouldn't be surprising considering the wickedness of trying to figure out the position of bones buried in flesh and muscle starting only with surface measurements of the body and on top of that making the calculations at a rate of thirty frames per second.

Just eyeballing the captured data it appeared that the bone lengths were varying wildly.  When I took a mean and standard deviation for each bone, however, I discovered that the calculation was remarkably consistent. I made a test data set using myself as the subject.  The measurements are in meters.


Mean SD
Shoulder
Left 0.217 0.017
Right 0.218 0.013
Humerus 
Left 0.242 0.025
Right 0.241 0.026
Forearm
Left 0.235 0.024
Right 0.235 0.026
Palm
Left 0.089 0.034
Right 0.086 0.029










The numbers are not too bad.  The wrist/palm measurements are the worst.  I have extra code which I hope will give better results for the hands and fingers.

The next step will be to see if I can transform the coordinates into something more useful with the Inmoov by fixing the bone lengths to calibrated means.