As someone with no prior hardware experience , I embarked on an ambitious project: building a functional wheel-legged robot using pre-fabricated 3D-printed components and open-source resources. This guide focuses on assembly, calibration, and programming—perfect for developers eager who want to dive directly into robotics.
Needed or good to have tools for this project.
Soldering Iron TS101 | (Recommended) | ||
|---|---|---|---|
Heat Inset Tip Kit - For TS101 | (Recommended) | ||
Electric Precision Screwdriver | (Recommended) | ||
Allen Key Set |
| ||
Torx Key Set |
| ||
Torque Screwdriver |
| ||
Wire stripper |
| ||
Wire cutter |
| ||
Heat Insert Press Tool |
| ||
Crimp Tool |
| ||
|
|
|
|
Soldering Iron - Generic (Alternative) | Budget friendly alternative | ||
Heat insert tip - set (Alternative) | Budget friendly alternative | ||
Precision Screwdriver Set | Budget friendly alternative |
Heat insert set |
| ||
|---|---|---|---|
Wire - Power |
| ||
Wire - Communication / Signal |
| ||
M3 Button Cap Screw set |
| ||
M3 Torx Screw Set |
| ||
M3 Socket Head Cap screw set |
| ||
Ferrules Set |
| ||
Reusable Velcro Cable Ties |
| ||
|
|
|
|
Filament - PC / ASA / ABS / PETG |
| ||
Filament - Engineering Grade Filaments | Carbon Fibre & High Temp | ||
Filament - PLA |
| ||
Filament - TPU |
|
If you’re new to robotics and looking for a fun, challenging, and highly educational project, a wheel-legged robot is an excellent choice. Combining the simplicity of wheels with the versatility of legs, these hybrid robots offer a hands-on way to learn key concepts in mechanics, electronics, and programming—without requiring advanced expertise.
Balanced Learning Curve
Wheels make it easier to get started (simple control, stable movement).
Legs introduce you to gait planning and balance algorithms (more advanced but rewarding).
Real-World Applications
Wheel-legged designs are used in delivery robots, exploration drones, and even Mars rovers, making your skills directly transferable.
Low Cost, High Flexibility
Unlike full bipedal robots, wheel-legged bots can be built cheaply with 3D-printed parts, ESP32, and digital servos.
Why?
Built-in Wi-Fi/Bluetooth enables remote control (e.g., via smartphone) and IoT integration.
Dual-core processor handles sensor fusion (IMU data) and motor control simultaneously.
PWM support for precise servo/motor driving.
Example Use:
// Read IMU data for balance control if (imu.getPitch() > 15) { adjustLegServos(); // Prevent tipping }
2.1 Components Checklist
Check the bill of materials.
2.2 Tools
• M3 Hex Screwdriver Set
• Digital Torque Wrench (0.2–2.5 N·m range)
3.1 Baseplate & Counterweight
Secure the baseplate and counterweight block using M3×8mm screws

3.2 Servo Mounting
Attach short brass spacers to the servo connection module.
Mount servosonto the module, aligning the output shafts outward.
Scure the baseplate with M2.5×10mm screws.




3.3 Mainboard Installation
• Use long brass spacers (front) and short spacers (rear) to mount the ESP32 mainboard.
• Embed the nut into 3D-printed leg connector and assemble using screws.
• Secure the side panels using M3×6mm screws.




3.4 Wheel Hub Installation
• Install the 3D-printed wheel hub and tire onto a brushless motor.
• Attach the 3D-printed wheel hubs to motor shafts using M4×8mm grub screws.
• Warning: Align shaft flats within ±0.2mm to prevent slippage.
3.5 Encoder Board Setup:
• Attach the magnet to the white 3D-printed connecting post
• Install the post onto the green position of the motor (as shown in the figure).Glue for enhanced stability if needed
• Enlarge the screw holes on the nylon-sintered leg parts (due to minor size mismatches) and attach the encoder boards.



3.6 Leg-Motor Connection
• Install the connecting column into the leg part and mount the bearing onto the column as shown in the picture.
• Insert nuts into the designated slots
• Install the servo arm into the leg component and connect the leg assembly to the indicated position in the picture.
• Note: Longer tire fenders should face backward for obstacle clearance.





• Attach the legs to the brushless motors.
• Slide sleeves onto screws, mount bearings onto the sleeves, and fix them to the support structure.


click here to download tool and supply
4.1 Servo Zero-Position Calibration
Tools
• Arduino IDE 2.3.4
• FD Calibration Tool
Steps
1) Install Arduino IDE and the esp32 version2.0.3.
2) Open SteeringEngineDebug.ino (located in /Tools/SteeringEngineDebug) to Upload Calibration Code.
3) Turn on the power switch before connecting to the computer.

4) Select ESP32 Dev Module and upload.
5) Physical Setup:
• Open FD.exe (located in /Navbot-EN01/Tools/FD1984-240227).
• Place the robot on a support block.
• Disconnect one servo cable to avoid ID conflicts, and calibrate them one by one.



6) Calibration via FD:
• In the FD software, select the port number, set the baud rate, connect, and search for servos. As shown in the figure, ‘STS3032’ corresponds to the left leg servo of the robot.When connecting the right leg servo, set its ID to 2.
• After completing the zero-position calibration for the two leg servos of the robot, reconnect the servo cables properly
5.1 Dependency Installation
1) Open the project source code located at \Navbot-EN01\Src\wl_pro_robot in Arduino IDE.
2) Install dependencies located at \Navbot-EN01\Src\libraries,selecting the library files one by one.

3) Since the compiled program is large, use the “No OTA (Large APP)” partition scheme to ensure it uploads correctly.
4) Select ESP32 Dev Module and click Upload.
6.1 Power-On Sequence
1) Insert 7.4V LiPo Battery into the XT30 port.

2) After toggling the switch, the robot will light up a red LED to indicate startup, then begin self-testing for a few seconds.
3) Connect your smartphone to the WiFi network named navbot_en01- XXXXXX(password: 12345678).
4) After successfully connecting to WiFi, access the robot’s control interface by entering the IP address 192.168.1.11 in your web browser.

6.2 Activation:
Click Robot Go and manually lift the robot – it self-balances within 2 seconds.



The user re-uploaded this model. The user is not the original author of the model.