19
IMDL Fall 2014 Final Report Designer: Jacob Easterling Robot Name: Clean Sweep Course Number: EEL 4665 Instructors: Dr. Arroyo Dr. Schwartz Dr. Diaz Teaching Assistants: Andy Gray Nick Cox

IMDL Fall 2014 - University of Florida...Each Sentry Tower uses an MSP430 microcontroller to monitor sensor inputs, and communication. There are also a number of IC chips which condition

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: IMDL Fall 2014 - University of Florida...Each Sentry Tower uses an MSP430 microcontroller to monitor sensor inputs, and communication. There are also a number of IC chips which condition

IMDL Fall 2014

Final Report

Designer: Jacob Easterling Robot Name: Clean Sweep Course Number: EEL 4665 Instructors:

Dr. Arroyo

Dr. Schwartz

Dr. Diaz Teaching Assistants:

Andy Gray

Nick Cox

Page 2: IMDL Fall 2014 - University of Florida...Each Sentry Tower uses an MSP430 microcontroller to monitor sensor inputs, and communication. There are also a number of IC chips which condition

| 2 C l e a n S w e e p

Table of Contents Abstract...........................................................................................................................................3

Executive Summary…………………………………………………………………………………………………………………….4

Introduction

• Purpose…………………………………………………………….……………………………………………………………5

• Overview…………………………………………………………….…………………………………………………………5

• Preview…………………………………………………………….……………………………………………………………5

The Mat

• Layout..........................................................................................................................…...6

• Sectors…………….……………………………………………….…………………………………………………………..6

Seeker Bot

• Integrated System……………………………….………………………………………………………………………..7

• Mobile Platform……………………………………………….…………………………………………………………..8

• Actuation………............................................................................................................…....8

• Sensors………………………………………………………………………………….………………………………………9

• Behaviors………………………………………………………………………………………………….………………….10

Sentry Towers

• Integrated System.............................................................................................................11

• Stationary Platform...........................................................................................................12

• Sensors..............................................................................................................................12

• Behaviors...........................................................................................................................13

• Results…………………….........................................................................................................13

Debris Bot

• Integrated System............................................................................................................14

• Mobile Platform...............................................................................................................15

• Actuation..........................................................................................................................15

• Sensors.............................................................................................................................15

• Behaviors.........................................................................................................................16

• Limitations.......................................................................................................................16

Raspberry Pi

• Why Use a Pi?…................................................................................................................16

• Triangulation Algorithm...................................................................................................16

• Limitations………………….....................................................................................................16

Conclusion

• Work Accomplished.........................................................................................................17

• Limitations………………….....................................................................................................17

• Improvements..………….....................................................................................................17

Appendices

Sentry Tower Schematic……………………………………………………………………………………………….18

• Source Code…….................................................................................................................19

Page 3: IMDL Fall 2014 - University of Florida...Each Sentry Tower uses an MSP430 microcontroller to monitor sensor inputs, and communication. There are also a number of IC chips which condition

| 3 C l e a n S w e e p

Abstract

The purpose of my project was to design and develop a team of robots that could work together clear

objects out of a known perimeter. In order to make this possible I identified three elements which each

robot needed: situational awareness, communication, and task management. Before we dive into these

points let us first identify the task to complete. The task I decided to take on was to use team work to

identify and clear all objects out a known area.

Situational Awareness

This block proposes the questions of “where am I?” and “where are my teammates?” In order to answer

these questions I developed a system of three sentry towers which can time stamp a high frequency

(roughly 8 kHz) when prompted. The signal is broadcasted by the Seeker Bot (a small robot equipped

with an amplified speaker) who will be traversing the known perimeter looking for objects. Once locked

on the signal, each tower can relay the distance in-between the Tower and the Seeker Bot to an

independent processor (raspberry pi) which will generate an (x,y) coordinates for the object.

Communication

As is true in any society, communication is the fundamental in order for a team to accomplish any

meaningful task. Communication is also foundational in order to orchestrate a team of intelligent

machines. To address this each of my robots is equipped with an XBEE wireless Transmitter/Receiver

