Tuesday, August 11, 2015

Week 5: Servo Motors and Circuit Testing

In the final week, new servo motor circuits had to be made. I had to find a way to turn very strong and powerful open loop motors into servo type motors. I decided that it would be quicker to salvage the servo circuit from toy servo motors but replace the H-Bridge and the potentiometer system. I created modified H-bridge circuits that ran off of the two wires used to power the motor in the toy servos. This allowed huge current and voltages much higher than 6 volts, the maximum for the toy servo motor circuits, to drive very powerful motors. After I decoupled the power rails of the modified H-bridge circuits I had no problems with MOSFETs breaking. After I found a proper way to mount the potentiometer, the new servomotor circuits measured position quite accurately.

Week 4: Wheel Encoders

I created wheel encoders using QRD sensors and black and white striped rings on the wheels. I designed a software algorithm to count every time the sensors detected a black then white surface. To prevent the software algorithm to increment from noise, I made a high and low threshold similar to an inverter with hysteresis. This algorithm was used to measure distance during tape following, and to travel set distances and turn 90 degrees.

Week 3: H-Bridges and IR Following


Because the previous H-Bridge circuits malfunctioned, I created new H-bridges. MOSFETs
were mounted on female header pins so they could be easily replaced. This turned out to be a very good idea because the MOSFETs were often destroyed if wires were connected improperly. I also created a very compact design so the circuits could save space within the chassis.

After completing the dual IR filtering circuits I wrote a control loop in software for IR beacon tracking. It interacted with the motor and allowed the robot to follow an IR beacon when both sensors were mounted in the front of the robot separated by a distance of 8 inches. It was also programmed to stop once the robot came close enough to the beacon. IR following is demonstrated in the video below.


Week 2: IR Sensor Circuits working

This week I was able to get the IR sensor circuits to work. Solder connection problems were resolved with more experience in soldering circuit boards. Noise problems were by decoupled the op amp power lines with 220 nF ceramic capacitors. I also replaced the female header pins with op amp mounts. It created stronger/more reliable connections for the 741 op amps and the rest of the circuit board. To create a signal between 1 and 5 volts corresponding to a distance of 3 to 8 ft from the beacon, I used variable resistors in the amplifier portions of the circuits. The IR sensor circuits ended up being a success. They did not break after repeated use and only had problems if the wire connections to the circuit board became loose.

Week 1: IR Sensor Circuit

I worked on dual IR sensor circuits used to track an IR beacon. Each circuit filtered and amplified a 10 kHz signal to create analog inputs that had a signal proportionate to the distance a 10 KHz IR emitter. A simplified diagram of the circuit is shown below. At first the circuits were not working due to noise problems, weak op-amp connections, and malfunctioning components. These problems were fixed in the following week.


Last Minute Setbacks

Ultimately, the robot competition did not go the way we had hoped. During the competition, Geronimo was only able to return one of the six pets to the safety zone. This was primarily the result of last minute failures that occurred hours before the completion began.

Perhaps the greatest setback occurred around 6:00am, just two hours before the playing surface was closed in order to prepare for the competition. We noticed that the magnetic sensor on the catchment plate was not responding properly, and as such, would not tell Geronimo to stop and remove the pet from the arm. As the lab was closed at this time, we were unable to simply wire up a new sensor. This setback prevented us from picking up more than one pet; had the sensor been functioning, we could have easily picked up the first three pets, if not more.  Though we were never able to confirm the cause the failure, we suspect a faulty wire was the cause.

Though the failed magnetic sensor was the most upsetting setback, it was not the only setback. Just an hour prior to the magnetic sensor failing, the wheel encoders and the IR detectors ceased to function, effectively preventing Geronimo from picking up pets on the upper level of the surface. Due to the time that was required to debug these sensors, we decided to move forward and focus on the three pets on the lower level of the surface.


We also experienced major setbacks involving the arm the day before the competition. For these, please refer to the section on Geronimo’s Arm.

Author: Josh Smith

Geronimo’s Arm

During the design process, we wanted to make Geronimo’s arm as simple and as elegant as possible. Because of this, we decided that the arm would consist of two parts:

  •           A parallel linkage oriented vertically so that the arms height could be adjusted
  •          A horizontally mounted arm that could rotate 180 degrees in order to account for the horizontal offset created by the parallel linkage
Initial prototype of Geronimo's arm.



Initially, we thought that we could use servo motors to control the arm. Our first prototype proved that these movement patterns were in fact possible using servo motors. However, there were some stability issues with various components of the arm. Additionally, the catchment plate that the pets were supposed to stick to changed orientation throughout the process, which limited the arms functionality.

A second prototype was made, with new servo mounts for the parallel linkage and a bracket for the horizontal arm. In order to maintain the desired geometry of the catchment plate, a fourth servo was added to the end of the horizontal arm.

Second prototype of Geronimo's Arm.


