Team Echoes

Zippy 2 (RoboMagellan)

 -Mission

 -The Build

 -Robot   Anatomy

 -Challenges

 -Competition

 -Intrepid

 -Other Robots

Hexapod

FIRST Team 1047

Summer Robotics Camp

Ben's Portfolio

Sergiy's Portfolio

 

The Build



April 13 - Ben went to Sergiy's to discuss a possible robot competition. We found the RoboMagellan site, and without much thought took our badge pictures and signed up. We had no idea what we had gotten ourselves into. Below are the badge photos we took and uploaded to the builders database.
 

April 14 - Since the competition required GPS navigation, we knew that we had to buy a GPS to mount on our robot. We found out that the Garmin eTrex was able to output data through a serial cable, and ordered it from Amazon. How the microcontroller was going to read the data, we weren't quite sure...

April 15 - Our initial design incorporated four 14" wheels so that the robot would be fast, able to drive well on grass, and go up curbs. We found the wheels at mcmaster carr.

April 16 - Sergiy drove to mcmaster carr to pick up the wheels and we bought metal from Industrial Metal Supply. Back at Sergiy's garage, we set up workbenches and battery charging stations. By the end of the night, the frame was assembled.

April 17 - It was time to mount the motors and wheels, but our initial design incorporated parts that blocked the necessary bolts. We had to rethink how the frame was held together.

April 18 - We bought the new parts necessary and reassembled the frame. The motors and wheels were mounted.

April 19 - Sergiy spent 12 hours soldering, crimping, and organizing electronics. When Ben got to his house after work, he made a mount for the electronics board that was supported by shocks in order to protect the electronics on rough terrain.

April 20 (AM) - Ben still hasn't left Sergiy's garage. At 4:20am the electronics are mounted on their shocks and a basic manual drive program is loaded onto the microcontroller. The robot can drive on grass, really really fast.

April 20 (PM) - Ben came to Sergiy's house to test the drive system. After some testing we determined that the robot was able to move quickly, however was not very manueverable. We thought that the four wheels would be able to turn the robot like tracks. This setup worked in our previous competition. However, it worked too poorly on grass. After some testing we also ripped the keys that held the wheels to the gearboxes. Limiting motor speeds did not resolve this problem.



April 21 - We went to Industrial Metal Supply to buy four caster wheels. At Sergiy's house the robot was remade to use only two 14" wheels and four casters for support. After assembly the robot was tested. The robot had much better manueverability but it was not powerful enough to move up small hills. We decided to order new gearboxes with a 48:1 ratio instead of a 12:1 ratio.

April 22 - Sergiy programmed the robot to respond to a yaw rate gyroscope sensor that gave the robot its current heading relative to an initial heading as well as the rate of change of the heading. This kept the robot on course in case it was knocked off by obstacles or varying wheel traction. Ben researched the GPS in an effort to get the microprocessor to understand its signals.

April 23 - We figured out what sensors our robot would need to navigate the course. We ordered sonar distance sensors and a light sensor from Sparkfun Electronics.

April 24-26 - The gyroscope's code was improved. The new gearboxes came and were mounted, allowing the robot to drive up moderately steep hills. At one point, we thought we had gotten data from the GPS, but this turned out to be false.



April 28 - Finally, we figured out that we needed a null modem to interface the GPS and the microcontroller. Once we got it, data from the GPS was quickly received.

April 29 - We found out that the "Robot Weight Range" of 50 lbs on the website was not a general guideline but a maximum weight. Unfortunately, our robot weighed in at 90 lbs. We dissambled the entire thing and reassembled with a minimalist approach.

April 30 - After a struggle with trig functions on the micrococntroller, the robot could turn to face a specified GPS location using the gyro. At night, one test was performed where the robot successfully turned towards a location and moved forward. However, this was at 12am when the sprinklers turned on on the field and a rescue mission was performed.

May 1 - Sergiy rebuilt the eletronics set up in order to make the robot more compact because the robot was still a little over the weight limit.



May 3 - May 9 - The robot was programmed to go to a series of GPS locations in order. At competition this would be used to navigate the course and approach the cones. The robot was also programmed to stop and go around something when its sigle sonar saw something in front of it.

May 17 - We figured out how to get the CMU-cam 2 to pan and tilt, as well as track objects of a certain color. This was only done in Sergiy's room, however, so the problem of different lighting had not yet occurred.

May 18 - The camera was installed on the robot and is taken outside where we met one of our biggest challanges: getting the camera to identify the cone in varying light conditions.



