NEST PI Meeting July 9-12, 2002Copyright © Vanderbilt University/ISIS 2002
prowler PROBABILISTIC WIRELESS NETWORK SIMULATOR
Features: Event-driven Deterministic or Probabilistic Command line / GUI Visualization Statistics / Optimization Any number of motes / any application Fast application prototyping MATLAB-based
NEST PI Meeting July 9-12, 2002Copyright © Vanderbilt University/ISIS 2002
prowler can simulate:
distance
distance
‘ideal’
measured
Signal strength
Send_Packet Packet_Sent
Channel_Idle_Check
Waiting_Time Backoff_Time Transmission_Time
Radio Propagation Transmit, Receive, Collision Model for signal strength:
based on distance deterministic or probabilistic (fading)
location (LARGE VARIATION)
time (SMALL VARIATION)
asymmetric links random failures/external disturbances
TinyOS w/ MAC-layer Complete MAC-layer protocol Simplified set of
Events Commands
+ Application (plug-in)
NEST PI Meeting July 9-12, 2002Copyright © Vanderbilt University/ISIS 2002
1. Topology Information for the Motes coordinates of the motes can change during simulation
(may be random)
2. Visualization definition (optional) eventsvisual effects
3. Application Code actions to events generate new events
case 'Packet_Received' if rand<0.7 Send_Packet(RadioStream(data, memory.signal_strength)); end
Application
% Event_name Target Color Size anim_def={... {'Init_Application',1,[0 0 0 ],small}, ... {'Packet_Sent', 2,[1 0 0 ],small}, ... {'Packet_Received', 3,[1 0 0 ],small}, ...
Topology = [1,1;1,2;2,1; 2,2];
mote_IDs = [1,2,3,4];
NEST PI Meeting July 9-12, 2002Copyright © Vanderbilt University/ISIS 2002
Example Application: Flood
Commands
Simulator
switch event
case 'Init_Application'
signal_strength=100;
%%%%%%%%%%%%%%%%%%%% Memory initialized here %%%%%%%%%%%%%%%%%%%%%%%
memory=struct('send',1, 'signal_strength', signal_strength);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
if ID==1 % first node starts flood
Set_Clock(1000)
end
case 'Packet_Sent'
% do nothing
case 'Packet_Received'
if memory.send
p=sim_params('get_app', 'P');
if rand<p
Send_Packet(radiostream(data, memory.signal_strength));
end
memory.send=0;
end
case 'Collided_Packet_Received'
% this is for debug purposes only
case 'Clock_Tick'
Send_Packet(RadioStream(data, memory.signal_strength));
end
MATLAB
Events
NEST PI Meeting July 9-12, 2002Copyright © Vanderbilt University/ISIS 2002
prowler – Main GUI
Application andradio definition
Graphic Visualization
Event Monitor
transmit
wait
receive
Text messages
Memory Dump of mote ID# 2:
send: 0
signal_strength: 1
NEST PI Meeting July 9-12, 2002Copyright © Vanderbilt University/ISIS 2002
Ideal transmissionfunction
prowler – Simulation Parameters
MAC-layerparameters
Fading effectparameters
Reception condition
NEST PI Meeting July 9-12, 2002Copyright © Vanderbilt University/ISIS 2002
Goal: • Optimize performance
Start
Optimization with prowler
Example: Flood in 2D with randomized retransmission (10x10 grid)
Parameters:• s – signal strength • p – retransmission probability
NEST PI Meeting July 9-12, 2002Copyright © Vanderbilt University/ISIS 2002
Optimization with prowlerSimple performance metrics:
NEST PI Meeting July 9-12, 2002Copyright © Vanderbilt University/ISIS 2002
Optimization with prowlerComposed performance metrics (‘adjustable interfaces’)
Metrics are composed from the number of receiving nodes & consumed energy: SNKNKSNNE TRRECTRREC 2
21 100),,(
strength signal:
nodes ing transmitt#:
nodes receiving #:
S
N
N
TR
REC
Emphasis on accuracy Emphasis on power consumption
optimum
NEST PI Meeting July 9-12, 2002Copyright © Vanderbilt University/ISIS 2002
prowler - Conclusions Fast and easy prototyping in MATLAB Captures the event-driven nature of TinyOS Algorithm testing in
deterministic environment probabilistic environment dynamically changing environment
Easy debugging Application area:
communication protocols, routing arbitrary application prototyping optimization, parameter tuning
Provides visualization Easy to expand; plugins