IoT hexapod

Technical Blog

How to Build a Hexapod - Part 1: Mechanics

In this three-part tutorial we will present how to build a hexapod robot from scratch. We will go through all the details about the mechanics, electronics, and, of course, the software of our hexapod. If you want to see the real version of the hexapod in the cover photo, finish reading this article. Brace yourselves, cause this is going to be a long but interesting read!

Research

Before starting this tutorial, we need to do a little research in order to see what option of hexapods we have out there. So we found some sources of inspiration, as follows:

  1. Hexapod Robot by markwtech, which can be found here. This robot has a good documentation that can be found here. Other information:
    • Servo: like what we want to use: ~MG996R
    • Brain: Arduino Mega
    • Frame: 3D printed + a lot of screws. + bearings
  2. Hexapod by basbr123, which can be found here. We couldn’t find more documentation about this one, but we still have these information:
    • Servo: it uses 2 Turnigy™ TGY-RM-91 Robotic DS/MG Servo 25T 11.8kg from here.
    • Brain: we suppose it is an arduino.
    • Frame: Better than first design from the list, but we don’t have double headed servo’s, those are too expensive.
  3. Lepta v1.0: ROS2 Based Opensource Hexapod Robot by Combinatrix, which can be found here. This robot has a good documentation that can be found here. Other information:
    • Uses very expensive servo’s => AX-12A
    • Brain: raspberry pi 4
    • Frame: 2headed servo’s maybe, and very hard to print
    • Software: ROS2 (robot operating system).
  4. Smallptsai has presented 2 versions of hexapods as follows: Hexapod v2 linkit7697, which can be found here and v2.1 which can be found here:. The robots have a fair documentation that can be found here. The only other information able to be found was regarding the servo-motor used, which is a MG92B, more info here.
  5. Other interesting ideas:

After seeing all the designs that are out there, and considering all the pros and cons, we have a final solution for our tutorial:

  • From the frame point of view we will start with design no.1, because we are using the same servo-motors. We will adapt/re-design this one to use switches at the end of each leg, and this will generate a termination for the leg similar to the design no. 4 (v2.1).
  • From the electronics point of view, we will use our own implementation, and use a raspberry pi 3 or 4.
  • From the software point of view we are thinking to use the brain and capabilities of hexapod design no. 3.

Frame Design

As we said before, we started from the hexapod design no. 1 and re-designed all pieces in order to implement our idea about this robot. Our final result is presented in the image below.

We can see in this picture that the robot is designed in a mirrored configuration. Also, we decided to 3D-print the front legs in another color in order to rapidly spot the face of the robot. The new design can be found and downloaded from here.

In order to build the robot you need to 3D print the following parts with the following configuration.

  • For one left leg we have the following parts:

Parts necessary for one LEFT Leg

Number of parts

Part name

Material

Support?

~ Material [g]

~ Time [h]

3

Servo_Mount_07

PETG

YES

57

9

3

Servo_Bearing_Fixer_02

PETG

NO

3

0.75

3

Servo_Bearing_Center_03

PETG

NO

3

0.45

2

Femur_Bracket_04

PETG

YES

24

4

1

Tibia_Bracket_04

PETG

YES

17

3

1

Tibia_Base_Plate_05

PETG

NO

7

1

1

Tibia_Side_1_04

PETG

NO

5

0.75

1

Tibia_Side_2_04

PETG

NO

5

0.75

1

Tibia_Foot_Plate_05

PETG

NO

5

0.75

1

Tibia_Spacer_Tube_04

PETG

YES

2

0.25

17

Total no. of parts

128

20.7

  • For one right leg we have the following parts:

Parts necessary for one RIGHT Leg

Number of parts

Part name

Material

Support?

~ Material [g]

~ Time [h]

3

Servo_Mount_07

PETG

YES

57

9

3

Servo_Bearing_Fixer_02

PETG

NO

3

0.75

3

Servo_Bearing_Center_03

PETG

NO

3

0.45

2

Femur_Bracket_04

PETG

YES

24

4

1

Tibia_Bracket_04_mirror

PETG

YES

17

3

1

Tibia_Base_Plate_05_mirror

PETG

NO

7

1

1

Tibia_Side_1_04_mirror

PETG

NO

5

0.75

1

Tibia_Side_2_04_mirror

PETG

NO

5

0.75

1

Tibia_Foot_Plate_05_mirror

PETG

NO

5

0.75

1

Tibia_Spacer_Tube_04_mirror

PETG

YES

2

0.25

17

Total no. of parts

128

