This robot was built in 24 hours during the 2024 August 31st K-Scale Robotics Hackathon. Our goal was to create a very low cost ($270) and open source humanoid platform based on Robotis OP3 to be as accessible as Alex Koch's robot arms in the future as a humanoid research platform. This project is under development.
The other goal was to win the humanoid boxing robot competition, between Ben Bolte and our team during the hackathon.
Part | Quantity | Cost | Buying Link | Notes |
---|---|---|---|---|
ESP32-S3 | 1 | $15 | Link | Websocket communication |
LX-16A Serial Bus Servo | 13 | $16.99 | Link | Motor actuation |
Serial Bus Servo Connector | 1 | $9.99 | Link | |
7.4V Battery (Zeee 2S 2200mAh) | 1 | $15 | Link | Power supply |
4 x 3/8 in. Fasteners | 40 | $6.33 | Link | |
M2 x 4mm Fasteners | 13 | $4.5 | Link |
Total Cost: $271.69
The goal of the software control was to allow the user to control the servos via a wireless websocket connection (using the ESP32 as a WiFi module) to do high-level control of the robot (e.g., WASD keys for forward, backward, left, and right movement).
/server_control
contains the websocket server control code for the ESP32.
/wire_control
contains the motor servo control code.
# setup virtual environment
python3.10 -m venv venv # requires python 3.10
source venv/bin/activate
pip install -r requirements.txt
Controlling servos via websocket:
websocat ws://192.168.8.165:80/ws
Accept commands:
{"servo_states": [800, 800, 800, 800, 800, 800, 800, 800, 800, 800, 800, 800, 800]}
# where each value is 0-1000 for each servo from 1 to 13
#response:
{"response":"ok"}
{"servo_states": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}
and
{"get_states": 1}
# response:
{"servo_1":1,"servo_2":802,"servo_3":802,"servo_4":801,"servo_5":801,"servo_6":801,"servo_7":802,"servo_8":801,"servo_9":801,"servo_10":802,"servo_11":801,"servo_12":801,"servo_13":-1}
We plan to clean up the CAD and the codebase and add the following feature in the up coming weeks to offer an open source alternative to the Robotis OP3 platform:
- Classic controller
- Simulation (MuJoCo)
- Teleoperation
- PPO standing and walking policy
(we named him "David")
- Kelsey Pool - Mechanical design
- Denys Bezmenov - Eletrical and software control
- Jingxiang Mo - Mechanical assembly, electrical, and software control
- Baaqer Farhat - Mechanical assembly, software
Acknowledgements:
- Jacob Zietek - AI/ML and simulation help
- Saad Sharief - Teleoperation help