Project

# Title Team Members TA Documents Sponsor
34 Basketball fetcher drone
Louie Davila
Patrick Sarad
Yinshuo Feng
Sainath Barbhai design_document1.pdf
design_document2.pdf
other2.pdf
other3.pdf
other4.pdf
photo1.JPG
photo2.jpg
video
# Project title: Basketball fetcher drone

Team Members:

- Luis Davila (ldavila2)
- Yinshuo Feng (yinshuo3)
- Patrick Sarad (psarad2)

# Problem

When it comes to any sport, people typically like to practice certain skills over and over in order to better master them. One such skill that people like to practice is shooting a basketball from different spots on the court. However, anyone who has done this has definitely come across the issue of having to run back and forth retrieving their ball after taking each shot. This results in more time running for the ball than actually shooting it.


# Solution

Our solution to this problem is a drone that uses pincers to keep a spare ball or fetch a ball for the user. The user will be wearing APRIL tags so that the drone can identify them. The ball will be spray-painted to be a distinguishable color so that the drone can identify it.

The drone software will be on an Arduino and a PCB, which will control a 4WD car for movement and pincers attached to the front for grabbing/holding a ball. Control commands will be issued based on inputs from a camera and an ultrasonic sensor.

The drone will use a camera to identify the ball, the user, and the waypoint from which it will wait for a ball to fetch. The drone will start to fetch a ball if it is detected below a user-specified threshold in the camera view. When the drone is close enough to a ball, it will use the front-facing ultrasonic sensor to determine when the pincers should be closed in order to grab the ball.



# Parts Needed

2-level RC car chassis
1 Ultrasonic sensor to approximate distance
1 Arduino camera module
4 Motors for the wheels
2 Motors for ball grabber
6 rechargeable 9V batteries (1 per motor)
Apriltags for user and waypoint recognition
Arduino
PCB


## Control subsystem

Software on the Arduino will process sensor and camera data and send the results to the microcontroller on the PCB, which will use these results to control the motors. Once the ultrasonic sensor detects the ball within a certain threshold, another signal will be sent to the PCB to engage the pincers to trap the ball.

The PCB itself will be used to control the different motors on the car (all the motors connected to the wheels as well as the motors operating the pincers). Along with this, the ultrasonic sensor and the camera will be connected to the PCB. The ATtiny85 microcontroller will be used to control the 6 motors on the drone.


## Ball tracking subsystem

The drone will come with an APRIL tag that will mark the location that the drone must return to after completing the ball fetching subprocess. This APRIL tag should be placed as follows:
1. The tag must be facing the court
2. The tag must be behind the hoop
3. The tag and the court should be separated by a distance greater than the length of the drone

The user must then manually select a threshold on the camera view. If the ball is detected below the threshold, the drone will begin the ball chasing process.


## Ball chasing subsystem

When the ball is detected below the manually selected threshold in the camera view, the drone will take one of 2 actions. If it is holding a ball, it will deliver its ball to the user before fetching the ball that was detected. If it is not holding a ball, it will fetch the ball that was detected. The drone will remember which action it takes at this stage until it completes the ball fetching process.


## Ball fetching subsystem

Initially, the drone will rely on the camera to get closer to the ball. Once it is sufficiently close, data from the ultrasonic sensor will be used to get close enough for the drone to acquire the ball.

When the ball is close enough to be acquired, motors will close the drone's pincers so that the ball is able to roll, but is confined to the space in between the pincers.

Once the ball is acquired, the drone will take one of 2 actions. If it gave a ball to the user in the ball chasing process, then it will return to the user-selected waypoint defined in the setup of the ball tracking subsystem. If it didn't give a ball to the user, it will give the ball that it just fetched to the user and return to the user-selected waypoint. Upon reaching the waypoint, the drone will rotate until the user is on the camera. If both the ball and the user are on the camera, the drone will stop rotating. If only the user is on camera, the drone will continue rotating until it finds the ball. If only the ball is on the screen, the drone will stop rotating and use the threshold to determine whether or not to initiate the ball chasing process.


# Criterion For Success

An “objective” refers to any one of the following: the user, the ball, or the waypoint.
1. The drone can control the motors to travel towards an objective
2. The drone can use the sensor and camera to search for an objective.
3. The drone can slow itself down as it gets closer to an objective, and stop itself before colliding with the objective.
4. The drone can control the pincers to acquire a ball using data from the sensor to approximate the position of the ball relative to the pincers.
5. The drone can control the motors and pincers to deliver an acquired ball to the user.
6. The drone can complete the chasing sequence and the fetching sequence and return to its initial ball tracking state.


# Link to project repository

https://github.com/ldavila17/sp2023-445

Propeller-less Multi-rotor

Ignacio Aguirre Panadero, Bree Peng, Leo Yamamae

Propeller-less Multi-rotor

Featured Project

Our project explored the every-expanding field of drones. We wanted to solve a problem with the dangers of plastic propellers as well as explore new method of propulsion for drones.

Our design uses a centrifugal fan design inspired by Samm Shepard's "This is NOT a Propeller" video where he created a centrifugal fan for a radio controlled plane. We were able to design a fan that has a peak output of 550g per fan that is safe when crashing and when the impeller inside damaged.

The chassis and fans are made of laser-cut polystyrene and is powered using brushless motors typically used for radio-controlled helicopters.

The drone uses an Arduino DUE with a custom shield and a PCB to control the system via Electronic Speed Controllers. The drone also has a feedback loop that will try to level the drone using a MPU6050.

We were able to prove that this method of drone propulsion is possible and is safer than using hard plastic propellers.

Project Videos