Our final robotic system coupled three subsystems together to adhere to a window, walk across its surface, and rid it of dirt and debris. Seen below, two linear actuators supply two degrees of freedom that move vacuum cups and cleaning pads across a windows surface, progressively stepping horizontally and vertically as contact between either a system of the cups or microfiber pads and the window is altered. This change of contact is allowed through our rack and pinon systems that raise and lower our stepping system with a high level of accuracy. This stepping motion is controlled by our custom PCB that coupled with our motor driver, supply and distribute the logic for our robot system to function properly.
To adhere to the wall, we utilized a pneumatic system that applied vacuum pressure to sets of suction cups. The system started with an air compressor, which took in air and compressed it to a higher pressure, which we generally set to about 80 psi, as our pneumatic tubing was rated for this pressure. Air flowed from the compressor to two sets of three-way solenoid valves - these valves would alternate flow between two pneumatic lines to apply alternating flow to our horizontal and vertical suction cups. After these valves came Venturi vacuum fittings, which utilized a Venturi mechanism to apply downstream vacuum pressure. This allowed our suction cups to create a vacuum upon making contact with the window surface, providing strong adherence to the surface. Our setup, with the solenoid valves, vacuum fittings, and pneumatic tubing, can be seen in the Figure below
To ensure adhesion at all times to the window, we utilized two suction cups on each side of our robot. At all times, a minimum of four oppositely-located suction cups were activated with vacuum pressure, providing us with the support to restrict all forces and moments acting to remove the robot from the wall.
To allow our robot to move to all areas of the window surface, our design utilized two linear actuators connected in a “t” formation, as can be seen in the Figure below. These linear actuators were simply DC motors with a ball-screw mechanism that translated a carriage back and forth. We mounted these carriages to one another through a connector that allowed motion in both the vertical and horizontal direction. In doing this, we gave our robot two degrees of freedom: one to move vertically along the window surface, and one to move horizontally.
Another component of our robot’s locomotion was a rack and pinion-based system to raise and lower the suction cups and cleaning pads. There were two rack and pinion systems, one on each side of the horizontal linear actuator. A DC motor with two pinions fit onto the shaft was mounted on each side of the actuator. Then, two oppositely oriented racks were implemented to mesh with the pinion. One of these racks was rigidly attached to the suction cup assembly, while the other one of these racks was rigidly attached to our cleaning pad. These were attached in such a way that when the motor was driven, one rack would move upwards while the other rack would move downwards. The final design of this system is depicted in the Figure below.
Utilizing these linear actuators, the rack and pinion systems, and the suction cups in sync, we were able to execute an inchworming motion in two dimensions along the window surface. This locomotion consisted of methodical steps to allow motion while guaranteeing adhesion to the window. To move horizontally, we would first apply suction to only the suction cups on the vertical linear actuator. We then would raise the horizontal suction cups utilizing the rack and pinion system and drive the horizontal actuator’s carriage across its stroke. When this stroke was completed, we would bring the horizontal cups back down to the window surface and transition suction from the vertical to the horizontal cups. Next, we would again utilize the rack and pinion system to raise the vertical actuator suction cups off of the window, and we would drive the horizontal linear actuator’s carriage across its stroke. However, since the suction was on the horizontal linear actuator’s suction cups, this time the vertical actuator would translate across its stroke. After this, we could transition suction and repeat the whole process over again. The general logic of this path, in two dimensions, can be seen in the Figure below. The exact same logic was utilized to get our robot to translate vertically. The only change between moving horizontally and moving vertically was which actuator was driven when, and which suction cups had vacuum pressure applied to them.
We utilized these two degrees of freedom to follow a snake path about the window. That is, we started at the top left corner, moved horizontally to the right, and then moved downwards upon sensing the end of the window. After this, we moved left across the entire window, moved downwards when the end of the window was sensed, and then repeated the process. To overcome barriers, we utilized the exact same process as we did to walk; however, we used the rack and pinion system to raise the suction cups to taller heights in order to be able to cross over the barrier.
Our cleaning system consisted of some two-foot by two-inch long microfiber cloths at each end of our robot. The microfiber cloth was attached to some acrylic bracings utilizing adhesive, and then this bracing was rigidly attached to one of the racks through two corner brackets. In doing this, we were able to lower our cleaning pads to the window surface whenever doing a cleaning stroke, and then we could raise the cleaning pad off of the window to overcome any barriers.
Because we had these cleaning pads being driven by our DC motors through the rack and pinion system, we were able to apply a high normal force, and thus a high friction force, to the window. This allowed us to truly scrub the window down and remove dirt and grime from the surface. We applied a window-cleaning solution across the length of our pads to ensure that dirt and grime could be easily lifted.