VoxNet: An Interactive, Rapidly Deployable Acoustic

Download Report

Transcript VoxNet: An Interactive, Rapidly Deployable Acoustic

Distributed Acoustic Sensing
with VoxNet
Michael Allen¹, Lewis Girod², Ryan Newton², Samuel Madden²,
Travis Collier³, Daniel Blumstein³, Deborah Estrin³
¹Coventry University ²CSAIL, MIT ³CENS, UCLA
What is distributed acoustic sensing?



Driven by acoustics-based applications
Embedded devices deployed over a space
Typically employ wireless communication
24/6/2008
WiSiG Webinar
2
What is distributed acoustic sensing?



Driven by acoustics-based applications
Embedded devices deployed over a space
Typically employ wireless communication
Wireless sensor networks for acoustics applications
24/6/2008
WiSiG Webinar
3
Applications and Challenges of
Distributed Acoustic Sensing
24/6/2008
WiSiG Webinar
4
Applications and Challenges of
Distributed Acoustic Sensing



24/6/2008
WiSiG Webinar
Has traditional WSN
complexities, in addition:
High data rate = no
streaming to sink
Forces local, in network
processing
5
Applications and Challenges of
Distributed Acoustic Sensing



Has traditional WSN
complexities, in addition:
High data rate = no
streaming to sink
Forces local, in network
processing
* Distributed processing properties
* Develop applications using a high level language
* Easily push new applications into the network
Without sacrificing performance
24/6/2008
WiSiG Webinar
6
VoxNet
Audio
Input
Detect
Sensor Node
Buffer
>3sec?
sync4
N
Server Side
Send AML
Output
Run Local
AML DOA
Y
Server Side
AML DOA
Event
association


24/6/2008
Send Raw
Data
Network Operators
Sensor side
Server side
VoxNet: integrated hardware and software platform
for distributed acoustic sensing
Captures, integrates previous experience in acoustic
sensing networks
WiSiG Webinar
7
How we got to VoxNet
Acoustic ENSBox (UCLA)
Proof of concept (SenSys 2006)
Source localization of marmots
(UCLA)
Proof of concept (IPSN 2007)
Wavescope (MIT)
(High level, signal-oriented
stream processing system)
VoxNet
24/6/2008
WiSiG Webinar
8
VoxNet architecture
Mesh Network of Deployed Nodes
Gateway
In-field PDA
24/6/2008
Control Console
WiSiG Webinar
9
VoxNet architecture
Off-line operation and storage
On-line operation
Storage Server
Mesh Network of Deployed Nodes
Gateway
Internet or
Sneakernet
Compute Server
In-field PDA
24/6/2008
Control Console
WiSiG Webinar
10
Roadmap

VoxNet platform
How it’s used
 How it’s programmed


Performance results
Network latency
 Runtime dynamics



Ongoing work
Conclusions
24/6/2008
WiSiG Webinar
11
Current VoxNet node: ENSBox V2

Based on Acoustic ENSBox (SenSys 2006)






Software support (SenSys 2006)


4 channel mic. array at 48KHz, 802.11b
Linux, 400 MHz ARM/64MB/8GB
Smaller form factor, Internal battery
GPS, 3-axis accelerometer
Always-on mote for duty cycling
Time sync, self-localization
Rapidly deployable!



