Showing posts with label Inmoov. Show all posts
Showing posts with label Inmoov. Show all posts

Sunday, July 21, 2013

Twenty five mm diameter is possible

I was able to print the components for a 25 mm diameter planetary gearbox on my 3D printer.  The only question that remained was whether I would be able to scale down the monofilament reel from 42 mm diameter to 25.  




As it turns out, I could.  The bevel gear pair and reel spool sized down quite nicely.  I've never printed gear teeth that fine on a 3D printer before.  These are functional.

Friday, July 19, 2013

Since early June

Since early June I've pretty much off the grid with the Inmoov project.  That is, off the grid, but not inactive.

Back then, I was busily modifying JHack's 5 servo rack.  This brilliant little design had the servos spring loaded with small magnets and Hall effect sensors to give a measure of the force of the grip of each hand on a held object.




The further into this exercise I got the more I began to question what I was doing.  I think the turning point came when I looked at Gael's finger testing rig.  You can see what happens in this little vid of his.





You can see that Gael, like most makers of mechatronic hands uses a single servo to mimic the two tendons leading from the fingertip to the forearm.  The problem is that a human finger has not one, but two tendons on the palm side of the hand, not one.




This says that you need at least two servos to give the full range of motion for a finger, not one, not to mention the small muscles in the palm which allow humans to move individual fingers laterally.  In fact, the human hand is controlled by some thirty five muscles, eighteen in the palm and seventeen in the forearm which control hand movement via tendons which go through the wrist into the hand.

Looking back at the JHack illustration at the beginning of this post, you see five servos and don't see two others nearer the wrist.  Obviously, hand and wrist motion is only going to be an approximation of what a human can do.  You can get smaller servos, but then you run into a problem that they're not powerful enough to give you a useful grip.

Gael has recently been exploring thickening the palm with servos.  The approach has been successfully applied more than once, but still begs the problem of that extra tendon needed on the palm side of each finger.




My approach has been somewhat different.  It seems obvious to me that we need a more compact linear force system than hobby servos can supply.  The obvious answer is linear piezoelectric motors.  The cost of those which can be applied to our needs runs in the vicinity of $800-1,000, though, and controlling linear piezoelectrics is a whole different game.  Imagine buying thirty four of those for each hand.

I decided to give hobby servos a closer look.  They basically consist of a motor, a gearbox, a potentiometer and some electronics.  When you take one apart this is what you see.





These servos were designed to operate the control surfaces of radio-controlled model airplanes, not robots.   They are modular, which is useful, but greedy for volume.  My colleague and friend, Andreas Maryanto who lives in Borneo and works on a project he calls Dexhand, tells me that the Japanese have gone over to using simple gearmotors.

I found that if I look at just the parts in a servo, I could reduce the space requirements considerably by stripping out the electronics and relocating that in the thorax.  Once that's done, we have an awkward gearbox in our way.   It struck me that the gearbox should be no bigger in cross section than the motor.  For serious work the old planetary gear box would suit that closely. After several false starts, I found one that was fairly solidly designed, though far too large.




Planetary gearmotors are relatively abundant on the market, though a bit expensive.  You can get them from as small as 6 mm in diameter on up.





I finally purchased a pair of Tamiya planetary Gearbox sets.  While larger than I would have liked at 28 mm diameter the Tamiya gearmotor was both powerful and allowed you to choose your own gear ratio.





Ordinary muscles sense tension, not position, so I decided to measure that instead of using a potentiometer.  Using the Hall Effect sensor, magnet and spring scheme that JHack used, I designed a sensor to enclose a spring.



The spring had a fairly linear compression ratio from 0-3.5 kg.  Unfortunately, while the Hall Effect sensor was linear with regards to the magnetic field encountered, it was not linear with regards to the distance from the magnet.





I was eventually able to calibrate it, however.  That done I had to design a takeup reel for the "tendon" connecting the gearmotor to the finger.




The resulting ensemble was big and bulky but demonstrated the configuration.




That done, I began a second iteration of the design of this artificial muscle aimed at trimming the sizes of the components.  Currently, I am working on the planetary gear box., that being the most expensive item in the ensemble.  Arriving at a design which borrows both from the mcentric design on Thingiverse and the Tamiya gearbox, I have been able to produce a working 25 mm diameter gearbox which has a reduction ratio similar to the Tamiya gearbox.




I am using small nails for the axles of the planetary gears.  The 4:1 reduction stages that you see in the picture are prototypes.  I will be reducing the length of those considerably as work continues.  Reducing the diameter of the gearbox will prove more difficult.

The current 25 mm diameter gearbox reduces the cross sectional area of the servos in the forearm by a bit more than half and presents a much less awkward cross section to work with than conventional servos.

The Hall Effect sensors cost about $1.50 retail and the magnets and spring about about $0.50 each.  Motors of the power required can be had surplus for about $0.50 each.  Except for the monfilament, wiring and electronics, the rest can be printed.


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.

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.

