top of page

Sensing System

    In order to detect the barrier on the window, the robot has two different sensors installed: ultrasonic sensor and IMU.As shown in Figure 1 below, the ultrasonic sensors are mounted on a customized bracket. Four ultrasonic sensors in total are used to detect the distance between the robot and the barrier. The basic barrier-crossing threshold is 8cm. When both ultrasonic sensors on one side detects an object at the threshold distance, the robot will start crossing mode.

Figure 1:  The customized ultrasonic sensor bracket and the mounting location of the ultrasonic sensors

 

    An IMU unit is also mounted on the Arduino to detect and current position and rotation angle of the robot. All the information is sent back to the Arduino to control the RC servo for body rotation.

Cleaning System

    For cleaning system, different materials have been discussed before the mid semester. After carefully weighed the different features and trait, two materials have been selected: felt and sponge as shown in Figure 2. Felt was chosen as our final decision. Between the two materials, several features were discussed: density, flexibility, saturation rate, and cost. In order to fulfill our requirements, the cleaning material needs to have a proper softness. Sponge is too soft compared to felt to clean the surface uniformly. Both materials are flexible and easy to crop. In order to test the saturation rate, two materials were wetted and applied on the window randomly wiping for 6 minutes. Results showed that both material can be wet after 6 minutes. However, sponge is soft and higher in saturation rate, which leads to a solution dripping problem when large force is exerted. Both materials are easy to get and relatively cheap compared to other components. Based on the above discussion, felt has been chosen as our cleaning material.

 

 

 

 

 

 

 

 

Figure 2: Felt and sponge

 

    The shape of the cleaning platform has been changing since the mid semester. The first design is shown in Figure 3. The two suction cups can be fit into the two crescent holes. The extended part is used for cleaning the suction area after each transition.

 

 

 

 

 

 

 

 

 

 

 

Figure 3: First cleaning platform design

    After several redesign of the robot, the final cleaning platform design was settle. In Figure 4, the crescent shape hole has been modified to round shape due to the fact that the ring spring is moved to the side of the robot. 

 

 

 

 

 

 

 

 

Figure 4: Final cleaning platform design

Body Rotation

    To rotate the body, sufficient torque needs to be generated around the suction cup.  Figure 5 shows the bottom view of the robot and the relative motion that the torque will generate.  The image in the center shows the servo assembly responsible for generating the torque. The winch servo selected for the job can rotate 8x with 150 oz-in of torque.  A gear ratio of 8-1 is applied resulting in a final range 360 degrees with 1,200 oz-in. of torque. The cup assembly slides through the center of the larger gear shown in Figure 5 and is rotationally fixed by six grooves milled into the aluminum tube.  A ⅝ in. hex bolt fits securely into these six groves. A cross section of this fit is shown in Figure 5.

 

 

 

 

 

 

 

Figure 5: The Robots Motion Around a Suction Cup (Left) and the Servo Assembly Responsible for the motion (Center).  A cross section (left) shows how the cup assembly is fixed to the rotating tube The inner circle is path of the vacuum.

    Torque calculations were done prior to build, but early prototypes could not complete a full rotation because robot length and pad friction varies greatly from our initial estimates.  Ultimately, the robot had to be shorted (from 16in to 8in) and the gear ratio increased (from 4x to 8x) for rotation to be possible. Neither of these changes negatively influenced other subsystems.   

Linear Cup Actuation

Linear motion of the cup is key for cup transfer and barrier crossing.  Linear actuation is accomplished with a linear servo that has a range of 50mm.  This servo is connected to an arm that is then connected to the cup assembly. The cup assembly slides through an grooved aluminium tube with the cross section shown in Figure 5.  The linear motion subsystem is shown in Figure 6.

 

                     

 

Figure 6: The Linear Actuation of the cup in the actual robot (Left) and an illustration of the system on the right.   Linear actuator motion (Green) drives and arm (Gray) to move the cup assembly (Blue). The aluminum tube and linear actuator body are show as black.  


 

    Many iteration of cup assembly and actuation arm were tested.   Early prototypes had binding twisting motions. A swivel needed to be added to the cup assembly to prevent wire and tube twisting.  Many actuator mounting positions, and actuator arms were tested to avoid binding. The cup assembly needed to be made longer to allow the actuator to hit its internal limit switches.  Without this last change the linear actuators would stall and burn out. Ultimately, the linear actuator system was working as intended. Despite this fact, cup transfer was not reliably achieved.

