This week we made significant progress in the code and streamline of our turn taking. The robot can now move to the tower, extract a block, and proceed back to our designated player space from the tele-op commands. We would still like to make the process fully automated, but with the competition fast-approaching and the difficulty of automation significantly increased by things as simple as getting the robot to try to pick looser blocks (which is very hard for computer vision to visualize without a physical poker or sensor) we are concentrating our efforts in other areas.
This shows the full set of actions the robot will perform in one turn. The robot can only access three sides of the tower to remove side blocks. This process is still being streamlined. We are given 1 minute for each turn. This demonstration is a little longer but the code will soon be entering simple commands with much less typing and the robot will help keep track of where it is positioned so the operator cannot accidentally knock over the tower.
This video shows the previous command process. Currently it is a slow process because we were manually writing raw echo commands. This has been streamlined in our current software and we have several helper functions to combine several movements into a single command. If we had time to develop computer vision or add other sensors to our robot we could completely automate this software.
The spinning donut has a limit switch on one end of its rotational arch so it can be homed between turns. We decided this would be easier to do than using encoders on our motors. Because we only spin to one side of the tower each turn, the motion is very consistent and does not require encoders, but we realize the error caused by using this method will increase over time and to correct for that we used the homing position. The vertical homing limit switch allows for a similar process.
One of the more crucial challenges we overcame this week was moving the robot from our area in a straight line and ending directly over the tower.
Because of a design decision made early on, the wheels were simply screwed on to manually threaded axles for ease of removal and cleaning. We relied on the wheels on either side balancing the other's frictional forces so they would roll together. However, this turned into what was essentially a mechanical failure of the wheels, which would lock or spin freely of the axle if they were even slightly misaligned and friction became too much (or too little).
To remedy this, we replaced the hand-threaded 1/4" axles with 1/4-20 threaded rod, and Loctited the outer wheels into place. This also fixed a related issue we were having with the drive gears slipping on the rear axles. Now the robot is able to approach and retract from the tower with minimal error.
Currently, the inner wheels on all four axles are still removable, in case we need to adjust something, but the Loctite is ready if they begin locking or spinning when they shouldn't.