In order to facilitate testing, the Rover Writer was built in separate subsystems before being put together for the final assembly. The first system to be assembled and tested was the wheels. Originally, we planned to use stepper motors and drivers to rotate the wheels. Although our system lacked a feedback loop, by using steppers, we could more precisely track the movement of our robot. However, we experienced a lot of difficulty using the motor controllers, as we had a few different types each with their own complex wiring system, and two of them burned out after being wired incorrectly. In the interest of time and to ensure that we had a functioning model to display at the final presentation, we made the decision to switch over to continuous servos for our wheels. With these servos, we had to calibrate the system by varying the pulse-width and the duration of the signal sent to each motor, rather than sending them a number of steps to rotate like we would with stepper motors. This made it more difficult to predict exactly how far the wheels would turn when moving through the drawing. A future system would likely return to the steppers and incorporate use of the myRio's built in accelerometer as a possible feedback source in order to produce a more accurate drawing.
The video above demonstrates some of our original tests on the servo-wheel system. As can be seen, we were able to detect that one of the servo's was defective. When exposed to an identical signal, it experienced sticking and did not rotate at the same rate as the other servo. This problem was corrected by simply replacing the defective servo.
After the wheel subsystem was assembled, we focused on the platter rotation. When designing our robot, we decided that the most accurate way for it to draw a picture was for each pen to come down in the exact same spot relative to the body of the robot. This ensured that when our robot was putting down marks, they would be consistently spaced across the page. However, because we wanted to use multiple colors, we decided that it was necessary to rotate the sharpies' positions. To do so, we elected to mount a platter to 180 servo and attach each sharpie system to one side of the platter.
As can be seen above, both our wheel subsystem and the platter rotation system functioned properly. The overzealous rotation of the platter seen in the video would eventually be corrected during our calibration process. This reduced the stress on structural components, reduced the waiting time for the sharpie to settle, and prevent ed the rotation of the fully laden sharpie platter from jerking the robot out of line.
The final subsystem to be assembled and added was the sharpie configuration. Each assembly comprised a 180-degree servo for raising and lowering the pen, a laser cut acrylic piece for mounting the pen to the servo hub and for adjusting the sharpie position, a 3D printed ABS piece that secured the sharpie in place, and the desired color sharpie. We found that one of the sharpie's systems was not operating properly, but after using the oscilloscope, we were able to diagnose the problem as a faulty connection.
After the assembly was complete, all we had to do was calibrate it. The areas we planned to control included sharpie height and the resultant stroke, distance traveled by the wheels in the x-direction (determined the spacing horizontal spacing between marks), distance traveled by the wheels in the y-direction (determined the vertical spacing between marks), and the return distance of the wheels (controlled the alignment between each row of marks). Initial tests were carried out on the floor of bray, yet after many confounding trials with conflicting results, we realized that the floor was far from level. At this point, we switched to testing on a table and quickly adjusted the sharpies to the the proper height. X and Y travel were then tackled. We found that at times, the Omniwheels would slip, due to varying friction and the position on the wheel in which they landed (since the wheels are not 100% uniform). After we made some adjustments, we settled on a satisfactory travel distance that would prevent overlapping of marks. While slipping for the X and Y travel caused small inconsistencies, it had a much greater effect on the return distance. Even after multiple calibrations, we found that we were only able to roughly estimate the return distance of the printer, and decided we were going to have to deal with each row being started at a slightly different point in the x-direction.