ENPH 253 Summer Robotics Competition
STEV-E took 12 hours in a lab, 5 days a week for just over a month to build and while we had a lot of success the days and weeks leading up to competition, the robot failed the morning of, ultimately resulting in a last place finish. This is the story of a robot called STEV-E, the ways in which it succeeded, the ways in which it failed, and everything we have taken away from the experience.
Software and Electronics
I am an engineering physics student with a keen interest in implementing software and electrical engineering. My main role on this robot was working with the microcontrollers to figure out the firmware including port manipulation and timer controls, communication between microcontrollers, and also a major contributor to the electrical circuit design/troubleshooting. Building this robot provided me with a newly discovered interest in low-level programming and firmware implementation, as well as electrical circuit design.
Mechanical Design
I am a third year engineering student at UBC with a passion for automotive engineering. I contributed largely to the overall mechanical design of the robot. I also built and installed both the IR circuit and bluetooth unto the robot. My experience over the summer has taught me a lot about mechanical design and troubleshooting electronics. This robot has given me a new found appreciation for the design process and the importance of design iteration. In my spare time I enjoy mountain biking, making my own music and collecting stamps.
Mechanical Design
As a third-year engineering physics student with an interest in the applications of engineering in medicine, I spend my time outside of the classroom working at the Aging, Mobility and Cognitive Neurosciences Lab at Vancouver General Hospital and giving music therapy to older adults at a residential care facility in Richmond. My experiences working as a mechanical assistant for VR Avionics Canada helped in preparing for ENPH 253. In my spare time I like to stay active by boxing and have a keen interest in both cars and motorcycles.
Software and Electronics
This summer our team built an autonomous robot. I have been drawn to electronics and software development, so working on STEV-E provided a unique opportunity to further explore these aspects in a practical, hands-on way. My responsibilities included writing the state-machine and PID code, designing a menu system, and creating a H-bridge circuit. Working with a team to meet a challenging deadline not only helped me improve my programming and troubleshooting abilities but also fine-tuned my leadership and problem-solving skills.
Our task this summer was to design and build a robot that could complete the course given to us by the instructors. This year’s course required robots to rescue four Ewok and one Chewbacca stuffy toys from the competition surface with various obstacles such as six-inch gaps and a rotating platform triggered by breaking an IR beam. Once rescued, the Ewoks had to be returned to the starting platform. Points were awarded for both pickup and return of the Ewoks/
The hinges on the sides of the plates were designed so that the plates would release when angled parallel to the competition surface.
The chassis was boxed shape, intended to house the electrical components and motors that drove the robot. The plate drop mechanism and plates were used to cross the two gaps.
The claws were extended out enough to grab Ewok’s located within 6-10inches from the tape. The claws are lightweight in order to be raised by the servo motor.
The bucket held the Ewoks and was designed to tip based on its centre of mass. The hooks above were used when raising the bucket to attatch it to the zipline.
The claws detected Ewok’s using a contact sensor switch mounted to the bottom of the claw arms. The robot would run into them with the contact and the claws would close and raise the Ewok into the bucket.
Once the third Ewok had been picked up, the robot would reverse into the side skirt, triggering two contacts (red), the servo (green) would then lower, and the bucket would dump the Ewoks back at the starting platform.
The robot was controlled by two blue pill stm32's that communicated using an I2C port. The master controlled tape following and the slave controlled the servos and encoders.
Rotary encoders were used to track the number of rotations the wheels made, allowing us to track our location on the surface without the use of tape.
An IR detector circuit was built to detect the frequency emitted by the IR beacon in order to pass through the archway without tripping the beam.
The robot used two sets of QRD sensors to follow the black tape laid down on the white competition surface. The sensors were set on an active height adjustment mechanism.
STEV-E failed to score a single point come competition time, placing him in last place. At 6am our robot became unable to follow tape and became unresponsive to input from any of its sensors.
The malfunctioning component on competition day was the I2C communication between the blue pills. The master blue pills inability to communicate with the slave meant that all sensors, including those used for tape following, were rendered useless and the master was unable to receive input or send output to the slave.
Our point of failure, above all else, was a lack of design iteration. Our robot was one of the first to be completed and was also the first robot to successfully pickup and dump three Ewoks. However, the speed we progressed at came at the cost of an increasingly poor design. We started with our initial design, but as we realized the need for more components and sensors as well as fixes to the initial design, we simply began attaching and modifying the existing robot. As a result, STEV-E became increasingly messy. This left us vulnerable to problems in reliability which ultimately came back to haunt us. The faulty communication between the master and slave blue pills on competition day was simply a consequence of this.