The past week of my robotics course has been focussed on the practical project. I ended up deciding to go with the robot dog, with the end goal of making it walk in a straight line and stopping if it sees a wall too close to it. This project was more ambitious than I anticipated. I knew going in that this would be a challenge, but to what extent I did not know. The project started off relatively well. And constructing a prototype by a time I wanted it done posed no issue. Early in this project I had created a simulation of the wiring required. I chose to add a button that would start the whole sequence of walking, which was easy to implement. Adding four servo motors was somewhat difficult going in, but adding a battery pack solved that issue (the hardest part was finding the right type of pack). Once I had the electronics working, I grabbed some thick cardboard and starting cutting out a rough shape for the parts to be attached to.
This prototype, while not the sturdiest, worked reasonably reliably. At first. After a few tests the joints at which the servos connected the legs kept falling off as it walked. I thought this issue might be due to the sluggishness of the code. I thought this issue wouldn’t be too tough to solve at first. Little did I know that this problem would present itself up until the final design. The fix for now was to press the legs in harder and find a smoother surface for it to walk on, which worked. From here, now that the electronics worked, and the code for the legs was optimised, I was able to move onto designed the final model. This started off with me designing a case to house the electronics in fusion 360.
This design, I thought, was suitable for housing all the parts. There was a plate at the front for the Arduino Uno unit, a space at the back for the breadboard, and a slot in the centre for the battery pack. It also had the four spaces for the servo motors. While this design is good, it was incorrectly scaled. This caused quite dramatic issues. The only thing that fit was the breadboard, as the servo spaces were all too small, and the battery pack slot was barely too short. The Arduino unit at the ‘face’, however had a different issue. It turns out forgetting to select “support structure” caused halve the face to melt, which had to be cut off for the unit to fit. This, while frustrating, were all easy to fix. The face could be cut off slightly, and the holes sanded down.
The next part is where everything started to suck. The issues with the legs came back from the first prototype. This time it was caused by the electrical components being too heavy, something I forgot to think about initially as the electronics were all next to the robot. This caused the biggest issues. I tried many different workarounds, including changing the shape of the leg, adding grips, and even changing positioning of the servos. The solution I landed on wasn’t the best, but it worked. I used doubled sided tape around the bearing joint to both add adhesion, as well as filling any gaps. The legs still sometimes fell off, but now it was uncommon. From this point came another issue. As I plugged the battery pack in, nothing happened. I knew the batteries couldn’t be dead as they were relatively new. It turns out the power wire inside the barrel jack had disconnected. This issue I wasn’t sure at first I would be able to solve. But it turns out I have a soldering iron, and learned there how to solder wires. Although not a difficult process, it was definitely annoying getting the wires to stay in place. But eventually it was soldered and I was able to get on with the project. Adding the final parts, I ended with a robot dog that was able to do what I initially wanted it to do. And it felt good to have completed this. Although it could walk, It was extremely slow, but at this point that didn’t matter to me. This joy ended quickly as now both the wires had disconnected within the barrel jack. But at least it was after the project was finished.