DIY Spot Like Quadruped Robot
Intro: DIY Spot Like Quadruped Robot
This is a Spot like quadruped robot based on LX-16a smart servos (12 DOF).
This robot about 2 times smaller than Spot and about 250 times cheaper :)
All materials and parts required to build this robot cost about $300. It uses cheap smart servos LX-16A (~$15 each) that are power enough to move this robot, but not enough for jumps :)
NB! The latest version is available there:
STEP 1: STL Files and Robot Overview
STL files for 3D printing:
https://www.thingiverse.com/thing:4557938
Robot contains 4 legs, each leg has 3 servos.
Servos drives the 3d printed gears, the gear ratio is 1:2.
STEP 2: Assembly the Leg
The robot is too complex, so it is better to start with one leg.
3D print the leg's parts and check the bearing holes. Depends on 3D printer settings the holes could be too small and may requires a little extension using knife or other tools.
But in general, the bearings should be inserted tightly, without gap.
Here the 3D model of one leg:
https://github.com/RoboLabHub/RoboDog_v2/blob/mast...
Then assembly the opposite leg and joint their hips with two M3 bolts.
STEP 3: The Tune Up of Leg's Servos
Before completion with leg make sure that in the servos middle positions (500) the leg's joints positions are according to picture.
Use the following link to set the servos positions:
https://www.instructables.com/id/How-to-Configure-...
Here the example command to move the servo with ID 1 to position 500:
> python lx_setup.py set_pos 1 500
STEP 4: Assembly the Body
3D print the body parts. The body consists of middle tube inside the frame.
The frame consist of:
4x body_plane_L.stl
4x body_plane_R.stl
3x body_frame.stl
And the middle tube (optional):
body_center_tube.stl
STL files:
https://github.com/RoboLabHub/RoboDog_v1.0/tree/ma...
https://www.thingiverse.com/thing:4445119
All 3D printed items are jointed with small Phillips screws.
The body joints together the two pairs of legs, front and back.
STEP 5: Servos Setup
Now it is time to setup the servo IDs according to the provided pictures.
Attach one servo per time to smart servo controller and use the following link with instruction how to setup the servo ID:
STEP 6: G-Code Controller
For this robot I wrote the native G-Code controller that is available on GitHub:
You will find all required instruction how to compile it in this link:
https://github.com/RoboLabHub/RoboDog_v2
If you will compile and run this controller without code modification then it will move the robot to its first tune-up position according to the pictures.
The G-Code controller contains 2 tune up positions and example of G-Code file with different robots positions and walking styles. The more details description of G-Code controller and all its features is out of this instruction scope and requires separate instruction.
You can look at the demo video that shows some very complex movements that this G-Code controller supports.
STEP 7: Final Tune Up
Here the second tune up position that can be activated in G-Code controller by un-commenting the corresponding line.
The leg's joints angels between body and floor should be 90 degree when robot is not loaded.
You can fine tune the servo's offset (from -120 to 120 points) in G-Code controller as shown in code snippet.
49 Comments
steven sturgis 3 years ago
robolab19 3 years ago
https://github.com/RoboLabHub/RemoteControl
https://github.com/RoboLabHub/RoboDog_v3
There is also exist the virtual joystick on Android:
steven sturgis 3 years ago
steven sturgis 3 years ago
robolab19 3 years ago
cd ~/catkin_ws
catkin_make
source devel/setup.bash
rosrun robodog_v2 robodog_v2_hw
steven sturgis 3 years ago
robolab19 3 years ago
ls /dev/ttyU*
Try it before plugin servo controller and after.
One more issue could be with servo controller board thar you are using. According to photo it is microntroller board that mat be needs to be programmed. I used other one, without microcontroller.
steven sturgis 3 years ago
robolab19 3 years ago
https://github.com/RoboLabHub/RoboDog_v2/blob/master/sources/Services/RobotHW.cpp#L77
steven sturgis 3 years ago
robolab19 3 years ago
https://github.com/RoboLabHub/Tips/tree/master/Rob...
NB! The others PI4 configurations may not work.
robolab19 3 years ago
Do you see the /dev/ttyUSB0 port on Pi when you connects the BusLinker v2.x board with connected LX-16A and power (8.4v)?
Try to run the following python script on your Pi (but first replace the COM3 in SERIAL_PORT with '/dev/ttyUSB0' in lxsetup.py):
https://www.instructables.com/How-to-Configure-and...
Will it work?
And this also may help:
https://askubuntu.com/questions/112568/how-do-i-al...
steven sturgis 3 years ago
robolab19 3 years ago
The:
robodog_v2 robodog_v2_hw
is the command to run the main controller for V2. It runs and executes the gcode specified inside the program.
robolab19 3 years ago
steven sturgis 3 years ago
robolab19 3 years ago
You need this kind of board (BusLinker v2.x):
https://www.amazon.ae/LewanSoul-BusLinker-Debug-Bo...
steven sturgis 3 years ago
I can't access the usercfg.txt file. It belongs to root.
LeftSinister 3 years ago
I'd love to make it myself. However, in the tutorial I could not find how to build the torso of spot. Plus what camera did you put on top of spot?
steven sturgis 3 years ago
This will help you to get started.