FOC Dual-Wheel-Legged Robot
An open-source wheeled-legged robot featuring mechanical design, electronics, embedded software, and FPV remote control.
- Wheeled
- Open source
- 3D printable
Suggested by Robotheca, created by @Skythinker616 (opens in a new tab), from github.com/Skythinker616/foc-wheel-legged-robot (opens in a new tab). Pinned to commit e244439 (opens in a new tab).
- Hardware license
- GPL-3.0-only (opens in a new tab)
- Software license
- GPL-3.0-only (opens in a new tab)
- Commercial use
- Allowed
This repository contains executable files that Robotheca doesn't check. Only run them if you trust the creator.
Which files (2 scripts, 2 programs or installers, 6 firmware images)
- android/.gradle/7.2/executionHistory/executionHistory.bin (opens in a new tab)
- android/.gradle/7.2/fileChanges/last-build.bin (opens in a new tab)
- android/.gradle/7.2/fileHashes/fileHashes.bin (opens in a new tab)
- android/.gradle/7.2/fileHashes/resourceHashesCache.bin (opens in a new tab)
- android/.gradle/buildOutputCleanup/outputFiles.bin (opens in a new tab)
- android/.gradle/checksums/sha1-checksums.bin (opens in a new tab)
- android/balancebot.apk (opens in a new tab)
- android/gradle/wrapper/gradle-wrapper.jar (opens in a new tab)
- android/gradlew.bat (opens in a new tab)
- linux-fpv/scripts/start-ffmpeg.sh (opens in a new tab)
Photo

What it can do
Written by Robotheca from the project's documents.
- Balances on two wheels with four articulated legs
- Moves forward, backward, and turns using wheel motors
- Adjusts leg length and posture for stability and cushioning
- Receives remote control commands via Bluetooth or WiFi
- Streams video from an onboard camera to an Android app
- Supports Bluetooth pairing to configure WiFi settings
Bill of materials
This repository has no parts list Robotheca can read yet.
Build guide
The creator's steps, each with its instructions.
- 1Mechanical Assembly
- 2Electronic Circuit Assembly
- 3STM32 Motor Driver Firmware
- 4ESP32 Motion Control Firmware
- 5Linux FPV Module Setup
- 6Android Remote App Configuration
The guide appears here as you scroll.
Guide by @Skythinker616 (README_en.md), under GPL-3.0-only.
More guides
Wiring and electronics
Notes written by Robotheca from the project's documents.
Main parts
- ESP32-C3 microcontroller (main control module)
- STM32 microcontroller (brushless motor driver board)
- MPU6050 gyroscope and accelerometer
- Four 4010 brushless motors (articulated joints)
- Two 2804 brushless motors (wheel motors)
- CAN bus for motor communication
- Bluetooth module for remote control
- TJA1050T CAN driver chip
- Li-Po battery (3S, 800mAh)
- NanoPI Duo2 board with WiFi and Bluetooth (optional image transmission module)
- OV5640 camera (optional image transmission module)
Connections
- ESP32-C3 connected to MPU6050 via I2C for sensor data
- ESP32-C3 communicates with STM32 via CAN bus for motor control
- ESP32-C3 uses Bluetooth for remote control commands
- STM32 drives four 4010 motors and two 2804 motors via dedicated motor drivers
- NanoPI Duo2 (optional) captures video from OV5640 camera and streams it via ffmpeg/ffserver
- NanoPI Duo2 connects to ESP32-C3 via Bluetooth for control data forwarding