alex edgcomb oral qualification march 2nd, 2011

25
A Graphical Monitoring and Notification Flow Language (MNFL) for User-Configurable In-Home Assistive Monitoring Alex Edgcomb Oral Qualification March 2nd, 2011

Upload: genna

Post on 31-Jan-2016

25 views

Category:

Documents


0 download

DESCRIPTION

Alex Edgcomb Oral Qualification March 2nd, 2011. A Graphical Monitoring and Notification Flow Language (MNFL) for User-Configurable In-Home Assistive Monitoring. The Goal: User-configurable notification systems for in-home use. In bathroom for 1 hour. Napping too long. Fall down at home. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Alex Edgcomb Oral Qualification March 2nd, 2011

A Graphical Monitoring and Notification Flow Language (MNFL) for User-

Configurable In-Home Assistive Monitoring

Alex Edgcomb

Oral Qualification

March 2nd, 2011

Page 2: Alex Edgcomb Oral Qualification March 2nd, 2011

The Goal: User-configurable notification systems for in-home use

Identify personat front door

Fall down at home

In bathroom for 1 hour

Napping too long

2 of 25

Page 3: Alex Edgcomb Oral Qualification March 2nd, 2011

Not enough configurability

3 of 25

GrandCare

BeClose

QuietCare

Page 4: Alex Edgcomb Oral Qualification March 2nd, 2011

Too much configurability

4 of 25

X10(Also dangerous) SmartHome

Page 5: Alex Edgcomb Oral Qualification March 2nd, 2011

Outside too long at night

Not safe to be outside at night

Grandma has Alzheimer’s

Want to be notified if she is for long

5 of 25

Page 6: Alex Edgcomb Oral Qualification March 2nd, 2011

Defining the system

Send a text message if someone leaves, withoutreturning, for more than 10 minutes at night.

Leaving = motion to the right Returning = motion to the left

Night = 10PM to 5AM

6 of 25

Page 7: Alex Edgcomb Oral Qualification March 2nd, 2011

Microsoft VPL

7 of 25

Page 8: Alex Edgcomb Oral Qualification March 2nd, 2011

Microsoft VPL• If-statements with >1 variable require Join

• Join operator only takes two values at a time• Join waits for both variables to receive data

• Asynchronous data sources leads to raise condition.• If-statements require all variables using in If-statement and

Calculations done afterward.• Hard (if not impossible) to increment on a raising/falling edge

8 of 25

Page 9: Alex Edgcomb Oral Qualification March 2nd, 2011

Lego Mindstorms v2.0

• Lacks global variables.• Variables cannot be read/written more than once.• No sense of actual time.

9 of 25

Page 10: Alex Edgcomb Oral Qualification March 2nd, 2011

ScratchNew functionality leads to:

1.Redundant code

2.Complex code

Reason: Independent behavior is not separated away.

For example, add a 2nd door:

1.Create second code block

2.Embed new timer/variable

10 of 25

Page 11: Alex Edgcomb Oral Qualification March 2nd, 2011

RIBS and RIMS

CS120B (Introduction to Embedded Systems) students take 5+ weeks to correctly describe exact behavior.

inWindow = (time >= 10PM || time <= 5AM)

var Time 10minWait = time

Period length = 1 second

1) Define synch SM in RIBS.

2) Automatically convert to C code in RIMS.

11 of 25

Page 12: Alex Edgcomb Oral Qualification March 2nd, 2011

MNFL

System Pros Cons

Microsoft VPL Flow language style is intuitive for streaming applications

If-statements do not handle asynchronous data

Lego Mindstorm Easy to learn for people of age 10+

Variables too restrictive

Scratch Graphical cues indicate purpose/usage of blocks

Temporal programming does not handle new functionality well

RIBS and RIMS Precise behavioral description

Challenging to learn

12 of 25

Page 13: Alex Edgcomb Oral Qualification March 2nd, 2011

MNFL Data Types

13 of 25

Boolean – True / False

Tone – A pair of {frequency, amplitude}

Sound – Stream of tones

Picture – 2D array of pixels

Video – Stream of pictures

Number – Negative and positive whole numbers

Page 14: Alex Edgcomb Oral Qualification March 2nd, 2011

MNFL Modifiers of Data Types

14 of 25

Snapshot

Stream

Snippet

Page 15: Alex Edgcomb Oral Qualification March 2nd, 2011

MNFL Core blocks

15 of 25

Page 16: Alex Edgcomb Oral Qualification March 2nd, 2011

Video demo

16 of 25

YouTube version of video:http://www.youtube.com/user/eslucr#p/u/9/xpaOkhYBXT8

Page 17: Alex Edgcomb Oral Qualification March 2nd, 2011

In bathroom for over 1 hour

17 of 25

Page 18: Alex Edgcomb Oral Qualification March 2nd, 2011

Got up 5 or more times at night

18 of 25

“Got up” = was motion, then no motion for 10 minutes

Page 19: Alex Edgcomb Oral Qualification March 2nd, 2011

Take 1 pill in the morning

19 of 25

Page 20: Alex Edgcomb Oral Qualification March 2nd, 2011

KPN Execution semantics

Kahn processing networks (KPN) Processes communicate through channels

When all input channels have a token, the process executes and outputs tokens

20 of 25Kahn, G. The Semantics of a Simple Language for Parallel Programming. Information Processing 1974. North-Holland Publishing Company, 1974.

Page 21: Alex Edgcomb Oral Qualification March 2nd, 2011

SDF Execution semantics

• Synchronous data flow• Process = KPN process• Channel = KPN channel• Difference:

• Processes read and write a constant number of tokens.

21 of 25

Lee, Edward A. and David G. Messerschmitt. Synchronous Data Flow. Proceedings of the IEEE, vol. 75, no. 9, p 1235-1245, September, 1987.

Page 22: Alex Edgcomb Oral Qualification March 2nd, 2011

MNFL Execution semantics

• Monitoring and notification network language (MNFL)• Block = KPN process• Connection = KPN channel• Difference

• Block’s execute when any input channel has a token

22 of 25

Page 23: Alex Edgcomb Oral Qualification March 2nd, 2011

MNFL block SM

• Inside each block is a state machine.

• Q = queue of inputs I = current input• P = previous input O = output

23 of 25

Page 24: Alex Edgcomb Oral Qualification March 2nd, 2011

Implementation figures(as of 02/27/11)

• 8,000 total lines of ActionScript• 700 lines for discrete event simulation engine• 400 lines for base block class

• 80% related to graphical appearance and behavior• 50 – 600 lines for each block

• Largest two blocks:• Send message - high configurability• Fall extractor - detecting falls from silhouettes

• 26 fully implemented blocks• Block spawn, deletion and connection creation take

less than 1 ms on a single core 3.0GHz PC.

24 of 25

Page 25: Alex Edgcomb Oral Qualification March 2nd, 2011

Conclusions and Future work• EasyNotify

• Easy to use compared to currently available systems

• Core blocks contain in-home functionality• MNFL

• Data types tailored to in-home monitoring sensors

• Non-restrictive block communication

1. Human subject trials to improve usability2. Develop mechanism for users to build and

integrate new blocks3. Move computations to cloud

25 of 25