with a unique name (Tower1, Seeker Bot etc.) to allow for a dynamic conversation.

Task Management

This part might seem intuitive but I have found it is absolutely essential to define what services each

robot will provide. Here is an overview of what each team member will contribute the project.

Seeker Bot

o Moves inside known perimeter looking for obstacles

o Broadcasts Homing Signal to Sentry Towers when an object is found

Sentry Towers

o Time stamps the Homing Signal from Seeker Bot

o Sends distance in-between Tower and Seeker Bot to Raspberry Pi.

Debris Bot

o Sweeps obstacles out of the perimeter

Raspberry Pi

o Manages all communication on the field

o Processes data from Sentry Towers to locate object within in the perimeter

Page 4: IMDL Fall 2014 - University of Florida...Each Sentry Tower uses an MSP430 microcontroller to monitor sensor inputs, and communication. There are also a number of IC chips which condition

| 4 C l e a n S w e e p

Executive Summary

As the world of robotics continues to grow in complexity we are beginning to see a shift towards the

coordination of multiple robots to perform dynamic tasks. This behavior, also referred to as “Swarming”

was the inspiration for my project which uses five robots to identify, locate, and clear objects out of a

known perimeter. In this summary we will look over the details of the components that make up my

robot team.

The Mat

In order to demonstrate my team’s abilities I have designed a 3’x5’ Mat which acts as a playing

field for the team. Along the perimeter of the mat are tick marks which allow the Debris Bot (see

below) to move towards an objects position when located.

Sentry Towers

These towers are used to assist in the object location process by time stamping a series of high

frequency pings sent from the Seeker Bot (see below). These towers are placed on three of the

four corners of the mat.

Seeker Bot

This robot is a small lightweight mobile platform which moves along the inside of the mat

looking for objects. When the Seeker Bot locks onto an object he will ping the Sentry Towers

both sound and RF to correlate his position. Once his position is identified the Seeker Bot will

search for the nearest perimeter line and wait until the object has been cleared by the Debris

Bot. Once the Seeker Bot receives word that the object has been cleared he will resume his

search pattern.

Debris Bot

The Debris bot is a heavy duty aluminum/steel mobile platform designed to clear objects out of

the mat. While the Seeker Bot is searching for objects, the Debris Bot enters sleep mode in the

corner of the mat while waiting for instructions. Once woken up, the Debris Bot will receive the

coordinates for the object to clear and will move up the mat along the perimeter line. As he

traverses the mat, he will keep track of his position by counting the tick marks along the

perimeter line. Once he has reached the objects position he will sweep across the mat and push

the object out of the perimeter. He then will return to the corner and enter back into sleep

mode.

Raspberry Pi

This processor manages all the RF communication of the team. He also reads in sensor data

from the Sentry Towers and triangulates the position of the Seeker Bot when prompted.

Page 5: IMDL Fall 2014 - University of Florida...Each Sentry Tower uses an MSP430 microcontroller to monitor sensor inputs, and communication. There are also a number of IC chips which condition

| 5 C l e a n S w e e p

Introduction Purpose

The purpose of this project is to assemble a team of low cost simple robots that can work together to

complete a task too complicated for any one of the robots to complete on their own.

Objective

The objective for the Clean Sweep robot team (see Fig 1.) is to identify, locate, and remove objects

within a known perimeter utilizing the advanced

Preview

In this Report you will find details on each of the members of the Clean Sweep robot team including

their integrated systems, platform design, actuation, sensor usage, behaviors, and results.

Fig. 1

A quick look at the members of team Clean Sweep

Page 6: IMDL Fall 2014 - University of Florida...Each Sentry Tower uses an MSP430 microcontroller to monitor sensor inputs, and communication. There are also a number of IC chips which condition

| 6 C l e a n S w e e p

The Mat

Layout

In order to demonstrate my team’s abilities I have designed a 3’x5’ Mat which acts as a playing field for

the team. Along the perimeter of the mat are tick marks which allow the Debris Bot to move towards an

objects position when located.

