Survey							
                            
		                
		                * Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
VoxNet: An Interactive, Rapidly Deployable Acoustic Monitoring Platform Michael Allen¹, Lewis Girod², Ryan Newton², Samuel Madden², Travis Collier³, Daniel Blumstein³, Deborah Estrin³ ¹Coventry University ²CSAIL, MIT ³CENS, UCLA 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 VoxNet: integrated hardware and software platform for distributed acoustic sensing * Distributed processing properties Captures, * Developintegrates applications previous using a high experience level language in acoustic * Easily push new applications into the network sensing networks Without sacrificing performance 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   2008/23/4 IPSN/SPOTS '08, St. Louis, MO Send Raw Data Network Operators Sensor side Server side 2 How we got to VoxNet SenSys 2006 (Girod et al) Acoustic sensing Platform IPSN 2007 (Ali et al) Marmot localization application Wavescope: signal-oriented stream processing @ MIT VoxNet 2008/23/4 IPSN/SPOTS '08, St. Louis, MO 3 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 2008/23/4 Control Console IPSN/SPOTS '08, St. Louis, MO 4 Roadmap  VoxNet platform How it’s used  How it’s programmed   Performance results Network latency  Runtime dynamics    Ongoing work Conclusions 2008/23/4 IPSN/SPOTS '08, St. Louis, MO 5 Current VoxNet node: ENSBox V2  Based on Acoustic ENSBox prototype     Low power supervisor    4 channel mic. array at 48KHz, 802.11b Linux, 400 MHz ARM/64MB/8GB Smaller form factor, Internal battery Always-on mote for duty cycling Example: ~5 days @ dawn/dusk sampling Rapidly deployable!    Field tested over several months …in the rainforest (Chajul, Mexico) …and the mountains (Gothic, CO) With thanks to Travis Collier 2008/23/4 IPSN/SPOTS '08, St. Louis, MO 6 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 2008/23/4 IPSN/SPOTS '08, St. Louis, MO Disseminate to nodes 7 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 2008/23/4 IPSN/SPOTS '08, St. Louis, MO 8 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) 2008/23/4 IPSN/SPOTS '08, St. Louis, MO 9 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) 2008/23/4 IPSN/SPOTS '08, St. Louis, MO 10 Roadmap  VoxNet platform How it’s used  How it’s programmed   Validating VoxNet Network latency  Runtime dynamics    Ongoing work Conclusions 2008/23/4 IPSN/SPOTS '08, St. Louis, MO 11 Validating VoxNet  Implementation of indicative application   Resource usage   Marmot localization (from IPSN ‘07) Hand coded C vs. high level Wavescope Network trade-off  2008/23/4 Process locally or send raw data to sink? IPSN/SPOTS '08, St. Louis, MO 12 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 Event detection DoA processing and position estimation NODES 2008/23/4 SINK IPSN/SPOTS '08, St. Louis, MO 13 Hand-coded C vs. Wavescript 100% EVENT DETECTOR DATA ACQUISITION ‘SPILL TO DISK’ 30% less CPU Hand-coded C 2008/23/4 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) Wavescript IPSN/SPOTS '08, St. Louis, MO 14 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)    2008/23/4 Gathered single and multi-hop data Up to three hops Used single hop 800B data to help predict missing 800B multi-hop data IPSN/SPOTS '08, St. Louis, MO 15 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) 2008/23/4 IPSN/SPOTS '08, St. Louis, MO 16 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? 2008/23/4 IPSN/SPOTS '08, St. Louis, MO 17 Local vs. sink processing trade-off NETWORK LATENCY AML PROCESSING TIME Process locally, send 800B Send raw data, process at sink As hops from sink increases, benefit of processing DoA locally is clearly seen DoA processing 2008/23/4 IPSN/SPOTS '08, St. Louis, MO 18 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  2008/23/4 IPSN/SPOTS '08, St. Louis, MO 19 Roadmap  VoxNet platform How it’s used  How it’s programmed   Performance results Network latency  Runtime dynamics    Ongoing work Conclusions 2008/23/4 IPSN/SPOTS '08, St. Louis, MO 20 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 2008/23/4 IPSN/SPOTS '08, St. Louis, MO 21 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  2008/23/4 Such as local processing adaptation IPSN/SPOTS '08, St. Louis, MO 22 2008/23/4 IPSN/SPOTS '08, St. Louis, MO 23 The ENSBox platform solves lots of problems, but…  Algorithm is still difficult to implement Must code in C, lacks safety features  Want convenient networking primitives  Hard to debug, hard to choose parameters   Desired features Visibility in the field  Convenient way to install code  Interactive use in the field    Motivation for Wavescope 2008/23/4 IPSN/SPOTS '08, St. Louis, MO 24 What is Wavescope? Streaming Databases Borealis Stanford STREAM TelegraphCQ Coral8, StreamBase Ptolemy StreamIT GnuRadio Simulink Dataflow Languages ProfileDetector <t1,t2,emit> +    Audio0 <audio> Audio1 <audio> Audio2 <audio> Audio3 <audio> sync Idea: High performance dataflow system, but with semantics similar to stream databases Safe, powerful, optimizable language Support for asynchronous, dynamic, unreliable sensor net environment IPSN/SPOTS '08, St. Louis, MO 2008/23/4 <w1,w2,w3,w4> Initial Results: • 1000x faster than existing stream db’s; • Similar performance to hand-coded C; • Better support for task dynamics than SDF 25 Wavescope Objectives  Interactive “query” model Concurrent queries installed in node engine  UI tools provide visibility into query progress   Integration between backend and sensors Single program is split across both realms  Operates on stored and streaming data   Safe, fast, highly optimizable language High rate isochronous data, dynamic data flow  Single language with modern properties  2008/23/4 IPSN/SPOTS '08, St. Louis, MO 26 Girod, et. al., CIDR 2007 Wavescript    Functional language with mutation Strict, static typing with type inference Partial evaluation at compile time   “meta-program” constructs data flow graph Why a new language? Expressive for this class of applications  Optimizations  2008/23/4 27 Newton, et. al., in submission to PLDI 2008 IPSN/SPOTS '08, St. Louis, MO Contributions  Developed platform capable of rapid deployment in realistic environments   High level macroprogramming interface    Platform = Hardware + software Compiles into a high performance distributed application Abstracts the user from network details Defined an interactive usage model   2008/23/4 Run-time installable programs Run same program over live or stored data IPSN/SPOTS '08, St. Louis, MO 28 Conclusions: VoxNet  First deployment, platform using Wavescope approach on embedded hardware   Improves on previous work      Deployed, validated with motivating application Less resource overhead On-line interaction Data archival Dynamically adjust processing boundaries Built over solid, deployed, software framework (EmStar)   2008/23/4 Less emphasis on debugging visibility EmStar validated through application experience, deployment and iterative development over several years IPSN/SPOTS '08, St. Louis, MO 29 Conclusions: Motivations and challenges  Distributed acoustic sensing is ongoing    A variety of motivating domains and applications    High data rate sensing is a challenge in WSNs In-network processing/data reduction is vital Scientific, military, smart office Event detection, localization, classification A need for flexible, capable, general acoustic sensing platforms      Applications are hard, solutions need iteration Significant expense, effort is always expended in deployment Suitable high level programming abstraction for non-experts Highly optimized for embedded platforms Interactive - react to unforeseen situations We believe VoxNet meets these needs 2008/23/4 IPSN/SPOTS '08, St. Louis, MO 30 Here’s how  Interactive programming allows operational adjustments in the field    Programming environment allows abstraction of networking concerns (as far as possible) Platform architecture avoids problems of badly configured applications   Make most of time present in field Record full data stream, replay data offline Accurate self-localization removes need for manual surveying*  Deployment is always harder than you remember *not a direct contribution of VoxNet 2008/23/4 IPSN/SPOTS '08, St. Louis, MO 31 Library: Spill to disk  Save full data stream locally (on gumstix storage server)    Regardless of current on-line processing User can spill whatever data they require to named local stream Multiple uses for disk archiving   Process data in the field, after the fact Off-line archival, indexing, annotation, sharing Chan 1 Data Acq. Chan 2 + Chan 3 Time sync Chan 4 (slauson) 2008/23/4 Raw data stream Application (slauson) Spill to disk (gumstix) IPSN/SPOTS '08, St. Louis, MO 32 What’s new?   First embedded Wavescope deployment Provides on-line and off-line operation   Safe, high level macro-programming environment    Record all data or last hour’s data for reprocessing in the field Single Wavescript program is partitioned and distributed Heterogeneous, multi-hop wireless network Efficiency improvements (CPU, memory) 2008/23/4 IPSN/SPOTS '08, St. Louis, MO 33 Backup: Named Network Streams // Send side: ToNet(“MyStream”, S); // Receive side: R = FromNet(“MyStream”);   Default stream semantics: reliable message delivery, with bounded send buffer and head drop Implemented in Wavescript and C via Foreign Function Interface 2008/23/4 IPSN/SPOTS '08, St. Louis, MO 34 Backup: Streams in Wavescript // Sensor side: (sendback,runlocal) = switch(Detections, fun (x) SensorBufferTimeRemaining() < 3.0); ToNet(“AMLStream”, AML(runlocal)); ToNet(“RawStream”, sendback); // Server AMLStream RawStream AllAMLs =   side: = FromNet(“AMLStream”); = FromNet(“RawStream”); merge(AMLStream, AML(RawStream)); Note: switch is simple to implement in Wavescript. Related work: VanGo 2008/23/4 IPSN/SPOTS '08, St. Louis, MO 35 Backup: Visualisation   Visualiser allows scientist to ‘subscribe’ to any network stream and visualise it Future work – automatic marshalling, data types 2008/23/4 IPSN/SPOTS '08, St. Louis, MO 36 Backup: One-hop data transfer 2008/23/4 IPSN/SPOTS '08, St. Louis, MO 37 Back up: VoxNet node       Four channel 48KHz audio, 802.11b network, internal battery (5-10hr) 400MHz processor, 64MB RAM Linux based OS, with EmStar on top Targeted at science applications A standard acoustic platform Rapidly deployable:   2008/23/4 Attended short-lived deployments IPSN/SPOTS '08, St. Louis, MO 38 Back up: VoxNet node  Self-calibration/localization Acoustic time of flight ranging (~75m)  Direction of arrival  Multilateration algorithm for position/orientation estimation  Take advantage of capabilities required for acoustic sensing   Global time over network (10us) 5cm 2D pos, 1.5 deg. orientation error in 80mx50m outdoor environment 2008/23/4 IPSN/SPOTS '08, St. Louis, MO 39 What is VoxNet?   Integrated hardware and software platform for distributed acoustic sensing Captures previous experience in deploying acoustic sensing networks Top level Wavescript application Node-side + Sink-side EmStar drivers Networked streams EmStar drivers Control console Networked streams MH Routing App. Dissemination MH Routing Data archival Self-localization Time sync Data acquisition Hardware 2008/23/4 IPSN/SPOTS '08, St. Louis, MO Visualization App. Compilation 40 Distributed Acoustic Sensing is hard Goals  Event detection  Target localization  Target tracking  Target classification  Signal enhancement Domains    Scientific research Smart offices Military 2008/23/4 Challenges  Deployment  Self-localization  Time synchronization  Programming model  Network communication  Operating faults  Wide-band signals  Channel noise  Processing capability  Real-time operation IPSN/SPOTS '08, St. Louis, MO 41 VoxNet network support  Support flow of Wavescript streams between nodes   Publish/subscribe named streams (“control”, “data”)   Sits below Wavescope application Default network stream semantics:    In our case, sink is endpoint for programs Reliable message delivery Bounded send buffer, head drop Assumes IP connectivity (over multiple hops)  2008/23/4 User space implementation of Dynamic Source Routing IPSN/SPOTS '08, St. Louis, MO 42 VoxNet node software stack Wavescript application Node-side Sink-side Drivers Drivers Networked streams MH Routing Control console Networked streams Data archival MH Routing Self-localization Time sync Data acquisition App. Dissemination Visualization Hardware 2008/23/4 App. Compilation IPSN/SPOTS '08, St. Louis, MO 43 Networked streams  Special network operators allow logical streams to flow over network toward endpoint (sink) Publish/subscribe mechanism  Underlying C implementation   Default network stream semantics: Reliable message delivery  Bounded send buffer, head drop   Assumes multi-hop IP connectivity  2008/23/4 Used implementation of Dynamic Source Routing IPSN/SPOTS '08, St. Louis, MO 44