The code which is mostly written by me, using python3 along with some typical libraries for the task, for now implements a walking loop inside a kinematic model, so you can command a pose to the body, as well as feet position and also velocity and directinal commands for the walking loop. Controlled by a ps3 controller via bluetooth.
Arduino is used for speed up the reading and writing of signals, so in the future i can add other sensor, as well as position feedback...
Lets see what this under 500$ robot can do:
Project log index (updated):
- Model and code explanation.
- Robot experiments.
Why building a quadruped robot?
Appart from the interesting control problems that this robot involves, there are lot of interesting tasks this it can carry out and they are beginning to be demonstrated, as we have seen with Spot robot in the 2020 pandemic:
It's obious that there is still lot of work to do, but we are at the time where we can built one of these in our homes and have a very good aproximation of it.
There is a key factor in this robot, it doesn't need roads in orther to operate, so it can reach places that are very hard for a wheeled machine, so these 4-legged robot are ideal for tasks such as surveillance, recognition of areas not passable by vehicles and even rescues in areas with danger of collapse.
Finally, it is clear for now, that my robot isn't able to do those tasks, but for now i am satisfied that the robot walks stable and who knows if in the future it will be able to bring me a beer from the fridge, just by telling to it: 'dog bring me a beer!'
What problems will you face with this robot?
These legged robot have always amazed me, but it was hard to find easy to understand research, as well as a non-trivial mecanical designs plus complex maths. This makes the project hard to achive good results with DIY resources. So i rolled up my slevees and started reading papers from different investigation groups in the subject.
What my project apport to the maker community?
As this project is multidiciplinary, appart from designing my own version of the robot, i focused on its maths, solving different problems related with the movement of the robot, making a very looking forward model which only implements the maths necessary to run the robot, showing how every equation is related with the real robot and givin a general view of it.
This is not the most robust way of building a model, as in real world robots there are lot of additional maths methods in order to pulish the behaviour of the robot, for example, adding interpolation methods would make the robot performs smoother or building an state stimator + filter (kalman state stimator) would let you do very preccise meassurements on the robot and make its movements even more natural.
Visual scheme of electronics and model.
As you can see in the scheme, in this setup i use one bulk converter por 3 servos, with 4 bulk converters in total. This is because each servo drains up to 4A peak.
NOTE: This would not be a rigorous way of wiring, it is just a drawing.
This project uses the GPL v3 license for all software related.
This project uses the Attribution-NonCommercial-ShareAlike 4.0 International for all hardware components.
Robot Update (AUG 2020)
Great news to the project, as it has been one of the finalist inside the WildCard challenge of the HACKADAY PRIZE 2020.
So this moth will come full of new updates along with a very nice video for my contest submition.
Robot Update (JUL 2020)
- Finally the code used on the Raspberry PI is updated. You can check it on the GitHub repository. There is lot of thing to polish but it is working for now.
- Finally the new version has been released, in the instruction section you can check how the robot was built, plus building details and all the STL files used are in the file section.
- The video of the building: i link it here as i think it is a very nice video and very relaxing, no matter if you wont built the robot, it is worth watching.
- I have just finished printing the final version. But before i share the files i want to documentate all the building progress, for now i'm working on a rigorous electronics scheme and editing a nice video showing how to built it! (i'm working really hard on it)
- Electronics are also finished but first i have to verify they work out of the robot, then recalibrate the servos and... OMG!! THE WIRELESS VERSION WOULD BE FINISHED!! I'm very exited about that.
Robot Update (JUN 2020)
- I achieve to implement the step trajectory of MIT cheetah robot, i explained this on the Step trajectory and Gait planner (from MIT cheetah) log. The improvement is obvious.
- The second version of the robot is almost done, just check all bolt and nut holes and things like that, here is a render.
- Most of the time the robot is disassembled and i will need to wait until i can print the new version (Final exams comming) which would be much lighter. Until that i'm starting to configure raspberry. (Powered by the batteries)
- For now the code runs very well on raspberry but it is a bit slower than pc reading the data coming from arduino. Also raspberry is not powerfull enough to run pybullet on GUI mode, but on DIRECT mode it takes the raspberry at 40% of its capacity.
- About the electronics, i'm going very carefully on it as i don't want to burn anything. So the safest way here is to add bulk converters for the servos. These can be IoT bulk converters, but there are also nice alternatives that are the UBEC used on RC cars, they can supply up to 20A, and some of them have jumpers to select the output voltaje. There are different options here, using two that supply up to 20Amps or go for four at 10A, i'm using four UBEC with max current at 12 A feeding 3 servos each.
- Also i'm working on a lighter version of the robot as the servos are a bit overloaded, i realized the parts are printed with 5-6 perimeters and up to 4 solid layers, weighing about 100 g for a femur. However, 2 perimeters and 2-3 solid layers the same piece weighs 40 g.
- For next version i will make the body higher, becouse there is no much room inside. The batterie box is made for 6x 18650 litio batteries with the typical frame sold out there. Also 4 resistive sensor will be added in order to read the vertical contact force. These renders aren't final version, there are lot of things to polish in order to make the design buildable.