This week in robotics I have started my final assignment, a practical assignment in which I must build some circuit to accomplish some task. I have chosen to attempt to build a very basic robot dog. This dog would have 4 servo motors to control its movement – one for each leg. This dog has the simple task of walking in a straight line and, if it detects a collision, it should stop moving. I feel this lines up well with the other assignments I have had so far in the semester, namely my first one being a report on Boston Dynamic’s Spot robot dog. Furthermore, my research report focussed on the SLAM (Simultaneous Localisation and Mapping) systems put in place to prevent spot from colliding with his surroundings. Although what I am attempting to build is not quite a SLAM system, it has the same general idea.
When I started this project, I wanted to break it down in to simpler components to build first. I started with a button in the centre of the Arduino. The plan for this button is for it to be what starts the robot dog walking in his line, has he would need to be battery operated in order to move far enough away I need some way to activate it. This button proved to be slightly more difficult than I intended. I initially looked through previous projects I had made which involved buttons, and after including all the components necessary in the software it repeatedly failed to do anything. After looking further into this, it was found that it was a hardware issue, one which was occurring due to me placing wires in the wrong spot. I learnt that day that buttons work on a diagonal, where certain wires had to be across on that diagonal in order for it to properly function.
The second component I went on to make was the servo motor. I expect the timing of all the legs to be the hardest part of this whole project. The wiring for the legs is very simple, and after putting everything together I got the servo to turn a set amount after the button was pressed. At this point in time the leg only moves 70 degrees in one direction and then returns to its starting position upon activation, and a method of looping the movements will have to come in the following week. After I got one leg moving, I wanted to see if I could manage to get all four servo motors moving in the same path from the button press. After plugging the three additional motors, and putting them into the code, I tested this and the legs all broke. I’m still unsure as to what happened, but I pressed the button and one servo moved the full distance, while the others moved slightly, but only a few degrees. I am yet to fix this issue, and I am getting nervous about how close this is going to be for the due date next week.