1 / 25

Alex Edgcomb Oral Qualification March 2nd, 2011

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.

genna
Download Presentation

Alex Edgcomb Oral Qualification March 2nd, 2011

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

  2. The Goal: User-configurable notification systems for in-home use In bathroom for 1 hour Napping too long Fall down at home Identify person at front door

  3. Not enough configurability QuietCare GrandCare BeClose

  4. Too much configurability X10 (Also dangerous) SmartHome

  5. Outside too long at night Grandma has Alzheimer’s Not safe to be outside at night Want to be notified if she is for long

  6. Defining the system Leaving = motion to the right Night = 10PM to 5AM Returning = motion to the left Send a text message if someone leaves, without returning, for more than 10 minutes at night.

  7. Microsoft VPL

  8. 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

  9. Lego Mindstorms v2.0 • Lacks global variables. • Variables cannot be read/written more than once. • No sense of actual time.

  10. Scratch New functionality leads to: • Redundant code • Complex code Reason: Independent behavior is not separated away. For example, add a 2nd door: • Create second code block • Embed new timer/variable

  11. RIBS and RIMS 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. CS120B (Introduction to Embedded Systems) students take 5+ weeks to correctly describe exact behavior.

  12. MNFL

  13. MNFL Data Types Number – Negative and positive whole numbers Boolean – True / False Picture – 2D array of pixels Video – Stream of pictures Tone – A pair of {frequency, amplitude} Sound – Stream of tones

  14. MNFL Modifiers of Data Types Stream Snapshot Snippet

  15. MNFL Core blocks

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

  17. In bathroom for over 1 hour

  18. Got up 5 or more times at night “Got up” = was motion, then no motion for 10 minutes

  19. Take 1 pill in the morning

  20. KPN Execution semantics • Kahn processing networks (KPN) • Processes communicate through channels • When all input channels have a token, the process executes and outputs tokens Kahn, G. The Semantics of a Simple Language for Parallel Programming. Information Processing 1974. North-Holland Publishing Company, 1974.

  21. SDF Execution semantics • Synchronous data flow • Process = KPN process • Channel = KPN channel • Difference: • Processes read and write a constant number of tokens. Lee, Edward A. and David G. Messerschmitt. Synchronous Data Flow. Proceedings of the IEEE, vol. 75, no. 9, p 1235-1245, September, 1987.

  22. 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

  23. MNFL block SM • Inside each block is a state machine. • Q = queue of inputs I = current input • P = previous input O = output

  24. 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.

  25. 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 • Human subject trials to improve usability • Develop mechanism for users to build and integrate new blocks • Move computations to cloud

More Related