24/6/2008
Field tested over several months
…in the rainforest (Chajul, Mexico)
…and the mountains (Gothic, CO)
WiSiG Webinar
With thanks to Travis Collier
12
VoxNet on-line usage model
// acquire data from source, assign to four streams
(ch1, ch2 ch3, ch4) = VoxNetAudio(44100)
// calculate energy
freq = fft(hanning(rewindow(ch1, 32)))
bpfiltered = bandpass(freq, 2500, 4500)
energy = calcEnergy(bpfiltered)
Write
program
24/6/2008
WiSiG Webinar
13
VoxNet on-line usage model
// acquire data from source, assign to four streams
(ch1, ch2 ch3, ch4) = VoxNetAudio(44100)
// calculate energy
freq = fft(hanning(rewindow(ch1, 32)))
bpfiltered = bandpass(freq, 2500, 4500)
energy = calcEnergy(bpfiltered)
Node-side part
Write
program
Optimizing
compiler
Sink-side part
24/6/2008
WiSiG Webinar
14
VoxNet on-line usage model
// acquire data from source, assign to four streams
(ch1, ch2 ch3, ch4) = VoxNetAudio(44100)
// calculate energy
freq = fft(hanning(rewindow(ch1, 32)))
bpfiltered = bandpass(freq, 2500, 4500)
energy = calcEnergy(bpfiltered)
Node-side part
Write
program
Optimizing
compiler
Sink-side part
Disseminate
to nodes
24/6/2008
WiSiG Webinar
15
VoxNet on-line usage model
// acquire data from source, assign to four streams
(ch1, ch2 ch3, ch4) = VoxNetAudio(44100)
// calculate energy
freq = fft(hanning(rewindow(ch1, 32)))
bpfiltered = bandpass(freq, 2500, 4500)
energy = calcEnergy(bpfiltered)
Node-side part
Write
program
Optimizing
compiler
Sink-side part
Run program
24/6/2008
WiSiG Webinar
Disseminate
to nodes
16
VoxNet on-line usage model
// acquire data from source, assign to four streams
(ch1, ch2 ch3, ch4) = VoxNetAudio(44100)
// calculate energy
freq = fft(hanning(rewindow(ch1, 32)))
bpfiltered = bandpass(freq, 2500, 4500)
energy = calcEnergy(bpfiltered)
Node-side part
Write
program
Optimizing
compiler
Sink-side part
Development cycle
happens in-field,
interactively
Run program
24/6/2008
WiSiG Webinar
Disseminate
to nodes
17
Programming VoxNet

Programming language: Wavescript




User writes a script connecting operators


High level, stream-oriented macroprogramming language
Compiles down to a directed, graph of communicating ‘stream operators’
which data flow through (source to endpoint)
Operates on stored OR streaming data
Writes both node side + sink side separately
User decides where processing occurs (node, sink)

Explicit, not automated processing partitioning
Source
Source
Endpoint
Source
24/6/2008
WiSiG Webinar
18
Example – energy calculation
ch1
VoxNetAudio
rewindow
hanning
fft
// acquire data from source, assign to four streams
(ch1, ch2 ch3, ch4) = VoxNetAudio(44100)
// window ch1 data stream into 32 sample chunks,
// passing through hanning then fft operators
freq = fft(hanning(rewindow(ch1, 32)))
// apply bandpass filter to freq
bpfiltered = bandpass(freq, 2500, 4500)
// calculate energy in bandpassed data
energy = calcEnergy(bpfiltered)
24/6/2008
WiSiG Webinar
19
Splitting up a logical program
freq
toNet(“frequencies”)
fromNet(“frequencies”)
send(“frequencies”)
arrived(“frequencies”)
bandpass
// acquire data from source, assign to four streams
(ch1, ch2 ch3, ch4) = VoxNetAudio(44100)
freq = fft(hanning(rewindow(ch1, 32)))
Node
//send data to sink
toNet(“frequencies”,freq)
// receive data from node stream
freq2 = fromNet(“frequencies”)
// apply bandpass filter to freq
bpfiltered = bandpass(freq2, 2500, 4500)
Sink
// calculate energy in bandpassed data
energy = calcEnergy(bpfiltered)
24/6/2008
WiSiG Webinar
20
Roadmap

VoxNet platform
How it’s used
 How it’s programmed


Validating VoxNet
Network latency
 Runtime dynamics



Ongoing work
Conclusions
24/6/2008
WiSiG Webinar
21
Validating VoxNet

Implementation of indicative application
(Marmot localization)


Resource usage


Distributed event detection and position estimation
Hand coded C vs. high level Wavescope
Network trade-off

24/6/2008
Process locally or send raw data to sink?
WiSiG Webinar
22
Example VoxNet application

Detect and determine location of marmots
Crossing of DoA estimates
 Obtain results on-line (scientist interaction)

X
Send 32KB
per node,
per detection
DoA processing and
position estimation
Event detection
NODES
24/6/2008
SINK
WiSiG Webinar
23
Hand-coded C vs. Wavescript
100%
EVENT DETECTOR
DATA ACQUISITION
Hand-coded C
24/6/2008
Wavescript
WiSiG Webinar
24
Hand-coded C vs. Wavescript
100%
EVENT DETECTOR
DATA ACQUISITION
30% less CPU
Hand-coded C
24/6/2008
Wavescript
WiSiG Webinar
25
Hand-coded C vs. Wavescript
100%
EVENT DETECTOR
DATA ACQUISITION
‘SPILL TO DISK’
Extra resources mean that data can be
archived to disk as well as processed
(‘spill to disk’, where local stream is
pushed to storage co-processor)
Hand-coded C
24/6/2008
Wavescript
WiSiG Webinar
26
Detection data transmission latency

