A 3D Printed Hexapod Robot
This agile, 3D-printed hexapod robot, built with ESP32 and Arduino, offers a range of advanced features, including:
- A robust, durable structure
- WiFi-enabled remote control
- Smooth, agile movement
- Over-the-air (OTA) firmware updates for easy maintenance
Filename | Thumbnail | Required |
---|---|---|
body_top | 1 | |
body_base | 1 | |
body_side | 2 | |
body_front_back | 2 | |
body_battery | 1 | |
body_servo_side1 | 6 | |
body_servo_side2 | 6 | |
body_servo_top | 6 |
Check the images of the fully assembled robot for the orientations of the joints and the mirrored joints
Filename | Thumbnail | Required | Note |
---|---|---|---|
joint_bottom | 12 | ||
joint_cross | 6 | ||
joint_top_mg90s | 12 | For MG90S | |
joint_top_mg92b | 12 | For MG92B |
Filename | Thumbnail | Required |
---|---|---|
leg_bottom | 6 | |
leg_side | 12 | |
leg_top | 6 |
Check the images of the fully assembled robot for the orientations of the feet and the mirrored feet
Filename | Thumbnail | Required | Note |
---|---|---|---|
foot_bottom | 6 | ||
foot_ground | 6 | ||
foot_tip | 6 | ||
foot_top_mg90s | 6 | For MG90S | |
foot_top_mg92b | 6 | For MG92B |
Filename | Thumbnail | Note |
---|---|---|
accessory_spacer_mg90s | Spacer for MG90S | |
accessory_cable_holder |
Name | Spec | Required |
---|---|---|
Screw | M2 6mm | 36 |
Screw | M2 10mm | 198 |
Nuts | M2 | 234 |
Pin (304) | M4 6mm | 18 |
Bearing | MR74-2RS (4mm ID, 7mm OD, 2.5mm Bore) | 18 |
Source code is under ./hexapod_arduino
.
hexapod_arduino.ino
: Main Arduino sketchconfig.h
: Configuration header. Change the configurations based on your servo connectionsmotion.h
: Automatically generated motion look-up-table using `path_tool'
Working in progress
Working in progress
Check the following image for the initial positions of all the leg joints while all the servos are at 90 deg.
Adjust the following two lines in in config.h
to correct the installation offsets.
static int left_offset_ticks[3][3] = {{-5, 10, 0}, {-15, 5, -20}, {20, -10, 10}};
static int right_offset_ticks[3][3] = {{20, -10, 0}, {-15, 0, -5}, {-10, 0, -20}};