Sectors

In order to accommodate for errors in the triangulation process, I have divided the mat into 3 virtual

sectors (se Fig. 2). Within each sector there is a single object which the Seeker Bot will discover.

Fig. 2

This shows how the mat is divided into virtual sectors

Page 7: IMDL Fall 2014 - University of Florida...Each Sentry Tower uses an MSP430 microcontroller to monitor sensor inputs, and communication. There are also a number of IC chips which condition

| 7 C l e a n S w e e p

Seeker Bot Integrated System

The Seeker Bot uses two MSP430

microcontrollers to operate the sensors,

motors, and communication. Ultrasonic and IR

range finders enable the Seeker Bot to

identify obstacles while an array of three IR

line reader forces the robot to search only the

area of the mat. The block diagram below (Fig.

3) shows how each component is connected

on the Seeker Bot.

Fig. 3

MSP430

G2553

MSP430

G2553

IR

Rangefinder

IR

Rangefinder

Ultrasonic

Rangefinder

IR Line

Reader

x3

6V DC Motor 6V DC Motor Motor

Controller

XBEE S1

Speaker

Array

Page 8: IMDL Fall 2014 - University of Florida...Each Sentry Tower uses an MSP430 microcontroller to monitor sensor inputs, and communication. There are also a number of IC chips which condition

| 8 C l e a n S w e e p

Mobile Platform

For my design, my intention was to have the Seeker Bot be placed on a small platform. For this reason I

chose to purchase the off the shelf Zumo Chassis (see Fig 4.) Despite the ready to run appeal, there were

a few modifications to the chassis that had to be completed before the Robot could run as needed. First

I needed to file down the plastic around the spokes of the wheels as it was grabbing the tracks and

causing the motors to seize. Secondly I added additional levels to the base platform to fit the onboard

hardware. The first level accommodates all the microcontrollers, Xbee and some select sensors (see Fig.

5) while the second level holds an amplified speaker which be used to work with the Sentry Towers. As

seen in Figure 6, I also mounted a parabolic dish above the amplified speaker to aid in the spread of the

signal when broadcasting.

Actuation

The Seeker bot uses two 6V 100:1 geared motors to maneuver around the mat (see Fig. 7).

Motor Specifications

o Nominal Voltage: 6V o Free RPM: 315 o Stall Torque: 25 oz-in (1.8 kg-cm) o Stall Current: 360mA o Reduction: 100:1 o Size (mm): 1.42" x 0.39" x 0.47" o Weight: 0.35oz / 10g

Each motor is run through an H-Bridge motor controller which modulates the input voltage.

Fig. 4 Fig. 5 Fig. 6

Fig. 7

Page 9: IMDL Fall 2014 - University of Florida...Each Sentry Tower uses an MSP430 microcontroller to monitor sensor inputs, and communication. There are also a number of IC chips which condition

| 9 C l e a n S w e e p

Sensors

Ultrasonic Range Finder (Fig. 8)

o Vendor: Banana Robotics

Model Bumber HCSR04

o Specs

Input Voltage 5V

PWM freq: 40Hz

Range: 2cm to 40m

15mA avg consumption

o Application

Used to locate objects on mat

See Appendix for source code

IR Range Finder (x2) (Fig. 9)

o Vendor: Robot Shop

Model Number GP2Y0A21

o Specs

Input Voltage: 5V

Range: 10cm to 80cm

39ms response time

40mA avg consumption

o Application

Used for moving around obstacles

IR Line Reader (Fig. 10)

o Vendor: Spark Fun

Model Number QRE1113

o Specs

Input Voltage 3.3V

25mA supply current Optimal sensing distance: 0.125" (3mm)

o Application

Used to detect the mat perimeter line

Fig. 8

Fig. 9

Fig. 6

Fig. 10

Fig. 6

Page 10: IMDL Fall 2014 - University of Florida...Each Sentry Tower uses an MSP430 microcontroller to monitor sensor inputs, and communication. There are also a number of IC chips which condition

| 10 C l e a n S w e e p

Behavior

