View Full Version : RoboFac Details

12-22-2004, 07:29 PM
I've gotten some questions about my hexapod machine, so I thought I'd post some details here. I haven't done my first cuts with the machine yet, as I discovered that my original configuration was too flexible and had to go back and make some changes. I changed the legs to be much stronger and added thicker braces to the corners where the actuators attach. I also have threaded rod with turnbuckles to keep the whole frame under tension.

I've attached a couple photos to give you an idea of what the machine's like.

More details on the software:

12-22-2004, 11:32 PM
Excellent, I have been interested in these types of machines. I have been collecting parts for a variation of this machine. I look forward to seeing your progress.

12-23-2004, 06:04 AM
Interesting seams like a very compact design of your pushrods.
The Frame looks messy, seams its not tall enough too.
May want to start the frame over again, use thicker tubing and build
in a triangular shape like a standard Hexapod would be much sturdier.
A friend with a welder would help.
Good effort so good Luck.

12-23-2004, 08:01 AM
It appears you will need to apply some of my theorum here. :)

Tell us more about how you plan to generate the gcode.

What will you use to drive this device?

Is the software worth downloading and going to the effort of using Linux?

What are the advantages of a hexapod ?

More details please.

12-23-2004, 11:05 AM
Torsten: The frame has changed a bit since the photo was taken. If I wanted to start over completely, I'd do it a little differently, but the way I'm going right now doesn't seem too bad. Once I actually start cutting with the router, I may change my mind.

Pythagoras: Yes, the RoboFac software uses the Pythagorean Theorem to calculate the lengths of the actuators. You can download the source code at
and take a look at the file HexapodGeometry.java.

G-code will be generated through standard CAM programs or manually.

If by "drive", you're talking about the motor drives, they're Xylotex stepper drivers. They're located inside the red box that you see on the table in the photo.

Linux, to me, is no great effort. Of course, the RoboFac software runs on Windows (and maybe even Macintosh) now, it just doesn't talk to the parallel port. Perhaps one day the code for driving the parallel port on Windows will get written.

Hexapods have a variety of advantages, including being able to move on 6 axes. After Christmas, I'll post more details.

12-27-2004, 06:25 PM
I updated the screenshots on the website; the images and links were broken.

12-29-2004, 12:51 PM
I thought I'd give a little more detail about why I chose a hexapod over other designs.

First of all, I get full 6-axis movement, as I mentioned earlier in this thread.

Second, I liked the notion that I could build this machine without having to make a lot of precision parts. I didn't have to start with an existing milling machine. No parts are precision cut or positioned other than the special plate I made with calibration points marked on it. The RoboFac software compensates for accuracy problems.

Third, I've made the machine with a minimal amount of specialized materials. Nearly all the mechanical parts come from Home Depot, Lowe's, MSC, or Metal Supermarkets (my local metal supplier).

12-29-2004, 01:27 PM
What are you using for linear actuators?

12-29-2004, 01:49 PM
I made the actuators using Acme threaded rod, Acme hex nuts, and plumbing black pipe. I may try making my own Delrin nuts, as the current setup is somewhat complicated.

12-29-2004, 02:15 PM
It would be interesting to see how you figure out how to avoid gouging the part. That's something useful about ordinary 3axis machining which I never thought about, its not to difficult to rise to clearance, but on a 6 axis part, where is the clearance plane? And moreover, can you safely get there from here?

12-29-2004, 02:39 PM
6 axis geometry can get very complicated. I'm still not sure how ordinary milling machines handle it, and if its desirable to replicate the same sort of behavior on a hexapod.

As I'm just starting out with CNC, I think I'll just try using RoboFac for ordinary
3 axis stuff for a while.

01-06-2005, 01:12 AM
I finally managed to cut something good with RoboFac. It's taken nearly two years of effort, off and on. Photos are forthcoming, and I hope to release a new version of the software in the next couple days.

01-06-2005, 01:18 AM
Here are the photos of the first decent thing I made, as well as one showing the cutting in action.