Saturday, February 23, 2013

Kinect Progress 13-02-23



This morning, I got a note from the UP 3D printer people that they wanted to do a Skype video session to put my printer right.  I thought they meant right then, but was wrong, apparently.  While the new extruder heater block helped matters it didn't fix my UP.

In the meantime, I worked on the Kinect motion capture task.  I have it capturing the upper torso, head and arms and transferring it to a disk file.  My programme is very crude.  I simply identify the joints and put the coordinates in a list box.  Surprisingly, my PC and Visual Basic 2010 is able to keep up with the 30 frames/second that the Kinect does that process at with no effort whatsoever.  After I record a session, I simply save the XML formatted information to a file.

My next task is to restrict the saved output to the left upper torso, shoulder and arm and to covert the cartesian coordinates to joint specific coordinate systems which match the kinematics that Gael has designed into the Inmoov arm.

Monday, February 18, 2013

Kinect is active


I was able to get Kinect going and run it through most of its paces.  It can capture a 3D radar image out to about 4-5 meters as you can see with this colour coded screen grab.




This perspective projection gives you, perhaps, a better feel for the depth of the space.




Oddly, it flips the data from left to right.  I don't know what that is about yet.


It does face tracking down to about a meter away from the Kinect and skeleton tracking down to about 2 meters.  I was unable to capture that with the very primitive Visual Studio apps that I have so far.  I thought it showed the orientation of the palm, but with what I have I apparently don't have that possibility.

I was also able to videotape the skeleton tracking option.  Here is the full body tracking.





I understand that Microsoft used quite a large farm of servers to develop the parameters for this feature.  Notice that you have trouble when a foot leaves the visual field of the Kinect.  Also notice the problem when you accidentally get one leg behind the other or behind an obstacle, in this case a stool.

Here we restrict tracking to the upper body, viz, "seated mode".




Notice that when the hands leave the visual field of the Kinect the same thing happens that happened when the feet left the visual field in full body mode.  Also note what happens when I placed one and the both hands on my head.I was able to locate some open source finger tracking software for the Kinect that was written in Spain.  I will be trying that next.

Saturday, February 16, 2013

HS-805BB servos arrive

Although the United States Post Office is due to stop Saturday deliveries, I was mistaken in thinking that they were going to stop today, so I have my the high-torque HS-805BB servos for my Inmoov robot arm today instead of Tuesday.

I plugged one into the Pololu Mini Maestro 24 servo controller board and it appears to work perfectly.

Tuesday, February 12, 2013

Commissioning the Mini Maestro 24 servo controller



I managed to get the drivers installed and the Visual Basic 2010 example coding running on my PC and demonstrated that I could drive a small test servo from my keyboard.


My old ATX PC power supply seems to be able to handle the test servo without a lot of bother.  It is rated at 30 amps, so with luck I won't have to do what Gael did with batteries and a charger just yet.  In theory, this controller should be able to handle the whole Inmoov robot.  It will certainly handle one arm, I hope.




I order the HS-805BB servos.  They should be here by Friday.

Just discovered a spool of 250 yards of 8 lb monofilament.  That should work for the hand.

Monday, February 11, 2013

Left arm of Inmoov robot complete



Printing an assembly for the left torso, shoulder, bicep, forearm, wrist and hand is complete.


Front view of left torso assembly, shoulder, bicep and base of forearm.


Detail of rear view of upper torso and shoulder.


Left arm raised.


Forearm flexed.


Forearm extended.


Detail of lead screw and collar controlling the left shoulder.

The Hitech HS-805BB servos that drive the torso and arm kinematics are on order.

Sunday, February 10, 2013

Printing Gael Langevin's Inmoov Robot

Andreas Maryanto and I have been working on animatronic hands for some time now with Andreas' Dexhand project streets ahead of my own efforts.  About a year ago, I happened across a printed hand done by hairygael {Gael Langevin} in Thingiverse.  It was interesting enough that I printed a copy of it, but at that time Gael had not got very far with the design, so I neglected to follow his subsequent progress.

Big mistake!  About a week ago I discovered that Gael's modest beginnings had subsequently blossomed into a full fledged animatronic robot upper half.



I was both shocked and completely entranced by what Gael had accomplished in so short a time.  Gael was kind enough to make his print files open source, so I immediately began a campaign to print a copy of his robot.  Using his files, I have so far managed to print out a copy of his Inmoov robot's left arm.



I apologise for the poor quality of the pictures.  My own camera was lost a few months ago when my son's car was broken into in Seattle and I have been remiss in replacing it even though his insurance company was quite prompt in reimbursing him for the loses.

At the moment, I have not tried to install servomotors but have concentrated on understanding how the many pieces go together.  I shall be buying the torso, shoulder, bicep and wrist servos in the next week or two.