Minitask Architecture and MagTracking Demo Returns NEST PI Meeting Jan 29, 2003
description
Transcript of Minitask Architecture and MagTracking Demo Returns NEST PI Meeting Jan 29, 2003
![Page 1: Minitask Architecture and MagTracking Demo Returns NEST PI Meeting Jan 29, 2003](https://reader035.fdocuments.net/reader035/viewer/2022070502/56814b70550346895db85bc4/html5/thumbnails/1.jpg)
1
Minitask Architecture and
MagTracking Demo Returns
NEST PI Meeting Jan 29, 2003
Presented byCory Sharp, Kamin Whitehouse
Rob SzewczykDavid Culler, Shankar Sastry
![Page 2: Minitask Architecture and MagTracking Demo Returns NEST PI Meeting Jan 29, 2003](https://reader035.fdocuments.net/reader035/viewer/2022070502/56814b70550346895db85bc4/html5/thumbnails/2.jpg)
2
Minitask Groups
• Estimation– Ohio State (spanning tree)– UVA
• Localization– Lockheed ATC– Berkeley
• Power Management– CMU
• Routing– Ohio State– UVA– PARC– UMich
• Service Coordination– UC Irvine– Lockheed ATC– Berkeley (oversight)
• Team Formation– Ohio State– Lockheed ATC– UVA
• TimeSync– Ohio State (fault tolerance)– UCLA– Notre Dame
![Page 3: Minitask Architecture and MagTracking Demo Returns NEST PI Meeting Jan 29, 2003](https://reader035.fdocuments.net/reader035/viewer/2022070502/56814b70550346895db85bc4/html5/thumbnails/3.jpg)
3
Minitask Goals
• Drive NEST technology and Program Integration– produce viable middleware components for challenge appln– make integration happen early
• Drive NEST program concept– application independent composable middleware– concrete framework for exploring composition, coordination
and time-bounded synthesis– enable meaningful discussion on each
• Guide formulation of metrics– Services Metric: usefulness (refactorization)– Components Metric: composability, modularity
• Assist collaboration between groups in the short term– Provide an initial, working testbed– Groups will enhance and replace services
• Toward code generation
![Page 4: Minitask Architecture and MagTracking Demo Returns NEST PI Meeting Jan 29, 2003](https://reader035.fdocuments.net/reader035/viewer/2022070502/56814b70550346895db85bc4/html5/thumbnails/4.jpg)
4
Composability Gives:
• Maintainability• Collaboration• Extensibility• Consistency• Predictability of interface• Verifiability
![Page 5: Minitask Architecture and MagTracking Demo Returns NEST PI Meeting Jan 29, 2003](https://reader035.fdocuments.net/reader035/viewer/2022070502/56814b70550346895db85bc4/html5/thumbnails/5.jpg)
5
Architecture Overview
![Page 6: Minitask Architecture and MagTracking Demo Returns NEST PI Meeting Jan 29, 2003](https://reader035.fdocuments.net/reader035/viewer/2022070502/56814b70550346895db85bc4/html5/thumbnails/6.jpg)
6
MagTracking Demo Logic
• Ad hoc sensor field node nodes• Each node knows only its own location (coordinates)• Neighborhood discovery
– Learn of “neighbors” and their locations• Local Processing: Magnetometer readings are acquired, filtered• Group Formation and Data Sharing:
– readings placed on the “hood”• In-nw aggregation and leader election:
– node with highest reading calculates and sends an estimate…• ... via geographic location-based routing to special node (0,0).
– Neighborhood membership restricted to force reliable multi-hop.• The mote at (0,0) sends the estimate to a camera node
• Direct map to transition multi-tier sensor scenario
![Page 7: Minitask Architecture and MagTracking Demo Returns NEST PI Meeting Jan 29, 2003](https://reader035.fdocuments.net/reader035/viewer/2022070502/56814b70550346895db85bc4/html5/thumbnails/7.jpg)
7
MagTracking Services
• MagSensor– Accumulates, filters magnetometer readings.
• Routing– Supports a number of routing methodologies.
• Neighborhood “hood”– Facilitates sharing among components on a node, and– discovery and data sharing among nodes in a localized region
• Localization– Discovers geographic location of the mote
• TimeSync– Synchronizes time between motes
• Service Coordination– Controls behavior of an aggregation of services
![Page 8: Minitask Architecture and MagTracking Demo Returns NEST PI Meeting Jan 29, 2003](https://reader035.fdocuments.net/reader035/viewer/2022070502/56814b70550346895db85bc4/html5/thumbnails/8.jpg)
8
Scheduler
Localization
“Hood”Reflected Tuples
Routing
TimeSync
MagSensor
Estimation
Service Wiring
![Page 9: Minitask Architecture and MagTracking Demo Returns NEST PI Meeting Jan 29, 2003](https://reader035.fdocuments.net/reader035/viewer/2022070502/56814b70550346895db85bc4/html5/thumbnails/9.jpg)
9
MagTracking Services
• MagSensor– Accumulates, filters magnetometer readings
• Routing– Supports a number of routing methodologies
• Neighborhood– Facilitates local discovery and data sharing
• Localization– Discovers geographic location of the mote
• TimeSync– Synchronizes time between motes
• Service Coordination– Controls behavior of an aggregation of services
![Page 10: Minitask Architecture and MagTracking Demo Returns NEST PI Meeting Jan 29, 2003](https://reader035.fdocuments.net/reader035/viewer/2022070502/56814b70550346895db85bc4/html5/thumbnails/10.jpg)
10
Magnetometer
![Page 11: Minitask Architecture and MagTracking Demo Returns NEST PI Meeting Jan 29, 2003](https://reader035.fdocuments.net/reader035/viewer/2022070502/56814b70550346895db85bc4/html5/thumbnails/11.jpg)
11
Magnetometer Philosophy
• Seeking composability• Break functionality into Sensor, Actuator, and Control
– Sensors: get() and getDone(value)– Actuators: set(value) and setDone()– Control: domain-specific manipulations that gain nothing from
generalization• Separate module behavior from composite behavior
– Filter modules live in a vacuum• Maximize opportunity for composability
– clean stacking
![Page 12: Minitask Architecture and MagTracking Demo Returns NEST PI Meeting Jan 29, 2003](https://reader035.fdocuments.net/reader035/viewer/2022070502/56814b70550346895db85bc4/html5/thumbnails/12.jpg)
12
Magnetometer Interfaces
• MagSensor interface– Abstract sensor interface
• command result_t read();• event result_t readDone( Mag_t* mag );
• MagBiasActuator interface– Abstract actuator interface
• command result_t set( MagBias_t* bias );• event result_t setDone( result_t success );
• MagAxesSpecific interface– “Control” functionality that doesn’t fit the model of an actuator or sensor
• command void enableAxes( MagAxes_t* axes );• command MagAxes_t* isAxesEnabled();
![Page 13: Minitask Architecture and MagTracking Demo Returns NEST PI Meeting Jan 29, 2003](https://reader035.fdocuments.net/reader035/viewer/2022070502/56814b70550346895db85bc4/html5/thumbnails/13.jpg)
13
Magnetometer Modules
• MagMovingAvgM module– Filter from MagSensor to MagSensor– Performs a moving average across magnetometer
readings• MagFuseBiasM module
– Filter from MagSensor to MagSensor– “Fuses” bias with reading to give one “absolute”
reading value• MagAutoBiasM module
– Filter from MagSensor to MagSensor– Magnetometer readings vary between 200 and 800 but
have an absolute range of about 9000.– Readings often rail at 200 or 800, continually adjust
bias to drive readings to 500.• MagSensorM module
– Translation layer between TinyOS and MagSensor
MagAutoBiasM
MagSensorM
MagFuseBiasM
MagMovingAvgM
![Page 14: Minitask Architecture and MagTracking Demo Returns NEST PI Meeting Jan 29, 2003](https://reader035.fdocuments.net/reader035/viewer/2022070502/56814b70550346895db85bc4/html5/thumbnails/14.jpg)
14
Magnetometer Conclusions
• Filtering– Transparency in composition
![Page 15: Minitask Architecture and MagTracking Demo Returns NEST PI Meeting Jan 29, 2003](https://reader035.fdocuments.net/reader035/viewer/2022070502/56814b70550346895db85bc4/html5/thumbnails/15.jpg)
15
Routing
![Page 16: Minitask Architecture and MagTracking Demo Returns NEST PI Meeting Jan 29, 2003](https://reader035.fdocuments.net/reader035/viewer/2022070502/56814b70550346895db85bc4/html5/thumbnails/16.jpg)
16
Routing Overview
• Application-level features– Broadcast example
• Developer features– General routing structure– Anatomy of a SendByLocation– Routing configuration file– Routing extensions
![Page 17: Minitask Architecture and MagTracking Demo Returns NEST PI Meeting Jan 29, 2003](https://reader035.fdocuments.net/reader035/viewer/2022070502/56814b70550346895db85bc4/html5/thumbnails/17.jpg)
17
Application-LevelRouting Features
• Send and receive interfaces are nearly-identical to AM TinyOS counterparts.– “Destination” differs per routing semantics
• Broadcast: max hops• Location: position and radius in R3, etc.
• Unification of routing methods.– Receive is independent of the routing module and method.– Interact with the routing stack as a single, multi-method
component.• Message body packing is independent of the routing
method.
• Depends on NesC features– interpositioning on parameterized interfaces
![Page 18: Minitask Architecture and MagTracking Demo Returns NEST PI Meeting Jan 29, 2003](https://reader035.fdocuments.net/reader035/viewer/2022070502/56814b70550346895db85bc4/html5/thumbnails/18.jpg)
18
Application Interface – Broadcast Example
• Choose a protocol number, say 99, and wire to it:AppC -> RoutingC.SendByBroadcast[99];AppC -> RoutingC.Receive[99];
• Initialize and send your message:mydata_t* msgbody = (mydata_t*)initRoutingMsg( &msg, sizeof(mydata_t) );// ...call SendByBroadcast.send( 2 , &msg );
• Send done event:SendByBroadcast.sendDone( TOS_MsgPtr msg, result_t success );
• Receive time sync messages:TOS_MsgPtr RoutingReceive.receive(TOS_MsgPtr msg);
![Page 19: Minitask Architecture and MagTracking Demo Returns NEST PI Meeting Jan 29, 2003](https://reader035.fdocuments.net/reader035/viewer/2022070502/56814b70550346895db85bc4/html5/thumbnails/19.jpg)
19
DeveloperRouting Features
• Internal routing components are modular and composable.– Routing modules only responsible for decisions of
destination.– Routing decorations augment the stack
independent of routing modules.– Modules and decorations always provide and use
RoutingSend and RoutingReceive.• Routing extensions enabled by per-message
key-value pairs.• Header encapsulation determined by
composition
![Page 20: Minitask Architecture and MagTracking Demo Returns NEST PI Meeting Jan 29, 2003](https://reader035.fdocuments.net/reader035/viewer/2022070502/56814b70550346895db85bc4/html5/thumbnails/20.jpg)
20
SendByBroadcast
SendByAddress
SendByLocation
UCB MCast UCB MHop UCB Locat.
TinyOSRouting
(Secure)GenericComm
ReceiveSendByBroadcast
SendByAddress
SendByLocation
UCB MCast UCB MHop UCB Locat.
TinyOSRouting
Decorations
Decorations Decorations Decorations
Decorations
Decorations Decorations Decorations
(Secure)GenericComm
ReceiveSendByBroadcast
SendByAddress
SendByLocation
UCB MCast UCB MHop UCB Locat.
TinyOSRouting
(Secure)GenericComm
ReceiveSendByBroadcast
SendByAddress
SendByLocation
UCB MCast UCB MHop UCB Locat.
TinyOSRouting
Decorations
Decorations
(Secure)GenericComm
Receive Application interfaces
Routing modules
Interface translation
TinyOS Comm
Decorations
Decorations
Module Decorations
Module Decorations
General Routing Structure
![Page 21: Minitask Architecture and MagTracking Demo Returns NEST PI Meeting Jan 29, 2003](https://reader035.fdocuments.net/reader035/viewer/2022070502/56814b70550346895db85bc4/html5/thumbnails/21.jpg)
21
SendByBroadcast
SendByAddress
SendByLocation
BerkeleyBroadcast
BerkeleyAddress
BerkeleyLocation
TinyOSRouting
(Secure)GenericComm
Receive
Tag Dst Address
Tag Src Address
Local Loopback
Retries, Priority Q.
Ignore Dupe Msgs
Anatomy of a SendByLocation80 03 40 02 00 00 00 00 22 02 33 02 33 02 17 00 56
3
2
4
5
6
1Mote 0x233 sends an estimate (3.5,2.25) to location (0,0) using “protocol” 86.
0x233
0x222
(0,0)
1 2 3 4 5 6
(3.5,2.25)
![Page 22: Minitask Architecture and MagTracking Demo Returns NEST PI Meeting Jan 29, 2003](https://reader035.fdocuments.net/reader035/viewer/2022070502/56814b70550346895db85bc4/html5/thumbnails/22.jpg)
22
/*<routing>Top:TOSAM 100: provides interface RoutingSendByAddress; BerkeleyAddressRoutingM;TOSAM 101: provides interface RoutingSendByBroadcast; BerkeleyBroadcastRoutingM;TOSAM 102: provides interface RoutingSendByLocation; BerkeleyLocationRouting2M; TagDestinationAddressRoutingM; TagSourceAddressRoutingM;Bottom: LocalLoopbackRoutingM; ReliablePriorityRoutingSendM; IgnoreDuplicateRoutingM; IgnoreNonlocalRoutingM; </routing>*/includes Routing;configuration RoutingC {}implementation { // ...}
SendByBroadcast
SendByAddress
SendByLocation
BerkeleyBroadcast
BerkeleyAddress
BerkeleyLocation
TinyOSRouting
(Secure)GenericComm
Receive
Tag Dst Address
Tag Src Address
Local Loopback
Retries, Priority Q.
Ignore Dupe Msgs
Routing Configuration File
![Page 23: Minitask Architecture and MagTracking Demo Returns NEST PI Meeting Jan 29, 2003](https://reader035.fdocuments.net/reader035/viewer/2022070502/56814b70550346895db85bc4/html5/thumbnails/23.jpg)
23
Routing Extensions
• Extensions use key-value pairs per message• Modules/decorations that provide an extension have extra
markup:– //!! RoutingMsgExt { uint8_t priority = 0; }– //!! RoutingMsgExt { uint8_t retries = 2; }
• Preprocessed into a substructure of TOS_Msg.• Applications assume extensions exist:
– mymsg.ext.priority = 1;– mymsg.ext.retries = 4;
• Unsupported extensions produce compile-time errors
• Currently goes beyond nesC IDL capabilities– as approach gets resolved, look for language solution
![Page 24: Minitask Architecture and MagTracking Demo Returns NEST PI Meeting Jan 29, 2003](https://reader035.fdocuments.net/reader035/viewer/2022070502/56814b70550346895db85bc4/html5/thumbnails/24.jpg)
24
Routing Conclusions
• Application level is nearly identical to TOS• Unification of routing methods• Internally modular and composable• Extensible
![Page 25: Minitask Architecture and MagTracking Demo Returns NEST PI Meeting Jan 29, 2003](https://reader035.fdocuments.net/reader035/viewer/2022070502/56814b70550346895db85bc4/html5/thumbnails/25.jpg)
25
Neighborhood
![Page 26: Minitask Architecture and MagTracking Demo Returns NEST PI Meeting Jan 29, 2003](https://reader035.fdocuments.net/reader035/viewer/2022070502/56814b70550346895db85bc4/html5/thumbnails/26.jpg)
26
Data Sharing
![Page 27: Minitask Architecture and MagTracking Demo Returns NEST PI Meeting Jan 29, 2003](https://reader035.fdocuments.net/reader035/viewer/2022070502/56814b70550346895db85bc4/html5/thumbnails/27.jpg)
27
Data Sharing
Data Sharing Today• msg protocol• Implement comm
functionality• Choose neighbors• Data management
Neighborhood Service• “Get” interface to remote
data• Use Neighborhood Infce
![Page 28: Minitask Architecture and MagTracking Demo Returns NEST PI Meeting Jan 29, 2003](https://reader035.fdocuments.net/reader035/viewer/2022070502/56814b70550346895db85bc4/html5/thumbnails/28.jpg)
28
Standardized API
• Declare data to be shared• Get/set data • Choose neighbors• Choose sync method
![Page 29: Minitask Architecture and MagTracking Demo Returns NEST PI Meeting Jan 29, 2003](https://reader035.fdocuments.net/reader035/viewer/2022070502/56814b70550346895db85bc4/html5/thumbnails/29.jpg)
29
Benefits
• Refactorization• Simplifies interface to data exchange• Clear sharing semantic• Sharing of data between components w/i
node as well as between nodes• Optimization
• Trade-offs between ease of sharing and control
![Page 30: Minitask Architecture and MagTracking Demo Returns NEST PI Meeting Jan 29, 2003](https://reader035.fdocuments.net/reader035/viewer/2022070502/56814b70550346895db85bc4/html5/thumbnails/30.jpg)
30
Our Implementation
TuplePublisher
TupleStore TupleManager
Mag
Comm Stack
Light Temp
![Page 31: Minitask Architecture and MagTracking Demo Returns NEST PI Meeting Jan 29, 2003](https://reader035.fdocuments.net/reader035/viewer/2022070502/56814b70550346895db85bc4/html5/thumbnails/31.jpg)
31
Our API
• Declare data to be shared• Get/set data • Choose neighbors• Choose sync method
![Page 32: Minitask Architecture and MagTracking Demo Returns NEST PI Meeting Jan 29, 2003](https://reader035.fdocuments.net/reader035/viewer/2022070502/56814b70550346895db85bc4/html5/thumbnails/32.jpg)
32
Our API
• Declare data to be shared//!! Neighbor {mag = 0;}
• Get/set data • Choose neighbors• Choose sync method
![Page 33: Minitask Architecture and MagTracking Demo Returns NEST PI Meeting Jan 29, 2003](https://reader035.fdocuments.net/reader035/viewer/2022070502/56814b70550346895db85bc4/html5/thumbnails/33.jpg)
33
Our API
• Declare data to be shared• Get/set data • Choose neighbors• Choose sync method
![Page 34: Minitask Architecture and MagTracking Demo Returns NEST PI Meeting Jan 29, 2003](https://reader035.fdocuments.net/reader035/viewer/2022070502/56814b70550346895db85bc4/html5/thumbnails/34.jpg)
34
Our API
• Declare data to be shared• Get/set data
– Neighborhood “interface” • Choose neighbors• Choose sync method
![Page 35: Minitask Architecture and MagTracking Demo Returns NEST PI Meeting Jan 29, 2003](https://reader035.fdocuments.net/reader035/viewer/2022070502/56814b70550346895db85bc4/html5/thumbnails/35.jpg)
35
Neighborhood Interface
• command struct* get(nodeID)• command struct* getFirst()command struct* getNext(struct*)
• event updated(nodeID)• command set(nodeID, struct*)• ommand requestRemoteTuples();
![Page 36: Minitask Architecture and MagTracking Demo Returns NEST PI Meeting Jan 29, 2003](https://reader035.fdocuments.net/reader035/viewer/2022070502/56814b70550346895db85bc4/html5/thumbnails/36.jpg)
36
Our API
• Declare data to be shared• Get/set data • Choose neighbors• Choose sync method
![Page 37: Minitask Architecture and MagTracking Demo Returns NEST PI Meeting Jan 29, 2003](https://reader035.fdocuments.net/reader035/viewer/2022070502/56814b70550346895db85bc4/html5/thumbnails/37.jpg)
37
Our API
• Declare data to be shared• Get/set data • Choose neighbors
– Choose tupleManager component• Choose sync method
![Page 38: Minitask Architecture and MagTracking Demo Returns NEST PI Meeting Jan 29, 2003](https://reader035.fdocuments.net/reader035/viewer/2022070502/56814b70550346895db85bc4/html5/thumbnails/38.jpg)
38
Our API
• Declare data to be shared• Get/set data • Choose neighbors• Choose sync method
![Page 39: Minitask Architecture and MagTracking Demo Returns NEST PI Meeting Jan 29, 2003](https://reader035.fdocuments.net/reader035/viewer/2022070502/56814b70550346895db85bc4/html5/thumbnails/39.jpg)
39
Our API
• Declare data to be shared• Get/set data • Choose neighbors• Choose sync method
– Choose tuplePublisher component
![Page 40: Minitask Architecture and MagTracking Demo Returns NEST PI Meeting Jan 29, 2003](https://reader035.fdocuments.net/reader035/viewer/2022070502/56814b70550346895db85bc4/html5/thumbnails/40.jpg)
40
Limitations and Alternatives
• Each component might want to have different – neighbors
• k-hop nodes, ...– sharing semantics, publish event, synchronization
• Might want group addressing• Might have logically independent “hoods”
– Space efficiency• More powerful query interface
many alternative can be layered on top build from concrete enabler
![Page 41: Minitask Architecture and MagTracking Demo Returns NEST PI Meeting Jan 29, 2003](https://reader035.fdocuments.net/reader035/viewer/2022070502/56814b70550346895db85bc4/html5/thumbnails/41.jpg)
41
Service Coordinator Design
![Page 42: Minitask Architecture and MagTracking Demo Returns NEST PI Meeting Jan 29, 2003](https://reader035.fdocuments.net/reader035/viewer/2022070502/56814b70550346895db85bc4/html5/thumbnails/42.jpg)
42
Outline
• Motivation• Use Scenarios• High-level Overview• Interfaces
![Page 43: Minitask Architecture and MagTracking Demo Returns NEST PI Meeting Jan 29, 2003](https://reader035.fdocuments.net/reader035/viewer/2022070502/56814b70550346895db85bc4/html5/thumbnails/43.jpg)
43
Motivation• Services need not to run all the time
– Resource management – power, available bandwidth or buffer space
– Service conditioning – minimize the interference between services– Run time of different services needs to be coordinated across the
network• Generic coordination of services
– Separation of service functionality and scheduling (application-driven requirement)
– Scheduling information accessible through a single consistent interface across many applications and services
– Only a few coordination possibilities• Types of coordination
– Synchronized– Colored – Independent
![Page 44: Minitask Architecture and MagTracking Demo Returns NEST PI Meeting Jan 29, 2003](https://reader035.fdocuments.net/reader035/viewer/2022070502/56814b70550346895db85bc4/html5/thumbnails/44.jpg)
44
Use Scenarios
• Midterm demo– Localization, time sync– Scheduling of active nodes based to preserve
sensor coverage• Other apps
– Control the duty cycle based on relevance of data– Sensing perimeter maintenance– Generic Sensor Kit
![Page 45: Minitask Architecture and MagTracking Demo Returns NEST PI Meeting Jan 29, 2003](https://reader035.fdocuments.net/reader035/viewer/2022070502/56814b70550346895db85bc4/html5/thumbnails/45.jpg)
45
High-level Overview
Command Interpreter
Scheduler
Service Coordinator
NeighborhoodTime Sync
Localization
Mag Tracking
…
Radio
![Page 46: Minitask Architecture and MagTracking Demo Returns NEST PI Meeting Jan 29, 2003](https://reader035.fdocuments.net/reader035/viewer/2022070502/56814b70550346895db85bc4/html5/thumbnails/46.jpg)
46
Interfaces• Service Control
• Service Scheduler Interface
interface ServiceCtl {command result_t ServiceInit();command result_t ServiceStart();command result_t ServiceStop();event void ServiceInitialized(result_t status);
}
typedef struct {StartTime;Duration; Repeat; CoordinationType;
} ServiceScheduleType;interface ServiceSchedule {
command result_t ScheduleSvc(SvcID, ServiceScheduleType *);command ServiceScheduleType *getSchedule(SvcID);event ScheduleChanged(SvcID);
}
![Page 47: Minitask Architecture and MagTracking Demo Returns NEST PI Meeting Jan 29, 2003](https://reader035.fdocuments.net/reader035/viewer/2022070502/56814b70550346895db85bc4/html5/thumbnails/47.jpg)
47
Discussion