Deployed network in Gothic, CO



Request all nodes to transmit data
simultaneously
Emulates the ‘worst case’ when all
nodes detect the acoustic event
Measure latency to transmit
raw detection or processed data
(32KB vs. 800B/node)



24/6/2008
Gathered single and multi-hop data
Up to three hops
Used single hop 800B data to help
predict missing 800B multi-hop data
WiSiG Webinar
27
Detection data transfer latency
12
24/6/2008
1 HOP
2 HOPS
WiSiG Webinar
3 HOPS
28
Detection data transfer latency
12
1 HOP
2 HOPS
3 HOPS
Network latency will become a problem
if scientist wants results in <5 seconds
(otherwise animal might move position)
24/6/2008
WiSiG Webinar
29
Processing trade-off

Sending raw data to sink
DoA processing takes a short time (0.04s)
 Sending data takes a long time
(32KB, up to 12s in expt.)


Sending processed data to sink
DoA processing takes a long time (~2.2s)
 Sending data takes a short time (800B, <1s)


Which is best to do to reduce overall position
estimation latency?
24/6/2008
WiSiG Webinar
30
Local vs. sink processing trade-off
NETWORK LATENCY
DoA PROCESSING TIME
Send raw data, process at sink
DoA processing
24/6/2008
WiSiG Webinar
31
Local vs. sink processing trade-off
NETWORK LATENCY
DoA PROCESSING TIME
Process locally, send 800B
DoA processing
24/6/2008
WiSiG Webinar
32
Local vs. sink processing trade-off
NETWORK LATENCY
DoA PROCESSING TIME
As hops from sink increases, benefit of
processing DoA locally is clearly seen
24/6/2008
WiSiG Webinar
33
Applying the trade-off at runtime

Aim: process raw data locally when possible


Node has limited buffer space for data samples
Event detection can happen faster than real-time, so can catch up
Sink
Node
N
Buffer
>3sec?
Y

Send Raw
Data
x
AML DOA
0.04s
Merge
AML DOA
2.2s Send AML
Output
y
Wavescript makes this easy to implement
Trivial, natural to split and merge multiple streams
 Same on-node and sink DoA implementations

24/6/2008
WiSiG Webinar
34
Roadmap

VoxNet platform
How it’s used
 How it’s programmed


Performance results
Network latency
 Runtime dynamics



Ongoing work
Conclusions
24/6/2008
WiSiG Webinar
35
Ongoing work

VoxNet Platform Development
NSF Funded UCLA/MIT collaboration (2008-2010)
 Aiming for 10x improvement on lifetime
 Make platform smaller, lighter, cheaper


Develop VoxNet application portfolio further
Add classification, census to bioacoustics apps.
 New applications from different domains:
Increases generality, validates applicability


Ongoing development of Wavescript compiler
24/6/2008
WiSiG Webinar
36
Conclusions

VoxNet hardware is easy to deploy


Wavescript simplifies development


Allows on-line development in the field
Provides comparable operating performance


Experience is invaluable in this respect
Despite being high level language
Easy to implement network dynamics

24/6/2008
Such as local processing adaptation
WiSiG Webinar
37
For more information



My contact details:
email: [email protected]
web: http://cogentee.coventry.ac.uk/~allenm
Wavescope:
http://wavescope.csail.mit.edu/doku.php
The IPSN 2008 VoxNet paper:
Allen, M., Girod, L., Newton, R., Madden, S., Blumstein, D., Estrin, D.,
"VoxNet: An Interactive, Rapidly-Deployable Acoustic Monitoring Platform",
Proceedings of IPSN 2008
24/6/2008
WiSiG Webinar
38
Backup slide: Wavescope

“Wavescope is a system for developing
distributed, high-rate applications that need to
process streams of data from various sources
(e.g., sensors) using a combination of signal
processing and database (event stream
processing) operations.
The execution environment for these
applications ranges from embedded sensor
nodes to multicore/multiprocessor servers.”
24/6/2008
WiSiG Webinar
39