May 19 - Ben went out to the field to try to configure the settings of the camera to see the cone while facing the sun, and while facing away from the sun. Unfortunately little progress was made.

May 20 - Sergiy went out to the field to continue working on the camera. It was discovered that blurring the camera image made the cone appear more unified in color to the camera and eliminated some distant noise that was being picked up by the camera previously. The camera was now able to track the cone decently well, but only in certain lighting conditions.

May 21 - Ben and Sergiy went out to the field to continue working on camera settings. We concluded that switching the brightness of the picture, or auto-exposure, was necessary to effectively find the cone.

May 22 - Cycling exposures was figured out. The robot was now able to change the brightness of the picture it was looking at to find the cone much more effectively in any lighting condition. It no longer mattered whether the sun was behind or in front of the robot when it was looking at the cone because the brightness settings would compensate and allow the CMU-Cam to find the shade of orange it was looking for.

May 23 - Ben and Sergiy spent the day in the garage working on getting data from the Devantech CMPS03 digital compass. In the evening the PIC microcontroller was finally able to get a compass reading. The rest of the night was spent re-designing and rebuilding the algorithm that powered the motors according to gyro readings in order to get the robot to drive better in a straight line and to preform turns without overshooting the desired heading.

May 24 - The robot's new gyro algorithm was tested on concrete and was surprisingly successful. The robot was also mounted with two touch sensors which had little extensions coming off of them. After the installation of the touch sensors Zippy touched a cone for the first time! It turned out that Intrepid used the same exact design. After testing, however, this design proved to be too weak to withstand Zippy's driving style and was therefore replaced that night by a much more durable touch sensor design. This set up was kept all the way through competition.

May 25 - Ben and Sergiy spent the day getting Zippy to go to a GPS location, and to find a cone and touch it once it got there. This was finally achieved by the end of the day. Since Zippy could now do what the competition asked for, we had entered the "perfection stage".



May 26 - May 27 - Ben and Sergiy worked on improving the way Zippy searched for a cone once it had reached a GPS location. Since some GPS locations would be used as waypoints, not all of the GPS locations we gave Zippy signified a cone. For this reason, a configure option was also put in which let us choose which GPS locaions signified a cone, and which ones didn't.

May 28 - May 29 - A second sonar sensor came in and was installed, giving Zippy two sonar sensors. However, when two sonars point forward and are both working, they pick up on the sound that the other sonar emits. This gave the microcontroller false data. This was solved by turning the sonars on and off in sequence so that they would not interfere.

May 30 - May 31 - A gravity gimbal was designed and installed. This device was responsible for keeping the compass horizontal even if the robot was standing on a hill. The robot was then programmed to wait for a "stable" compass reading before setting off to drive the course. The compass was also used if the robot spun too fast (which would knock off the gyro) and after he touched a cone.

June 1 - June 7 - The robot was taken to various places that had things like trees, benches, and other obstacles, where the robot was configured further and very rigirously tested. Various ideas were implemented which made the robot more efficient. Most importantly, configuration abilities were put in, which let us specify whether the robot was on grass or concrete, whether there was a cone at the location that the robot was headed to, and if the cone was in sun or in shadow. The ability to specify whether the robot was running while it was sunny or cloudy was also added.

June 8 - This was the last official day of the build, and the robot had to be done and perfect by the end. On this very day we faced the toughest bug we had yet faced. The robot's microcontroller would simply reset, or turn on a light that said "Code Error" and would stall the robot. The complexity of this problem is explained in the "challanges" section. By the very end of the day, in the last minutes of the sun still being up, we figured out that the microcontroller simply could not handle the complexity of our program so it would trigger a stack overflow. With a little bit of optmization, the problem was taken care of and we had just enough time for one last test. This day showed us that we pushed the microcontroller to its very limits.

June 9 - June 12 - Zippy was tested further, and more importantly we got practice configuring Zippy for optimal performance.


This is a video of Zippy being tested a few days before competition. At the end Zippy stops due to a dead battery. Zippy showed the ability to move to sequential GPS locations, find cones that were in shadow, avoid obstacles, and touch cones.

June 11 - During further testing one of our gearboxes broke. This was the day before we drove to San Francisco, so it caused a large panic. The gearboxes were very expensive so we had no replacement. Thankfully we were able to disassemble the gearbox and fix the problem.

June 13 - The Filippenko and the Nesterenko families drove to San Francisco to prepare for competition.

June 15 - Competition.