After the arms performance at time trials, we were concerned that the servo motors were not powerful enough to remove the pets from the arm using our chopping motion.  A video of this testing phase can be seen below.

Video showing second prototype's inability to remove pet.


In addition, the two servo motors controlling the parallel linkage were not able to be precisely calibrated, and so one was always a few degrees off from the other. Because of this, the servos would fight each other. Eventually one of the servos “won”, and we had a servo fire.

The problems with the arm caused us to fall behind schedule, and at this point, we decided that it would be in our best interest to start from scratch and make our own servo motors. The arm rebuilt took Dave and I two days, and involved us re-making the arm components to accommodate larger motors, gear systems, and potentiometers.

Solid model of final arm design.


The day before the competition, we began to have problems removing pets from the arm once more. We determined that the motor powering the horizontal arm was not strong enough, and so we opted for a stronger motor. However, when I was mounting the small gear to the motor we chose—something I had done with every previous motor—I managed to break the motor. In the hours that followed, the team searched for a replacement motor that would be strong enough to accomplish the chopping motion we wanted. This set us back even further.

We finally found a motor that suited our needs, and mounted it to the arm at 10:30pm, the night before the competition.

The servos that we made featured the following:

  •         3D printed bearings, to increase stability of the arms
  •         Potentiometers that rotated with the arms
  •         High torque motors
  •         Gear ratios of 3:1 for increased torque


The final arm design featured the following:

  •         An all-aluminum parallel linkage
  •        An aluminum horizontal arm
  •         A steel catchment plate attached via a zinc-coated steel hinge
  •         A magnetic sensor attached to the steel pin of the hinge to determine when the arm picked up a pet.



The final arm can be seen below.

Catchment plate and small servo mounted to end of horizontal arm.

Custom servo set-up driving horizontal arm. Nicknamed "Fat Bastard" by the team.

Custom servo set-up that drove the parallel linkage. Nicknamed "Satan" by the team.

Final arm design mounted on Geronimo.

Author: Josh Smith

Geronimo’s Drive System

The first system that was prototyped for Geronimo was the drive system. Early on, we knew that we wanted the drive system to be simple and powerful. We decided on large wheels and a large gear ratio (7:1) to ensure that the drive system would be able to drive Geronimo up the incline on the playing surface. Our initial prototype featured:

  •           Large gears (70 teeth), cut from acrylic on the laser cutter
  •          Small gears (10 teeth), cut from aluminum on the water jet cutter
  •         Wheels (6” diameter), cut from wood on the water jet cutter
  •          Barber-Coleman geared motors
  •          Tires cut from inner tube
  •         A large, 3/8” thick main axle
  •           Aluminum gear plates to aid in alignment


The prototyped version of the drive system can be seen below.
Geronimo with prototyped drive system.



While the prototyped drive system functioned, we found that there were alignment problems with the wheels. In the second and final iteration of the drive system, we added 3D printed bearings. These bearing fit tightly into the center holes of the wheels and large gears, and loosely fit onto the primary axle. The bearings removed the side to side play of the wheels while still allowing them to rotate about the axle. Additionally, self-fusing tape was used as tire material in the final version of the drive system. The final version of the drive system can be seen below.
Solid model of final drive system.

Side view of final drive system.


Author: Josh Smith

Geronimo’s Suspension System

A major part of Geronimo’s original strategy involved jumping down from the upper level of the course to the lower level in order to bypass the wall of fire. Unfortunately, last minute setbacks prevented us from making it to the upper level. We were, however, still able to utilize the suspension system and jump from the ramp down into the safety zone.

The original concept for Geronimo’s suspension system can be seen below. The sled was designed to absorb the majority of the impact from the resulting drop, while the spring system (consisting of rubber bands) was intended to absorb the rest.

Concept of suspension system, minus hardware and elastics.


In addition to absorbing impact, the sled was also intended to act as the forward pivot point in the drive system, thereby simplifying steering operations. As such, the QRD’s used for tape following were placed in the sled, so as to put as much distance between them and the motors as possible.
Initial tests showed that the suspension system was fundamentally flawed, as Geronimo would flip forward following his jump. This can be seen in the following video.

Video shot showing Geronimo flipping.


After analyzing the footage above, we determined that the problem was that the sled was not rigidly attached to the rest of the suspension system, thereby allowing Geronimo to rotate about the sled following the jump. This problem was solved by replacing the foremost axle with M6 hardware, which held the sled more rigidly in place.

Unpowered test ran to test updated suspension system.



The final version of the suspension system can be seen in the following figures.  
Geronimo's internals, including the elastics that make up part of the suspension system.

Fully assembled sled.

Final sled mounting.

Author: Josh Smith

Monday, August 10, 2015

Testing out the mobility of Geronimo
We have chosen to upgrade the robot's chassis and so I started working on this. During the last week many issues have risen with regard to the arm; the servos blew, we had to built custom servos, power to rip of the pets were not enough, and more. I focused more on the chassis, mobility, wiring, and software so while my team handles the arm I started to upgrade the robot and make sure my part of the work is done.