20.7

  • The body is composed from the parts:

    Parts necessary for the body

    Number of parts

    Part name

    Material

    Support?

    ~ Material [g]

    ~ Time [h]

    6

    Body_Riser_04

    PETG

    NO

    36

    5.4

    1

    Body_Bottom_Plate_03

    PETG

    NO

    25

    3

    1

    bottom_cover_02

    PETG

    YES

    30

    3.5

    1

    Body_Top_Plate_04

    PETG

    NO

    47

    5.5

    1

    Body_Top_Top_Plate_02

    PETG

    NO

    51

    5.5

    10

    Total no. of parts

    189

    22.9

  • The final robot is composed from:

Parts necessary for a hexapod robot

Number of sub-assemblies

Sub-assembly needed

Sub-assembly parts no.

Total parts no.

~ Material [g]

~ Total Material [g]

~ Time [h]

~ Total Time [h]

3

Parts necessary for one LEFT Leg

17

51

128

384

20.7

62.1

3

Parts necessary for one RIGHT Leg

17

51

128

384

20.7

62.1

1

Parts necessary for the body

10

10

36

36

5.4

5.4

Total:

112

 

804

 

129.6

And after 129.6 hours (5.4 days) of continuous 3D printing we will obtain the following robot:

Robot Assembly

After finishing to print all the 3D parts needed for legs we arrange them in the robot configuration in order to have an idea of assembly order and mounting positions. The result is presented in the next image:

If we include all 18 servo’s in the previous image we get:

Don’t take into consideration the fully assembled leg that is presented in the image. This one was assembled during the printing process in order to test the tolerances between the parts, and test fit the assembly.

Before starting the assembly process we need to be sure that we have the following screws and nuts:

Parts necessary for one Leg

Number of parts

Part Type

Size

Length

Type

Part #1

Part #2

Resulting Part

6

screw

M3

16

countersink

Servomotor

Servo_Mount_07

Servo Motor Assembly

6

screw

M3

20

 

12

washer

M3

   

12

locking nut

M3

   

1

screw

M3

14

 

Servo Motor Assembly

Femur_Bracket_04

Servo Femur Assembly

3

washer

M3

   

1

Bearing

M3

 

685ZZ (5x11x5 mm)

Servo_Bearing_Fixer_02

1

locking nut

M3

 

locking

Servo_Bearing_Center_03

4

screw

M3

10

countersink works also

Servo Femur Assembly

Femur_Bracket_04

Femur Assembly

4

nut

M3

   

1

screw

M3

14

 

Femur Assembly

Servo Motor Assembly

Femur to Tibia Assembly

3

washer

M3

   

1

Bearing

M3

 

685ZZ (5x11x5 mm)

Servo_Bearing_Fixer_02

1

locking nut

M3

 

locking

Servo_Bearing_Center_03

4

screw

M3

10

countersink works also

Femur to Tibia Assembly

Tibia_Bracket_04

Tibia Assembly

4

nut

M3

   

1

screw

M3

14

 

Tibia Assembly

Servo Motor Assembly

Tibia to Leg Assembly

3

washer

M3

   

1

Bearing

M3

 

685ZZ (5x11x5 mm)

Servo_Bearing_Fixer_02

1

locking nut

M3

 

locking

Servo_Bearing_Center_03

4

screw

M3

12

countersink works also

Tibia to Leg Assembly

Tibia_Base_Plate_05

PreLeg Assembly

4

nut

M3

   

2

screw

M3

50

 

PreLeg Assembly

Tibia_Side_1_04

Leg Assembly

1

screw

M3

40

 

Tibia_Side_2_04

1

screw

M3

35

 

Tibia_Foot_Plate_05

1

screw

M3

30

 

Tibia_Spacer_Tube_04

5

nut

       

As you can see, in this table we have the screws, the washer, and the nuts, but at the same time the parts that they connect in.

The full process of assembling one leg is presented next.

Step 1 - Mount the Servo Motor Into the 3D Printed Support

We are starting the assembly process by inserting the servo-motor in its housing which is called: Servo_Mount_07. In order to accomplish this, we need a few screws.

After finishing one, it is better to finish at least 2 more, in order to be able to have the necessary parts for one leg. Or you can do all of them in bulk as we did: 

Step 2 - Prepare the Femur Bracket

In this next step we will prepare the femur bracket, which is composed of 2 identical parts called: Femur_Bracket_04.

Step 3 - Add the Femur Bracket to a Servo-Motor Assembly

After finishing the previous step, we can take the resulting assembled part and add it to one obtained at step 1 with the help of several nuts and bolts.

As we can see, this step is a little bit more complicated, and we need to detail it a bit more. This means to split it in several sub-steps, as follows:

Step 3.1 - Add Bearing Assembly to the Femur Bracket

First of all, we need to add the bearing assembly to the femur bracket. The parts need to be mounted in the order presented in the image below:

As we can see, we are introducing two more 3D printed parts, Servo_Bearing_Fixer_02 and Servo_Bearing_Center_03. The part called Servo_Bearing_Center_03 needs to be inserted in the bearing and with the help of the screw and of several washer we need to obtain this:

This bearing assembly needs to be mounted on the femur bracket assembly, as follows:

Step 3.2 - Prepare the Servo Part

On the other side of the bearing assembly, we need to mount the servo part. This part is from the servo-motor accessories. Before mounting it to the assembly we prefer to pre-thread the plastic with the screws for an easier assembly process.

Depending on the length of the plastic screws that came with the servo motor we might need to cut them on some extent. This is needed because if the screws are too long, it will hit the servo when running. Please cut them at an approximative length, as in the image below:

This part needs to be mounted to the femur assembly, like this:

Now, we can repeat these steps on the other side, to be easier to assemble it later. The final result is presented in the next image:

Step 3.3 - Align the Servo-Motor and Finish the Femur Assembly

We also need to finish what we have started at the beginning of step 3, and mount everything together:

Before doing this, we need to set the servo-motor at a 90 degrees position. We can accomplish this using another accessory from the servo accessories and move the motor by hand left to right until the middle position looks like this:

Now, all we need to do is to mount the parts together:

Step 4 - Add Another Servo-Motor Assembly to the Femur Bracket

If we have prepared our parts as we presented in this tutorial up to this part, this step is fast and easy, and all we need to do is mount the other servo the same way as the first one.

Step 5 - Start Building the Tibia Assembly

Moving forward, we need to do the bearing assembly also to the Tibia_Bracket_04. After this, we need to mount Tibia_Bracket_04 to the previous resulting assembly, as follows:

Before mounting the Tibia_Bracket_04 part, it will be better to pass the servo wire from the next step, through the hole of the part in order to have an easier assembly process later on. If it is done later, it will require some disassembly because the servo socket doesn’t pass through the hole when the part is mounted.

The final result is presented in the next image:

Step 6 - Align the Servo for the Tibia Assembly

This step is also a little bit more difficult, but this is not due to the parts involved, but due to the position that the servo-motor needs to be set up at. So, the servo-motor needs to be mounted into our assembly like this:

The position that we can see in the above image, is the middle position for the servo-motor. As we can notice, it is difficult to have a mark in order to get our bearings. So, in order to make the process easier, we need to spin the motor, left and right and select a position, that, at the end, we touch the frame as in the next two images:

Step 7 - Add Tibia Base Plate and Prepare to Assemble the Final Part Of  The Leg

After we finish all of this, we can go to the next step and add Tibia_Base_Plate_05.

After fixing the screws we obtained the following result:

Step 8 - Leg Assembly

We are getting closer and closer having a complete leg. In this section we will add the following 3D printed parts: 

  • Tibia_Side_1_04
  • Tibia_Side_2_04
  • Tibia_Foot_Plate_05
  • Tibia_Spacer_Tube_04

The final result can be observed in the next 2 images:

Step 9 - Attaching the Leg to the Body

In order to be able to attach a leg to the body we need to mount the 3D printed part Body_Riser_04 to the leg assembly.

Step 10 - Finishing All 6 Legs

Up to this point we saw how we can assemble one leg for this hexapod. Now, we need to repeat this process five more times. Please be aware that the left legs are different from the right legs. Consult the tables with the 3D printed parts all the time.

Fun times: here’s a pile of hexapod legs!

Step 11 - Mount the Legs to the Body

After we have all the legs, the only step that remains is to mount them to the body parts:  Body_Bottom_Plate_03 and Body_Top_Plate_04. The process is to add the screws to the Body_Bottom_Plate_03, then add the legs and then add Body_Top_Plate_04 on top.

Final Result

And here is the mounted hexapod! What do you think of it? Does it look like in the initial drawing? What would you have done differently to improve the process or the robot itself? We look forward to hearing your thoughts and seeing your own hexapods. Stay tuned for part 2, electronics, and for part 3, software.

 

About the Author

Alin Jderu has 14+ years of experience in custom robotics for competitions, taking on various roles, such as builder, mentor, referee and judge. He also has 9+ years of experience in IOT and 6+ years of experience in nanotechnology research and development and with organizing scientific education events. He has a programming background in C/C++, Python, HTML, Matlab, LabVIEW, electronics circuit design in Eagle and Proteus, 2D/3D CAD/CAM Design in Catia, Solidworks, Autocad, OpenSCAD and 3D printing, simulation software in Simulink, AmeSim, COMSOL Multiphysics and editing software in Photoshop and Corel Draw. You can also google him ;) He is currently working in IOT R&D at eSolutions.