Introduction: Hexapod Robot Based on FPGA

    This is a hexapod robot which consists of twelve DC servo motor controlled by a FPGA chip.The framework  is programmable and extendible.we can design different programs to make the robot react in different ways.      
    I was inspired by the Kondo KMR-M6 Robot .(Kondo is an Japanese company makes robot models) I like this kind of modern toys but they are always too expensive to afford . Then just make one by hand  ,I thought. 
    The general idea is to carve every part of a single leg with plywood ,which takes a long time, and then try to copy it with PU glues since the robot gets six legs.
    Now let's begin.


(POOR ENGLISH , SORRY)

Step 1: What You Might Need

EQUIPMENT:

saw , electric grinder , electric drill, pencil, screwdriver,caliper

MATERIAL:

plywood , PU resin , silicon ,
screws,nuts,ball bearing

OTHERS:

servo motors, CAD and EDA software , FPGA Minimum system board(I choosed Altera CycloneII)

Step 2: 3D Model and 2D Blueprint

    Duo to the requirement of accuracy for the models , we need to create a 3D model for the hexapod robot using CAD tools such as AUTODESK AUTOCAD software, so that you can adjust the robot's size and shape quite easily.
    What? You never touched autocad before? OK,neither did I.But I learned it and draw the model within one week . One good way to use this kind of software is to learn just the parts which you exactly need.
    Every single leg has two rotational degrees of freedom, one for Horizontal rotation the other for vertical movement. The vertical motion mechanism is a parallelogram structure which is can easily rotate and keep the claw upright. We can simulate the movement through some simulation tools , for example Autodesk ForceEffect on mobile device.


Step 3: Make Prototype Parts

      I must say that this is so demanding a job to make every single part by hand.If there was 3D printer in my house , I should not had suffered this. That's why we made a 3D model first.
      I don't have to say much about this part because this is a prototype, we just need to make the shape.Use your saw , electric grinder , electric drill, pencil, screwdriver,caliper, whatever you can use.
      The key point is to drill very accurately according to the diameter of the screws you choose so that every part can be installed together.

Step 4: Electrical and Mechanical Debug

    In this step , we have to make sure that the prototype leg can move properly. Also to make sure the servo motor can be driven properly by the FPGA chip.
    Let's take a look at the DC servo motor. It consists of a electric motor, driving the gears , a reduction gear pack , providing huge moment of force , and a feedback component, judging and keeping the position of gear. Three input lines are led out , power, gnd and ctrl lines. Power and gnd lines lead to the 5-8V power supply . The ctrl line leads to the GPIO port of FPGA chip, which send out a PWM signal that drive the motor gears to a certain position .
    Write some simple modules by verilog in can realize most functions you can imagine. I used Altera CycloneII FPGA chip here with QuartusII software because it is relatively cheap , efficient and easily buying.
    What? You have never touched verilog or quartus before? Neither did I . Just learn and use it .
    After we can make sure the prototype leg works properly , we shall move to next step.

Step 5: Copy the Prototype With PU Glue

    In this step , which is not necessary at all if you have a 3D printer, we will try to make several copies of  the prototype leg.
    Firstly, to pour a  part with silicone ,or other material alike, combined with coagulant .Dig the part out after the silicone concrete.Then we get a mould here.Careful when digging out the part , choose a proper direction since we will pour liquid into the mould later.
    After getting all the moulds , we need PU glue now. PU glues are divided into two bottles of A and B liquid .The A and B liquid get concreted after mixed with each other on a 1-for-1 basis..You might need to make several attempts.Be careful when mixing the liquid because this makes huge amount of heat.
    Do some polishing and carving, all the parts are ready.



Step 6: Installation and Wiring

    I list all the components that make up a single leg in the first picture , include 7 M3 screws and nuts , 10 M2 screws and nuts , 14 M3 ball-bearings , 2 DC servo motors and other components we made in the previous steps.  
    For convenience, I took the prototype here as an example.I took pictures of every steps. Install all the components of each legs step by step .Then fix them on the chassis.
    We have altogether 12 motors and 36 lines here.Bend the lines around the trestles and through the bottom .Power and GND lines stick into the pins of power supply board. Signal lines stick into the GPIO ports of the GPGA chip board which can be assigned in QuartusII software. Then put on the battery pack  containing 8 1.5v batteries , four of which connected in series and both groups of four connected in parallel. That comes the 6V power supply of the robot. Via the LDOs on the chip board , the 5v supply is transformed into 3.3v ,2.5v  or 1.2v that the chip needs.
    On the top of the robot stands a infrared sensor. In this first generation , I temporarily use a IR sensor to receive a IR signal from a remote controller which follows the general IR remote protocol, such as NEC  protocol . 

Step 7: Extention

      Finally we have finished most parts of this creation.  It really takes your effort to make it. Now it is a programmable electromechanical robot . How it moves or reacts totally depends on how you design the program. That's one important reason why I chose the FPGA  platform, which is convenient to design and easy to debug.
      During the program debugging , there are still many problems need to be solved for example the motor tremble caused by the inertia of the leg.
      What is the usage of this robot? I'm not quite sure , but at least it is a toy and a programmable device for FPGA training.
      Last but not least ,you can extend it's function as you wish.For example , I used a IR sensor in this first generation , but we can absolutely extend it with a wifi module and wifi communication protocol and maybe write a IOS app to control it with your IPHONE.In addition, we can set a camera in the front of the chassis so that it can transmit images and videos or embed a image processing modules to search for a certain aim. 
      Finally thank you for your kind reading. This is my first time to write  instructables, and I am glad to hear your feedback . If you have any question or suggestion , please me leave a message. Declare again that this robot is Inspired by the Kondo KMR-M6 Robot on ASIC platform and this article is for interest only, no business purpose.



adam wang 
2013.02.27

UP! Contest

Participated in the
UP! Contest