A lot has happened since part 1 of this project. A few months have gone by quickly. I made a lot of progress making the robot. During my time away from society, constructing a humanoid companion seems kind of fitting. The project is taking a lot longer than I expected, but it is moving along quite nicely.
Sensors
I looked into what would be the essential parts my new robot will need in order to learn balancing and move around. I decided I will need a gyroscope with accelerometer. The gyroscope will help provide orientation while the accelerometer will provide momentum. Knowing momentum will be used to determine how strong of a correction the robot will need to make when it sense a change in movement.
Frame
Next I would need to construct a lightweight frame. I spent a lot of time in this area. There are so many ways I could try to make it. I went with making the frame out of aluminum bars. This provided a cheap, lightweight, strong, and easy to work with material. Instead of actually engineering the frame, I can sketch up a concept and make the parts as I go.
The overall concept was modeled after a robot toy. I looked at each body part and the relative ratio to one another. I then thought about the amount of freedom each joint would need. During my research I saw others do as little as 16 degrees of freedom (DOF) to 28. I decided to start with 20 DOF for this robot. Some joints have 1 degree of motion like the knee and others have 3 degrees like the hip. I will add more later as I the robot progresses.
The hardest part of making the frame was linking multiple servos together. In the image above you can see the servos come with gear on one side. To make a stable connection each servo need a frame. The frame creates a second connection point on the back side of the servo. Below you can see the knee joint servo with a frame and leg extension attached.
The knee joint is relatively easy to make, but when I got to joints with 2 or 3 DOF. It got a lot more complicated. To keep the joint size as small as possible multiple servos will need to be combined into one part. Below is how I combined 2 and created a 2 DOF. Then when adding a third became nearly impossible. To make it work I had to attach it to the end of one. This depended on how I wanted the joint to function and where it made the most sense for this third axis.
Then comes the feet. I decided to go with wood on this, since it was easier to attach wood than created another custom metal frame. It ended up looking more like sandals than feet.
Putting it all together was the fun part. Took quite a bit of time to assemble and adjust things as needed. Yes the the robot is still missing a head and has no spine movement. Those would be future addition. The next part of this series will be the electronic portion. Where I will show how I wired up all the servos and control system. I hope the servos will be able to handle the weight of this design. If not then I am going to need bigger servos!
I hope you all look forward to my finished project. My goal is to have the robot learn to stand up and walk on its own. Then progressively add interactive features to it.
Resources
Servo
- https://learn.adafruit.com/circuitpython-essentials/circuitpython-servo
- https://learn.adafruit.com/adafruit-16-channel-servo-driver-with-raspberry-pi/hooking-it-up
Gyroscope + Accelerometer
- https://learn.adafruit.com/mpu6050-6-dof-accelerometer-and-gyro/overview
- https://learn.adafruit.com/mpu6050-6-dof-accelerometer-and-gyro/python-and-circuitpython