The Seeker Bot’s job is to seek out objects on the mat and relay the object’s position to the Sentry

Towers. Starting in the center of the mat, the Seeker Bot will run an initial calibration where he will send

out nine 6 kHz short bursts using a high precision timing algorithm (see Fig 11 for state machine). Once

calibration is complete, The He will move around the Mat at random searching for objects using his

rangefinders. Once an object is detected, the Seeker Bot will run through the subroutine shown in Figure

11 and then inform the Raspberry Pi that new data is ready to receive. The Seeker Bot will then wait for

confirmation from the Pi to either continue or “ping” the towers again. Once the location is confirmed

the Seeker Bot will head towards the nearest perimeter line and waits while the Debris Bot is clearing

the object. If a collision between the two robots is eminent, the Seeker Bot can receive commands to

relocate to a new line while the Debris Bot is on the Mat. After receiving confirmation that the object

has been cleared, the Seeker Bot will resume his normal search pattern.

1

Send RF Trigger to 3 towers

Delay 250ms

Enable Speaker to Ping

Delay 250ms

Read in from Towers

Exit Subroutine 0

Cnt < 9?

A

Cnt++

A

All Towers

Reported?

0

1

Fig. 11

Ping Subroutine

Page 11: IMDL Fall 2014 - University of Florida...Each Sentry Tower uses an MSP430 microcontroller to monitor sensor inputs, and communication. There are also a number of IC chips which condition

| 11 C l e a n S w e e p

Sentry Towers (Special System)

Integrated System

Each Sentry Tower uses an MSP430 microcontroller to monitor sensor inputs, and communication.

There are also a number of IC chips which condition signals coming into the MSP including a High Pass

Filter, and V/U Meter. Below is a block diagram of circuits on operating inside each Seeker Tower. In

addition to the block diagram, there is also a full schematic for the Sentry Towers in the Appendix.

MSP430

G2553

LM386 Audio

Amplifier

LM386

Audio

Amplifier

LM741 40dB

High Pass

Filter

LM3915 V/U

Meter

LM3915 V/U

Meter

XBEE S1

LM741 40dB

High Pass

Filter

Fig. 11

Page 12: IMDL Fall 2014 - University of Florida...Each Sentry Tower uses an MSP430 microcontroller to monitor sensor inputs, and communication. There are also a number of IC chips which condition

| 12 C l e a n S w e e p

Stationary Platform

As shown in Fig. 14, the Sentry Towers are design around natural listening systems which includes two

“ears” and a brain”. Each ear is mounted to a rotating platform connected to the central stepper motor

(note: the stepper motor is no longer in use with my design) (see Fig. 14). Each ear can be independently

rotated in both the x and y directions to allow the operator to determine the optimal angle between the

two ears. In order to lower false signal locks, I also added cones to fit over the mics to narrow their field

of listening. The base of the platform also has an LED bank built in (see Fig. 13) which provides visual

feedback during communication. Also seen in Figure 13 is that the Sentry Tower sits on top of a power

supply which produces a clean 10.5V to the filtering circuits and 3.3V to the MSP430.

Sensors

Unidirectional Mic (Fig. 15) o Vendor: Digikey

Model number: CMI-5247TF-K o Application

The mics in my Sentry Towers are used to determine the source of the Seeker Bot’s 6 kHz homing signal.

o Specs Input Voltage 1.5 ~ 12V Frequency Range: 70Hz ~ 20kHz Impedance: 680 Ohm 500μA avg. consumption

Fig. 13

Page 13: IMDL Fall 2014 - University of Florida...Each Sentry Tower uses an MSP430 microcontroller to monitor sensor inputs, and communication. There are also a number of IC chips which condition

| 13 C l e a n S w e e p

Behavior

While the Seeker Bot is searching for objects, the Sentry Towers sit idle, poling a start signal from the

Seeker Bot. Once an object has been found by the Seeker Bot, he will send the start signal

simultaneously to all three towers which will tell them to enable their time-stamp program. 250ms later

the Towers will each receive a 6 kHz pulse from the Seeker Bot. Once the first pulse has been received,