01-06-2005, 09:08 PM
Since I've been having so much success with RoboFac lately, I decided to do a new release of the software, version 0.0.6:


01-07-2005, 03:01 AM
Cool! I think this is the first time I've seen a DIY hexapod actually doing some work! Well done!


01-08-2005, 02:29 AM
You can now see a time lapse video on the RoboFac screenshot page. In order to try to save some bandwidth, I won't link to it directly. You have to visit the main RoboFac page at http://robofac.sourceforge.net/, go to the screenshots page, and look for the link to the video near the bottom.

01-09-2005, 08:44 AM
Way cool! Do you have any more pictures of how you put your machine together. I'd be interested in seeing how you built the legs and made the connections.


01-09-2005, 12:08 PM
Nice work. What kind of cutting area ( size) can you achieve with it?

01-09-2005, 02:49 PM
jgro: I'll try to put some more photos of the legs up. I'm also in the process of writing an article for a robotics magazine that will feature more photos and details.

trubleshtr: The platform can easily cover a volume of 12"x12"x3". It can possibly do more, but I haven't pushed it that far. I have noted that it gets less accurate as you move further away from the center.

All of you should join the robofac-announce mailing list:
It's very low volume and only carries announcements from me about the software, web site updates, and the like.

01-25-2005, 06:42 PM
The RoboFac software has now reached "Beta" status, as I've been using it to do real work.

I upgraded the controller machine to Fedora Core 3/Linux 2.6.9 and it seems to control the motors a lot more smoothly.

You can get the latest version of the software here:

01-26-2005, 10:02 AM
You've made a lot of progress. Keep up the good work. Software is the biggest hurdle to these types of machines. Can I ask what your plans for the software are? If you do plan to have accelerations, can you still use java since it does not have real time abilities? Actually I have heard of a java real time specification but do not know if there are any working libraries.

01-26-2005, 03:11 PM
I'd say that the software is pretty close to being Version 1.0 quality.

The next thing I plan to implement is feed rate, then probably acceleration. Other features will be implemented as they are needed. I also intend to incorporate any good features coded by other people.

I don't think I will need true real time capability. I'm getting pretty good performance right now.

04-15-2005, 10:03 AM
a couple of questions, thanks in advance for any answers

could you comment on the accuracy of your machine ?

could you take some close-ups of the joints you have been using both for the fixed and the moving platform.

is the controlling software somehow calibrated ?

04-15-2005, 12:58 PM
Accuracy seems good, but not great. You can see a photo of a piece I cut in my photo gallery. There are a couple important impediments to accuracy, including lost steps and play in my lead screw setup.


The joints are pretty ordinary universal joints from C&H Sales surplus. I've added a photo for you:

Yes, I spent a lot of time working out how to best calibrate the machine using software. You enter a set of points with known locations, then the software works out the geometry of the machine from that. The RoboFac software is available in both binary and source code form.

05-23-2005, 04:02 PM
The latest news: Servo Magazine has agreed to publish a series of 3 articles on RoboFac starting later this year. The exact issue hasn't been determined yet, but should be around September sometime.

05-23-2005, 10:22 PM
congrats on making the magazine. One of these days I will have to build one myself.

what is the overall volume of the whole machine? what size steppers are used?

05-23-2005, 10:51 PM
Motors are Pacific Scientific steppers, about 80 oz-in. In the video, the whole contraption is a little over 3 feet tall.

07-01-2005, 12:44 AM
I just released version 0.9.1 of the software. This new, much improved version is at

07-26-2005, 03:16 AM
I finally got around to trying to mill aluminum with RoboFac. I chucked up an end mill in the router and strapped a piece of 6061 aluminum plate to the bed. Cut metal like a champ, but threw tiny aluminum chips everywhere.

07-26-2005, 12:49 PM
Pictures, pictures, pictures please :)


07-26-2005, 01:34 PM
It's not very visually exciting, just a couple simple slots. I'll see what I can do.