IR, QRD, Line following, magnetic sensor, have all been tested and all work. In the mean time i also wrote the master code which right now can run a dry run (we simulate the sensors to see how the system reponds) since we did not have the time to run the actual field so many times since many teams were lining up for it. It worked very well but we are still unsure on how it will work.

The blue geronimo was done by water jet cutting the name and putting blue tape on the inside an idea i randomly had and it turned out to be a great way to bring some cheap flare to the robot.

We got the QRD to work with some error, we also got IR following to work as posted in another video.

The current guts of our robot.

Week 3, things staring to heat up.

I start to focus on the wiring of the boards; initially we wanted to make a series of trays for TINAH and the circuits but after some arguments I convinced my team mates to use the chassis of the robot to house all the wiring and have a hinged cover. And so I started wiring things all day and we  came across a rather big problem; the TINAH would not fit properly within the cover and would be hard to access. So we decided to have the TINAH halfway into the chassis with half of it coming out of the cover.

Also as can be seen we started working on fixing our drive system. To do this we made bearings and better wheels and tires to remove some slipping problems. Things are going well at this point and we are back on track.

During this week I learned a lot of soldering skills and I am starting to love what I use to hate. I also done some programming for the line following.

Saturday, August 8, 2015

Along with the water jet machine, we had access to a laser cutter. It enabled us to make very high-precision parts with lighweight plastic materials like plexiglass and Delrin. In the video below, I demonstrate how it cuts out a small gear for our drive system:



Tuesday, August 4, 2015

This is the water jet cutter we had access to. It is a lot of fun to see the power of it cutting through sheets of metal. It made building a robot from sketch to reality much easier and allowed great flexibility in design.


At the end of week 1 I tested the h-bridges successfully, before they failed and had to be rebuilt!


Week 2, the reality of the task is starting to hit.

We are slowly picking up pace but it is becoming apparent that this is no easy task. There are so many different elements to building Geronimo which we must implement all together. This week was interesting since it was a week where we used the water jet cutter extensively and many mistakes were made during the mechanical creation of the robot. We had many arguments about details, one of the main problem we had was that holes were not to dimension; we could not fit holes properly to the rods we had. This was due to the unpredictable offset of the machines we were using. Also we had a general idea of each component for Geronimo but not their details. We should have went into their details in much more depth before building them. This resulted in a very not stable set of wheels and gears; we used acrylic for the gears which started to break really quickly, the wheels were not straight, and the wheels would even get stuck sometimes.

However there was a success this week; the suspension system. We went from idea to concept in a straight forward manner, and they worked very well! It was a great feeling to see something we designed work well and we had a lot of fun pushing down on the chassis to see it push back up and oscillate slightly. Although we did have few issues securing the rods holding the suspension system properly. We 3d printed c-clamps which seemed to get the work done for the moment.

Another thing I did this week was to build the QRD sensors for the line following of the robot. This was easy and straight forward. We came across an issue: the h-bridges I built last week started to fail for reasons we were not able to figure out and so I made the call to ditch it and have my teammate who is more experienced in electronics to solder new ones, we also took the opportunity to make them more compact.

Mohamed-Ali Hached












After a crazy term taking 5 classes, and very little time to actually think about the robot we are going to build for the next month we finally start actually building it.

I did not know what to expect, how things are going to roll out. It was all very new to me. And maybe the reality did not hit me until the end of the first week; things will soon get very hard and time will become a constrain. Getting in we were still confused as to how to proceed but we knew that we wanted to get the circuits done first as they were going to be constants throughout the project. I personally took on the task to build the h-bridge circuits.

This was my first job soldering components to a PCB and it turned out to be much harder then I expected. I was told to first put all the components of the circuit on the PCB, test it, and when all goes as expected solder it. This was not a good idea as the components had long legs that would shorts, and bad connections would make it hard to get a good test of it. Worst of all was the difficulty it brought with when actually soldering the components onto the PCB; there was just too many wires and confusion quickly became a factor. I built 2 h-bridge PCBs with full confidence on it's structure but they both failed. It seemed that the soldering contacts were not perfect. I practiced and got Quinn to help me solder the other circuits which eventually worked with the same layout. During this week my soldering knowledge really grew and I realised the importance of good practice in order to achieve reliable circuits for the robot. We ended up building two h-bridges.

Another interesting point during this process was thinking about how we are going to have I/O work to the circuit; we did not want to make it overly complex because in the long-run it would make our life hell. We also wanted the wires to lead in and out of the circuit in a sensible and clean manner. We ended up finding a great way around this.


We tested the circuit and got it to work. This is great since we have as a goal to build the mobility of the robot first. During this the rest of my team mates were working on building the mechanical side of the Geronimo. They focused on the chassis and drive system which is going great.

Mohamed-Ali Hached