they time-stamp the difference in time between the RF trigger and the 6 kHz pulse. Each Tower then

sends confirmation back to the Seeker Bot that they have received their data and are ready to receive.

Once all the Towers have sent confirmation back to the Seeker Bot, he will send the second of nine

pulses. After this process, the Sentry Towers then holds their data until called upon by the raspberry pi

(see later section).

Results

Signal Conditioning

o As shown in the image below, you can see the effects of the high pass filter on incoming

signals

Accuracy

o Given errors produced by hand-crafting both the boards as well as the microphone

shields, there is roughly a 15-20% margin of error when pinpointing the position of an

object using sound. To combat this I have split the mat (as mentioned previously) into

the sectors with a single object placed inside each. By searching for sectors over actual

positions, I have narrowed the margin of error to under 10%.

1 kHz 5 kHz 10 kHz

Page 14: IMDL Fall 2014 - University of Florida...Each Sentry Tower uses an MSP430 microcontroller to monitor sensor inputs, and communication. There are also a number of IC chips which condition

| 14 C l e a n S w e e p

Debris Bot

Integrated System

Seeker Bot utilizes four MSP430s to handle

all operation on the platform. Ultrasonic

range finders enable the Debris Bot to

identify obstacles in its path while an array of

IR line reader will allow the robot to

consistently find an object’s location on the mat. The block diagram below (Fig. 16) shows how each

component is connected on the Debris Bot.

Fig. 16

MSP430

G2553

MSP430

G2553

Ultrasonic

Range Finder

x2

IR Line

Reader

x3

Motor

Controller

Motor

Controller

MSP430

G2553

XBEE S1

MSP430

G2553 IR Line

Reader

Page 15: IMDL Fall 2014 - University of Florida...Each Sentry Tower uses an MSP430 microcontroller to monitor sensor inputs, and communication. There are also a number of IC chips which condition

| 15 C l e a n S w e e p

Mobile Platform

In order to be coherent with my design plans, I needed the Debris

Bot to have a platform which was larger than the Seeker Bot. For

this reason I chose to purchase the off the shelf DF Robot 4WD

Mobile Platform (see Fig 17). This chassis is roughly 2.5x the size of

the Seeker Bot and can easily fit 12 sensors and custom PCB designs

required to make this robot operational.

Actuation

The Seeker bot uses four 6V 100:1 geared motors to maneuver

around the mat (see Fig. 18).

Reason for purchase

o These were the motors which were designed to

work with my Chassis.

Motor Specifications o Operating Voltage Range: 3~7.5V

o Rated Voltage: 6V o Max. No-load Current(6V): 170 mA

o No-load Speed(6V): 160 rpm o Max. Output Torque: 0.8 kgf.cm

o Max. Stall Current: 2.8 A

Each motor is run through an H-Bridge motor controller which

modulates the input voltage.

Sensors

Ultrasonic Range Finder (x2)

o Vendor: Banana Robotics

Model Number HCSR04

o Specs

Input Voltage 5V

PWM freq: 40Hz

Range: 2cm to 40m

15mA avg consumption

o Application

Used to locate objects on mat

See Appendix for source code

IR Line Readers (x4) (Fig. 19)

o Vendor: Spark Fun

Model Number QRE1113

o Specs

Input Voltage 3.3V 25mA supply current

Optimal sensing distance: 0.125" (3mm)

o Application

Used to detect the mat perimeter line

Fig. 18

Fig. 19

Fig. 17

Page 16: IMDL Fall 2014 - University of Florida...Each Sentry Tower uses an MSP430 microcontroller to monitor sensor inputs, and communication. There are also a number of IC chips which condition

| 16 C l e a n S w e e p

Behavior

The Debris bot is a heavy duty aluminum/steel mobile platform designed to clear objects

out of the mat. While the Seeker Bot is searching for objects, the Debris Bot enters sleep

mode in the corner while waiting for instructions. Once woken up, the Debris Bot will

receive the coordinates for the object to clear and will move up the mat along the

