Upload
others
View
1
Download
0
Embed Size (px)
Citation preview
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
| 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
| 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
| 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.
| 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
| 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
| 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
| 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
| 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
| 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
| 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
| 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
| 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
| 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
| 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
| 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
| 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
| 18 C l e a n S w e e p
Appendix Sentry Tower Schematic
| 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