autonomous object-tracking drone

12
NOTES: THE FOLLOWING LINK IS A VIDEO COLLAGE OF SOME OF THE PROJECTS DESCRIBED IN THE ‘ADDITIONAL INFO’ SECTION OF COMMON APP (PLEASE EXCUSE THE BACKGROUND NOISE): https://vimeo.com/495110002 THE REMAINDER OF THIS DOCUMENT IS AN ENGINEERING NOTEBOOK-STYLE DESCRIPTION OF THE VARIOUS PROJECTS, WITH ADDITIONAL REFLECTION AND VISUALS ___________________________________________________________________ Autonomous Object-Tracking Drone July 2020 – Present (in progress) Inspiration: I’ve been interested in the possibility of using nanorobotics in healthcare. So I wanted to understand how nanorobots are designed and how they work. Although I don’t have the resources to tinker with nanomaterials, I realized that drones and nanobots share certain fundamental robotics concepts: power, sensor-driven actuation, remote control, mechanical efficiency, autonomy, etc. I’ve been doing this project as a way to familiarize myself with these concepts. Basic design (diagram to the right): Uses computer vision software on a Raspberry Pi camera to identify target objects, then uses that input for actuation: rotating the camera and moving the drone to follow that object Current status (left): Most of the hardware is set, now working on software set-up for remote control. Will then move on to use ROS to make the drone truly autonomous Technical Skills Developed/Topics studies - Raspberry Pi and Python

Upload: others

Post on 01-Jun-2022

8 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Autonomous Object-Tracking Drone

NOTES:

THE FOLLOWING LINK IS A VIDEO COLLAGE OF SOME OF THE PROJECTS DESCRIBED IN THE ‘ADDITIONAL INFO’ SECTION OF COMMON APP (PLEASE EXCUSE THE BACKGROUND NOISE): https://vimeo.com/495110002

THE REMAINDER OF THIS DOCUMENT IS AN ENGINEERING NOTEBOOK-STYLE DESCRIPTION OF THE VARIOUS PROJECTS, WITH ADDITIONAL REFLECTION AND VISUALS

___________________________________________________________________

Autonomous Object-Tracking Drone

July 2020 – Present (in progress)

Inspiration: I’ve been interested in the possibility of using nanorobotics in healthcare. So I wanted to understand how nanorobots are designed and how they work. Although I don’t have the resources to tinker with nanomaterials, I realized that drones and nanobots share certain fundamental robotics concepts: power, sensor-driven actuation, remote control, mechanical efficiency, autonomy, etc. I’ve been doing this project as a way to familiarize myself with these concepts.

Basic design (diagram to the right): Uses computer

vision software on a Raspberry Pi camera to identify

target objects, then uses that input for actuation:

rotating the camera and moving the drone to follow

that object

Current status (left): Most of the hardware is set, now

working on software set-up for remote control. Will

then move on to use ROS to make the drone truly

autonomous

Technical Skills Developed/Topics studies

- Raspberry Pi and Python

Page 2: Autonomous Object-Tracking Drone

- 3-D printing

- Drilling, soldering

- Wireless communication and remote control

- Image recognition, deep learning: Google Crash Course

- SolidWorks

Details:

After finalizing a BOM, we started using SolidWorks to create the drone frame design. I went through a Udemy SolidWorks tutorial to help me do this. Here was our very first design:

Setback

As you can see, it is much more detailed than the previous design, and is meant to be screwed onto the

center frame. This design is also better for fastening and protecting the wires that must pass through to

the motor and the ESC, which will most likely be fastened to the arm via zip ties!

As you can see, it was very basic and

incomplete. That is because, mid-way

through the process, I realized that I

had made it all as a single part. This

would make it extremely weak when

printed. So I decided to start over.

I split the frame into different parts that could be screwed or attached together after being printed or laser-cut. That way, damage to one part wouldn't require rebuilding the entire design. To the right is my SolidWorks design for the arms

Page 3: Autonomous Object-Tracking Drone

Setback:

After researching the resources available during quarantine for 3-D printing and laser-cutting, we

determined it is not practical or financially worth it to create the frame ourselves. Instead, we decided

to order a standard quad copter frame from Amazon. However, that means we would have to design

add-on platforms to the frame and drill some extra holes to customize the frame to our needs. The

frame is pretty light and small because it is made of high-quality carbon fiber which wouldn't have been

accessible if we tried 3-D printing. But that does restrict our flexibility when it comes to the physically

organization of the component on our drone.

Although we couldn’t 3-D print the

entire drone frame, we did have to

print certain pieces. For example, we

used PLA to print this flight controller

mount. When attached with

balancing balls, this mounting system

will be flexible enough to protect the

flight controller from any vibrations

during flight.

One particular challenge of creating a

Bill of Materials was making sure that

each part was compatible with the

others. Here, I was using a multi-

meter to test the force exerted by the

motor propellers at specific voltages.

This helped me make sure that the

batteries will supply enough power to

the motors, and the motors will apply

enough force to lift the drone.

Page 4: Autonomous Object-Tracking Drone

The drone frame we bought has a

power distribution board built onto it.

So I went to my dad’s office

workspace to solder all the wires

from the motors and battery onto the

board.

As of right now, we are mostly ready

with all of the hardware, as seen in

the picture on the left. Now we are

primarily working on the software,

using ArduPilot as our primary

platform. We are running into some

issues related to the receivers

though: they are not picking up

signals from the remote controller

properly.

Page 5: Autonomous Object-Tracking Drone

DIY Soccer Ball Kicking Machine

May – October 2019

Inspiration Soccer star Roberto Carlos’ famous curved free kick goal. I wanted to investigate the physics

behind how soccer balls curve (a.k.a. the Magnus Effect), and the IB Extended Essay gave me the perfect

opportunity for that. I quickly realized that, to control the way the ball was kicked for each experimental

trial, I had to make some kind of kicking contraption. I could not

simply borrow a JUGS machine because those can only kick size 5

balls: my experiment involved smaller size balls as well.

Design (final product to the right): two 90V motors and wheels

mounted about 8 inches apart on a crossbeam, spinning in opposite

directions. Motors set at different speeds using converters to cause

curve. Ball fed between wheels gets “sucked in” and shot out. Used

drone camera and LoggerPro software to graph the trajectories of the

balls from birds-eye-view.

Biggest challenge (pictures below): Getting the wheels to fit onto the

motor shafts. The motor shafts had a key, which made them just a bit

too wide to fit into the axle hole on the wheels. So, I removed the wheel bearings to make the hole

wider, and was planning to get an adapter/coupler to fit the wheels onto the shafts. But none of the

ones online were the exact size, so I worked with the Metals teacher at my high school to make the

couplers out of scrap metal pieces, and weld them to the wheels.

Technical Skills Developed/Topics studies

- Drill, broach, lathe, hydraulic press, solder

- Electronics (converters)

- Motors

- Physics (Magnus Effect)

- LoggerPro

Page 6: Autonomous Object-Tracking Drone

Details

Setback: The coupler fitted fine to the motor shaft. But it did not fit to the wheel. The fat heads of the screws used to tighten the coupler got in the way. I couldn't find any replacement screws which had

flatter heads, so I had to... Make my own couplers! First, we used a lathe machine to shave scrap metal blocks into cylinders with the appropriate outside diameter. Then I used essentially a horizontal drill press to drill an appropriately sized hole for the shaft into the metal. We used oil lubricant to ensure that the cuts are smooth and clean.

The biggest challenge was connecting

the DC Motor shaft to the tire. The

shaft was 5/8 inch in diameter, with

an additional 3/16-inch keyway. The

keyway came in the way and the

motor shaft could not fit into the tire

bearing. Also, the tire had a free

bearing, which means that is meant

to spin from external torque rather

than be driven by a motor.