07-27-2005, 09:48 PM
Picture is of one of my first attempts at milling aluminum. Note that my G-Code program was written to just be enough to make a through slot. On the shorter slot, I didn't start the program with the cutter in contact with the plate. The round holes were already there in the plate, ignore them.

07-27-2005, 10:14 PM
A video depicting aluminum milling in action.

08-27-2005, 11:12 AM
The September 2005 Servo magazine with Part 1 of the series of articles on RoboFac is available now on newsstands.

You can read a little bit about it on the Servo magazine website:

09-24-2005, 07:20 PM

I meant to get to this earlier but life is full of distractions: congratulations on getting your article(s) published in Servo magazine. I'm anxious to see issue #2. What are the big issues you feel need to be tackled next on this machine?


09-25-2005, 04:26 AM

Major problems now include workholding, CAM, and lack of money to start my next big project, which will use RoboFac to make parts.

Of course, if I had to start over again and had an unlimited budget, I'd do it all differently. Better frame, better actuators, better bed, and so on.

Remember, everyone check out the RoboFac website: http://robofac.sf.net

09-29-2005, 05:33 PM
Q: When it sees a G code command like move X +1", does the controller move each stepper in small increments repeatively until it reachs the spot (ie, step leg 1 1 step, step leg 2 1 step, etc repeatively). Obviously if it moved each leg in big steps you would get into problems in the 4th/5th plane (i'd call it table wobble in layman terms)?

09-29-2005, 06:07 PM
Suppose mobile platform is at, for example x=0, y=0, z=0 and I want it to move to (1,0,0).

I start by computing the actuator lengths (inverse kinematics) for the point (0.001, 0.0 , 0.0). I then turn the steppers to make the actuators as close to those calculated lengths as I can. I then repeat the process to move to (0.002, 0.0 , 0.0), (0.003, 0.0, 0.0), and so on, until I get the mobile platform as close to the target as I can.

I send step commands to all steppers simultaneously whenever possible.

There are other ways of moving the mobile platform that get it to its target faster, not only do they produce problems in the rotational axes, but the platform doesn't move in a straight line.

09-29-2005, 06:29 PM
Do you do something in the driver that compensates for movements that would cause one leg to move a large amount and the other leg a small amount? If not, wouldn't one leg reach it's desired length before the other and that would result in a non-desired move (ie, it wouldnt' result in a linear move in that axis for example)? Or are all the moves done in such small increments that this isn't a problem?

I'm just curious, not implying you didn't handle this theoretical problem. :-)

My thought here is with all the degrees of freedom of the design you'd run into movement issues that wouldnt happen in a standard bed system (ie, the bed on a standard 3 axis mill stays "flat" regardless of movements in X and Y, whereas a hexabot design would have to compensate for such movements to keep the 4th and 5th axis flat when only X and Y movement is desired).


09-29-2005, 06:35 PM
btw, after rereading your previous reply, I think you already answered my question.. you are moving the table in such small increments that you wouldnt experience the problem I describe. I assume your resolution is so high that you don't run into rounding errors either?

ie, move from (0,0,0) to (-5,5,13) and the resulting step commands would experience some serious rounding errors if you didn't take it to sufficient precision (like .002 in your example) since the inverse kinematics computation might want to move it .001999933, .0, .0 for example?

Forgive my naitivity, just the complexity has my mind racing... :idea:

09-29-2005, 07:00 PM
I think you got it. There can be "wobble" when moving between (0,0,0) and (0,0,0.001). But since my steppers have a finite resolution, there's no way around that.

Internally, RoboFac keeps track of the actuator lengths and current position separately. It tries to get the mobile platform as close as possible to the commanded position, but that may not always be possible due to the finite resolution of the steppers. The software just tries its best to get to the commanded position. When it's done with a movement, it will report the commanded position to the user.

The source code is the ultimate source for seeing exactly how everything is done:

