thientrinh66 / esp32-robot-dog-code

WIP: ESP32 powered robot dog, quadruped robot. This is just code, hardware in the other repositories

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Small Robot dog (quadruped)

Small robot dog

Hardware

  • ESP32
  • IMU (not implemented)
  • 12 servos TowerPro mg90d (hope it will work)
  • Two 18650

Software

  • Arduino IDE compatible

TODO

  • use power sensor and IMU

How to

Calibrate servos (create servoMainProfile)

  • Print servo_calib tool and install servo into it: circle plate with dots, 10deg each from 0 to 180.
  • use tools/servoCalib.ino and connect servo to 14 pin
  • open Arduino IDE terminal and input 1500 (and press Enter) - this should be servo middle and it should point to the middle dot of printed tool
  • decrease value to find minAngle and degMin values for it (start with 800 and decrease it until servo stop move, than return back one step, e.g. set 790 - servo moved, 780 - servo moved, 760 - servo don't move, use 780)
  • do the same to find maxAngle and degMax but make value and start from 2100 and increase values
  • great, now we know our servo limits (or at least what are the limits for lib+servo), time to find more accurate servo positions
  • input values until you will not find proper positions for deg30, deg50...deg130, deg150

Legs

Assembling

  • to assembly legs correctly print leg_calib tool/template one as it is and one mirrored for the other side of robot for Beta and Gamma angles, as also Alpha angle tool
  • power up servo and connect ESP32 to you computer, open Arduino IDE terminal
  • input set servo_to_calib to set all servo to position expected for printer tool
  • assemble legs as closer as possible to expected leg parts positions according to the tool (90deg, 45deg, 90deg)

Calibration

  • repeat steps 2,3 of Legs->Assembling instruction
  • input set help to see the list of available commands, we are interested in XX_HAL_trim_xxxx, e.g. LF_HAL_trim_alpha, where LF - left front leg, and alpha is the angle name
  • put Alpha leg tool on top of the robot legs servo, surface of tool should be (near)perfectly align with servos body, if not, use XX_HAL_trim_alpha value_in_deg command to set servo trim value, e.g. set LF_HAL_trim_alpha -3, it should not be too big, in other cases you need to repeat Assemble step
  • using tool for Beta and Gamma angles, calibrate/trim other servos

About

WIP: ESP32 powered robot dog, quadruped robot. This is just code, hardware in the other repositories

License:MIT License


Languages

Language:C++ 79.8%Language:C 9.6%Language:JavaScript 8.7%Language:HTML 1.9%