I had to look for a coupler that would fit the wheel onto the shaft. I found a coupler which was 5/8 inch with keyway on one end and 1 1/2 inch on the other. I thought this would fit perfectly, so I ordered the couplers (shown to the left)

Page 7: Autonomous Object-Tracking Drone

Using hydraulic press to force broach

into hole to make a keyway indent in

the coupler

I learned how to operate a

hydraulic press and broach

Page 8: Autonomous Object-Tracking Drone

But I wasn't done yet. Now I had to... 1. Drill and thread a hole through the radius of the couplers that would let me put a fastener through. This would prevent the coupler from sliding up and down the shaft. 2. Weld the couplers into the axle tube on the wheel, so the wheel would be driven by the motor 3. Thread fastener holes in the couplers:

One of the two couplers after

completing the bore

Using a tap tool to thread the

hole on the coupler

Final product of shaft

couplers welded onto the

wheels

Page 9: Autonomous Object-Tracking Drone

Calculus-Based Hovercraft Speed Control

Algorithm November 2019 — February 2020

Inspiration: During the 8th grade Science Olympiad hovercraft event, our hovercraft was too fast. We

thought the event was a race, when it was actually that our hovercraft would have to get across a ramp

in as close to a target time (which was defined at the event) as possible. We had to add weight to the

hovercraft to slow it down, but this was still not very effective.

Context: Studying calculus in class, I realized that calculus could help resolve the issue we had at the

event. Did this project for the IB Mathematics Internal Assessment.

- I developed an integrals-based algorithm that could hypothetically be program into a potentiometer

for the thrust propeller. This would allow the hovercraft to adjust its thrust mid-ramp based on input

parameters (ramp length and target time).

- Most of this process was theoretical and on paper and relatively straightforward (I used physics

concepts such as position, velocity, acceleration, force, and related to using calculus)

Challenge: The tough part was transitioning from “force” to “voltage” (this algorithm had to eventually

be programmed into an electrical component, so simply having “force” values wouldn’t be useful). For

this, I had to derive a relationship between “voltage supply” and “force exerted” that was unique to the

motor-propeller combo I was using. The set-up I used to derive this relationship is shown below to the

left:

Technical Skills Developed/Topics studies:

- Electronics

- Calculus-based physics (mechanics)

Picture of the Hovercraft

Page 10: Autonomous Object-Tracking Drone

Below is the pseudo-code for the final algorithm I derived:

Page 11: Autonomous Object-Tracking Drone

EMG and Reaction Time Test Experiment

November 2018 — February 19

Inspiration: I wanted to understand and justify my sensitivity to specific background noises, as I get

disturbed really easily while trying to study at home with my two younger brothers. The IB Biology

Internal Assessment project gave me the opportunity to explore this.

Design: Developed a simple reaction time test using an LED and joystick circuit with Arduino Uno.

Subjects listened to various background noises while doing the tests, and I looked for correlations

between the background noise and reaction time. Used an EMG kit to detect muscle twitches and

supplement the data. Below is an image of the circuit setup:

This is a setup of the room

environment in which my

subjects did the tests. I tried

to control this, as I had to

mitigate as many

confounding variables as

possible.

Page 12: Autonomous Object-Tracking Drone

Biggest Challenge: Implementing the EMG SpikerShield

While I was able to connect the SpikerShield system to the Arduino and manipulate the code to read the

input values for the muscle activity on the console, I struggled to make the code detect a spike in these

values. Input values were given to the console from the SpikerShield every two milliseconds, so the only

practical way I could use these values would be by manipulating the code so that it could detect a spike

in the values on its own. However, I could not find a constant threshold input value over which I could

consider the muscle to be flexed. This is because many small details, such as how tightly the subject was

gripping the joystick, affected this value. Controlling many of these small details was impractical, and

using SpikerShield data would have yielded an overwhelming amount of data. Therefore, I decided not

to implement the EMG SpikerShield in the experiment.

Technical Skills Developed/Topics studies

- Arduino and Arduino Sketch

- EMG SpikerShield kit (this was mainly used to double check the values obtained from Arduino)