Overview

Background

Engineering Physics students partake in a competitive robot project course in teams of 4. We developed an autonomous robot that is able to navigate around a competition surface, locate and pick up soda cans off the ground, and deposit it into an 8" tall recycling bin. The goal was to pick up as many cans as possible in a given area within one minute.

This is a yearly summer project where we can apply our knowledge from class to design and prototype an autonomous robot. Conventionally, we would have access to labs and the UBC machine shop. However, becuase of COVID-19, the design and prototyping was conducted at home using only basic tools.

Competition

Placed 4th overall out of all Engineering Physics student teams (2nd most in points collected however).

As mentioned, the competition is to have the robot pickup 6 soda cans placed at random within an 8'x8' area. Each can placed into the bin is considered one point.

Project 1

High Level Strategy

Our strategy was to have the robot follow a tape path using reflectance sensors, and use a sonar sensor to detect cans. Once detected we use our encoders to turn precisely and move towards the can based on the distance detected. Once the robot arrives to the can, the front gate closes onto the can and pushes it into our internal lifting mechanism which in turn dumps the can into our bin which was magnetically attached to the back.

Mechanical

Due to COVID-19, we had limited resources and no access to UBC facilities including 3D printers, water-jet cutters, laser cutters and an entire machine shop. This forced us to use common tools found in household's in order to create our mechanical systems. As a result, we used plastic corrugated plastic which challenged us as it required us to properly stiffen our chassis to withstand the robot's weight.

Robot CAD.

There are some noticable differences between the CAD and our final robot. The main difference is that our original design utialized two servos for the lifting assembly - one to raise the platform, and one to deposit the can out the front of the robot. This design changed as we realized we could attach our recycling bin to the back of our robot which reduced the overall complexity. Although we did not fully use the design that we modelled in CAD, it allowed us to get a very good idea of the final dimensions and clearances in our design. It made cutting and assembling our robot much easier down the line as we had something concrete to refer to.

Lifting system

This linkage system includes a platform and 2 main links attached to 2 servo motors. The servos are able to rotate 120 degrees in order to lift and dump the cans 8" into the recycling bin attached by magnets to the back of our robot. The links are reinforced with sheet metal to increase stiffness and bolted onto the server heads.

linkage

Servo-Controlled Gate

This servo controlled gate houses our tape sensors which is used for tape following. The default state is down in order to tape follow but when a can is detected, the gate opens, the robot moves to the can and the gate finally closes onto the can.

gate

Main Chassis

The chassis bottom is made of 3 layers of corrugated plastic in alternating directions. The side walls are a single piece of plastic bolted with brackets to the bottom. We had a flange on the back part of the chassis base to help with bending which was prevalent due to numerous batteries weighing our robot down.

chassis

Electrical

We designed, prototyped and tested all of our electrical circuits and soldered them onto perf boards for the robot once the design was finalized. All of our electrical schematics can be found here.

Drivetrain

Designed an H-bridge motor driver circuit with safety FET's to create a differential drive system.

chassis

Sonars and Servos

Utilized sonar sensors as well and motors for can detection and retrieval.Designed an H-bridge motor driver circuit with safety FET's to create a differential drive system.

chassis

Tape Sensors

Utilized a TCRT500 array for tape following. The TCRT's are reflectance sensors which contain an IR LED and an IR sensor.

chassis

Photo-Interrupters

Utilized photointerrupters and encoder disks to drive straight, rotate accurately, and maintain speeds.

chassis

Software

All of our software development was in C++ for our STM32 BluePill MCU. Our code can be found at our github repo. GitHub

    Code Highlights
  • OOP Structure
  • Sensor Data Integration
  • PID Control Loops