Suction

The suction system was designed to supply vacuum to the cups in a controlled manor.  A small DC pump was selected that could generate 20 in.-Hg of vacuum. This each side of the robot was controlled with a 12 volt solenoid valve.  A adjustable pressure switch was added to monitor pressure and therefore cup sealing. 3 inch cups capable of 30 lb. of holding force were selected.  Several brass fittings were added to make the cup assembly the proper length. ¼ in. tubing and fittings are used to connect the different components.  Figure 7 shows the suction system on the robot and its architecture.


 

           

 

 

 

 

 

 

Figure 7: The pneumatic path for one side of the robot (Left) and the p&id for the entire robot (Right).  The air travels through the cups past valves and a switch before being pumped back to atmosphere.


 

    The suction system worked well for the robot.  The pump supplied more than enough vacuum for secure the cups and therefore the robot to the window.   Changes were made throughout prototyping to the cup assembly and tube layout. The pressure switch did not work because of its sensitivity to orientation.  The relays and the motor provided substantial electrical noise for the rest of the electronic system.

Electronic System

    The electronic system uses a 12 volt input, and a 12 volt to 5 volt converter to power the servos and relays. We used a converter instead of 5 volts from a power supply because it enabled us to only use a 12 volt battery. We also ran into throughput issues from the power supply’s 5 volt line, so using the converter allowed us to get the higher throughput of the battery. While we initially planned to use one 12 volt line to power everything, we ended up using 2 batteries and a power supply. The reason for this decision was rooted in electrical noise generated by the pump. It created a great deal of noise in the servo’s 5 volt line, which caused a nontrivial amount of jitter. Moving the pump to its own battery also proved useful for increasing our suction strength as we could run the pump at 14 volts instead of 12. Although the pump was rated for 12 volts, because it is a DC motor at its core, it wasn’t very harmful to run it at a slightly higher voltage. The power supply was used to power the solenoid valves. We had to do this later on because the natural inductive nature of the valves was creating too much of a voltage drop on our 5 volt line.

We used ring terminals for connecting the wiring for our components. While it wasn’t as sleek as soldering all the connections together, it allowed us a great deal of flexibility for removing components quickly and testing. If we did it again, we would likely use a power distribution block to create a more elegant apparatus.

As mentioned above, we saw a great deal of noise in our 5 volt line due to electromagnetic interference from the pump. Were we to redo this project, we would likely switch to a DC motor or a higher quality servo to create a more resilient system. While the DC motor would have required a more complex PID loop to control the angular position compared to the servo, we would have gained a cheaper and more versatile component.

Coding and Motion Planning

    The robot rotates with one of 2 servo motors alternatively. Angular displacements for each servo in each move are well calculated in the program to ensure the robot gets to the correct position. While a servo is rotating, the program also presets a proper angular position for the other servo to prevent it from rotating beyond their working range.

After a servo rotates the robot to the correct angular position, the robot has to attach a window with the other suction cup. This is what we call a transition. A transition makes the robot actually “move” instead of rotate in the same position. The program actuates linear actuators and valves in a proper sequence to make transitions happen.

With proper combinations of rotations and transitions, the robot can move back and forth between the two vertical edges of a window, and go downward whenever it needs to relocate or cross a barrier. All these combinations are written in the program.

    The top-left corner of the window is the initial position defined in the program. And the position of the robot was defined as the current center of rotation. The robot keeps updating the record of its position after initializing every electrical component, so it can change its state based on its position. For example, whenever it reaches the edges, which means the distance between an edge and the robot is less than the length of the robot, it relocates itself in place. The position of each edge was hardcoded in the program. In Figure 8, the footprints of the robot in the simulation program show the basic moving pattern of the robot.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Figure 8. Footprint of the robot

 

    In addition to positional information, the robot reads in data sent by IMU and ultrasonic sensor. Arduino libraries, FreeSixIMU and NewPing, are used to translate data from IMU and ultrasonic sensors respectively into useful information. IMU is used as a feedback of the current angular position while ultrasonic sensors tell the robot which side of the robot is too close to a barrier.

Pittsburgh, PA, USA

©2018 BY WINDOW MONKEY. PROUDLY CREATED WITH WIX.COM

bottom of page