Monday, April 9, 2012

LinuxCNC hexapod machine tool

As I promised, here's a bit more. Since EMC2 name has changed recently, now the machine becomes LinuxCNC hexapod.

The machine was assembled without ballscrews, servo drives connected to breakout boards and motors, and proved to rotate. Then the ballscrews were connected to the platform joints, and the nuts bolted to the actuators. Till the last moment there were doubts, that the platform would be rigid enough. But it proved rigid as planned! The very first moves were luckily captured on the video. Not much spectacular, but really exciting for me.



The first configs used TkEMC, genhexkins.c was cleaned from irrelevant stuff, genhexkins.h parameters changed to actual machine dimensions. It's only possible with LinuxCNC compiled from source. Here's one of the first configs with software stepgens: hexapod.ini and hexapod.hal.


Later video showing the whole machine, some tests and the first milling.


As the machine was controlled via LPT port with max step frequency 30-40 kHz, the velocity was very limited (DMM servos have minimum 2000 pulses per revolution). Besides, the software stepper is not stable enough, and high acceleration often resulted in "joint following error". It would stop the machine in the middle of the move, losing its home position. These problems were eliminated later with MESA 7i43 card.

Again, to be continued...

15 comments:

  1. Your blog is really helpful. I am also making a hexapod machine too. I am just wandering the way you control the six servos. Could you please send me the code? I will definitely appreciate that.
    And what about your cardanic joints? How much are their operating angle you choose? Thank you in advance.

    ReplyDelete
    Replies
    1. Hi Sean, I use LinuxCNC www.linuxcnc.org. My config files for stepper mode linked above.
      The platform joints provide orientation within a hemishpere, but when the screw axis coincide with the joints axis, there can be a problem. That's a drawback.
      Upper joints have at least +-40deg, IIRC.

      Any info on your machine?

      Delete
    2. Thank you for your reply. We didn't use LinuxCNC, so more effort should be given to do the control. Actually I am still designing the structure. Do you know where I can get those platform joints in your machine? They seem to be working very well.

      Delete
    3. The platform joints are original. Very simple, they have preloaded bushings of caprolon (polyamide-6) to decrease friction and eleminate backlash. You just need to provide tight fit.

      Delete
    4. Cool. Do you mean you made these joints yourself? That's amazing

      Delete
    5. Yes, all joints are custom-built.
      Purchased are spindle, strut motors, ballscrews, bearings for upper joints, bearings for nut rotation, timing pulleys for motors (the nut pulleys are also custom).

      Delete
  2. Hi,

    I am manufacturing a stewart machine tool. But i have no idea about linuxcnc configurations and control. Can you help me on this subject ?

    ReplyDelete
    Replies
    1. Hi!
      I'm afraid I couldn't be really helpful until you learn basics of LinuxCNC. But the configuration of hexapod is already a lot easier in the latest LinuxCNC release, no nedd to recompile the whole project from source.
      What motors/actuators do you have?

      Delete
  3. I have 6 stepper motor actuator and Mesa 7i76+7i78 daughter cards and 6i25 motion control card. I am looking a document which is explain to hardware and software configuration with step by step. May you connect over e-mail adress for the details ?

    Thank you.

    omer.erkan@yahoo.com.tr

    ReplyDelete
    Replies
    1. You can email me pkmcnc at gmail dot com
      I'm afraid there's no exact documents though, you'll have to learn basics of Linuxcnc.

      Delete
  4. Thank you. I will connect to you.

    ReplyDelete
  5. I currently have an old nc tube bender that using hydraulic and solenoid stuff.I want to upgrade it to CNC version that using up to 6 servo motor.Do you think linuxcnc is suitable for this.I just use Mach3 for my 3 axis CNC ,but have no experience for linux CNC.
    Can you give me some advise ?

    ReplyDelete
    Replies
    1. Right, LinuxCNC can control up to 9 coordinate axis and even more servo motors, and its built-in PLC can be useful too. I think LinuxCNC will be perfect for your machine.

      Delete
  6. coule you tell me where to find the stewart kinematics code in the
    emc? thank you very much

    ReplyDelete
    Replies
    1. sure https://github.com/LinuxCNC/linuxcnc/blob/master/src/emc/kinematics/genhexkins.c

      Delete

Google+