perimeter line. As he traverses the mat, he keeps track of his position by counting the tick

marks along the perimeter line (see Fig. 20). Once he has reached the objects position

he will sweep across the mat and push the object out of the perimeter. He then

returns back to the perimeter line and aligns himself with it and returns to the

corner. Once docked, the Debris Bot will notify the raspberry pi that the sector is

cleared and return to sleep mode.

Limitations

Due to the crudeness of IR sensors, I have had some difficulty with the re-aligning of the Debris Bot once

off the line. On occasion, the robot requires manual repositioning.

Raspberry Pi For my Clean Sweep Team I use a Raspberry Pi computer to manage all wireless communication, and

handle the advanced triangulation algorithm.

Why Use a Pi?

Raspberry Pi’s have a distinct advantage over MSP430s in that they have floating point hardware on

board. This allows me to perform the difficult triangulation algorithms in a fast and efficient manner.

Triangulation Algorithm

The Algorithm that I have created exercises Heron’s Formula (shown below) which allows you to

determine the height and distance to the center of a triangle given only the side-lengths. Given that the

distances between each Sentry Tower are fixed, we can determine the position of any object on the

mat.

𝑝 =𝑎 + 𝑏 + 𝑐

2, 𝑝 = 0.5 ∗ 𝑝𝑒𝑟𝑖𝑚𝑒𝑡𝑒𝑟 𝑜𝑓 𝑡𝑟𝑖𝑎𝑛𝑔𝑒; 𝑎, 𝑏, 𝑐 = 𝑠𝑖𝑑𝑒 𝑙𝑒𝑛𝑔𝑡ℎ𝑠

𝐴 = √𝑝 ∗ (𝑝 − 𝑎) ∗ (𝑝 − 𝑏) ∗ (𝑝 − 𝑐)

ℎ =2 ∗ 𝐴

𝑏, ℎ = ℎ𝑒𝑖𝑔ℎ𝑡 𝑜𝑓 𝑡𝑟𝑖𝑎𝑛𝑔𝑙𝑒

𝑥 = √𝑐2 − 𝑏2, 𝑥 = 𝑑𝑖𝑠𝑡𝑎𝑛𝑐𝑒 𝑡𝑜 𝑐𝑒𝑛𝑡𝑒𝑟 𝑜𝑓 𝑡𝑟𝑖𝑎𝑛𝑔𝑙𝑒

Limitations

Since there are errors in the distances reported by the Sentry Towers, there is a chance that the

reported values do not produce a valid triangle. This error has been corrected in software by telling the

Seeker Bot to look for a different object if this issue arises. He will then come back at a later point and

try again.

Fig. 20

Example

perimeter line

Page 17: IMDL Fall 2014 - University of Florida...Each Sentry Tower uses an MSP430 microcontroller to monitor sensor inputs, and communication. There are also a number of IC chips which condition

| 17 C l e a n S w e e p

Conclusion

Conclusion Work Accomplished

In summary of my work, I have successfully built and coordinated a team of five robots that work

together to identify, locate, and clear objects out of a known perimeter.

Limitations

As noted in previous sections, my Sentry Towers suffer from inaccuracies due to error in the hand-

crafting of their design. Also the Debris Bot has some difficulty remaining on the line while progressing

towards an objects location.

Improvements

If I could do this project over again, I would re-design my Sentry Towers to use high-precision parabolic

dishes to hone in on a sound in replacement of the shielding I currently use.

Clean Sweep Team

Page 18: IMDL Fall 2014 - University of Florida...Each Sentry Tower uses an MSP430 microcontroller to monitor sensor inputs, and communication. There are also a number of IC chips which condition

| 18 C l e a n S w e e p

Appendix Sentry Tower Schematic

Page 19: IMDL Fall 2014 - University of Florida...Each Sentry Tower uses an MSP430 microcontroller to monitor sensor inputs, and communication. There are also a number of IC chips which condition

| 19 C l e a n S w e e p

Source Code

All source code can be found at this web address:

https://sites.google.com/site/squadcleansweep/source-code