Skip to content

candreszg/low_cost_humanoid

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Low Cost Humanoid

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.

Robot Waving CAD Model

The other goal was to win the humanoid boxing robot competition, between Ben Bolte and our team during the hackathon.

Mechanical and Electrical Components

CAD

OnShape: https://cad.onshape.com/documents/cacc96f8a7850b951e7aa69a/v/c2b8fb3a999aade7349c887f/e/d466d644261b5146fb5a1714?renderMode=0&uiState=66d6c8c2a2a8a0713efb762e

Required Materials

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

Software Components

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).

Setup

/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

Websocket Control

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}

Future Work

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

Hackathon Team

Hackathon Team Photo

(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

About

Low cost open source mini humanoid

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 66.7%
  • C 32.3%
  • CMake 1.0%