The method goToLinear() is what I've been describing, it does things the "right way". The method goToDirect() is called by goToLinear() to do the small in-between movements.

I used to use goToFastest(), but it had the wobble problems mentioned earlier. It's now commented out, and in the future may be removed and only accessible via the version control system.

09-29-2005, 09:32 PM
Cool, thanks for the info!

10-03-2005, 04:32 AM
The October issue of Servo Magazine<http://servomagazine.com/>, with part 2 of my series of articleson RoboFac, is now available.

Note that I did not write the inaccurate headline "An Alternative to CNC" on the cover of the September issue.

If you like my Servo Magazine articles, please let the editors know: editor@servomagazine.com .

Also, I'm considering starting mailing list for discussions about RoboFac and all things related to Stewart-Gough platforms, hexapod machine tools, and the like. Please let me know if you're interested.

10-03-2005, 08:20 AM

Just picked up the mag yesterday and read the article-nicely done. I will certainly tell Servo I thought it was #1. Waiting for article #3... :cheers:


10-03-2005, 07:38 PM
hey simonarthur, congrats on publishing your article. I have not seen it yet. Don't know of a newstand to get it. The earlier issues had very little value to me when I subscribed.

Can you elaborate on why you call it "an alternative to cnc", after all it is controlled by a computer

a forum for hexapod related info would be nice, as it is very hard to find info online and people doing these projects.

10-03-2005, 07:45 PM
Well, Jimbo, it is CNC. But I didn't write the headline that suggests that it isn't.

Usually, your bigger standalone bookstores like Border's or B. Dalton's will carry Servo.

10-12-2005, 03:25 PM

I just read the second article in Servo and thought it was fantastic. I'm going to attempt to do the same thing, but was thinking of welding up the frame from steel angle instead of the conduit. I have been looking at this extensively since I read your first article. That was my first exposure to "hexapods", though I've been planning to build a cnc router for quite a while. I've noticed that some machines tend to have the actuators set up in a more triangular fashion and yours are pretty much parallel. Not having access to anything like this to see how it works up close, I'm having trouble visualizing why 6 actuators are even needed. Couldn't the tool platform be triangular with a single actuator at each point and be just as effective? Thanks again for the articles! Keep up the great work.

10-13-2005, 04:35 PM
Glad you liked the article, Harley. Be sure to tell Servo: editor@servomagazine.com .

Here's a machine like the one you're thinking about:

I'm not sure how the kinematics work on one of those. Using six actuators stabilizes the platform in X, Y and Z, as well as rotationally along the pitch, roll, and yaw axes.

10-13-2005, 05:39 PM
This is the kind of stuff that keeps me up all night, much to my wife's dismay....
The more I thought about it, I started to realize that I was making it harder than it is. To be sure I understand, the 6 dof are the standard x,y, and z planes, as well as a tilt or roll of the tool platform in any of three axis. Is that right? What about translating 3d images, (like solid edge .par files) into g-code. What do you use for that?

10-13-2005, 08:35 PM
Yes, you understand the 6 degrees of freedom.

I haven't found a good cheap tool that can calculate 5 axis machining yet. In fact, even crappy CAM programs seem to cost hundreds or thousands of dollars. I've tried a few "evaluation versions" of various pieces of software and have generally been disappointed for one reason or another.

But RoboFac can use standard G-codes generated just about anywhere or I can do the G-code by hand.

10-13-2005, 08:37 PM
I've started a new mailing list for users to talk about the RoboFac CNC controller software and to swap information about building the hexapod/Stewart-Gough platform hardware to go with it:


11-06-2005, 06:13 PM
Someone in the Nashville TN area working on one of these currently?

02-15-2010, 10:07 PM
can you help me find hardware use with robofac software?

thanks alot

02-15-2010, 11:53 PM
Hi beliefdrive:

You can find details of the hardware posted earlier in this thread, as well as in the September, October, and November 2005 issues of Servo Magazine.

Let me know if you have any specific questions.