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

Slides:



Advertisements
Similar presentations
Construction process lasts until coding and testing is completed consists of design and implementation reasons for this phase –analysis model is not sufficiently.
Advertisements

Global States.
Feature Extractors for Integration of Cameras and Sensors during End-User Programming of Assistive Monitoring Systems Alex Edgcomb Frank Vahid University.
Use trace algebra to formalize the YAPI model EE290N Spring2002 Alessandro Pinto Mentors: Roberto Passerone Jerry Burch.
Adapted from Scott, Chapter 6:: Control Flow Programming Language Pragmatics Michael L. Scott.
Concurrent Programming James Adkison 02/28/2008. What is concurrency? “happens-before relation – A happens before B if A and B belong to the same process.
Loops in LabVIEW (while,for and case)
PTIDES: Programming Temporally Integrated Distributed Embedded Systems Yang Zhao, EECS, UC Berkeley Edward A. Lee, EECS, UC Berkeley Jie Liu, Microsoft.
Type System, March 12, Data Types and Behavioral Types Yuhong Xiong Edward A. Lee Department of Electrical Engineering and Computer Sciences University.
Using Interfaces to Analyze Compositionality Haiyang Zheng and Rachel Zhou EE290N Class Project Presentation Dec. 10, 2004.
A CHAT CLIENT-SERVER MODULE IN JAVA BY MAHTAB M HUSSAIN MAYANK MOHAN ISE 582 FALL 2003 PROJECT.
April 16, 2009 Center for Hybrid and Embedded Software Systems PtidyOS: An Operating System based on the PTIDES Programming.
Performance Analysis and Monitoring Facilities in CPN Tools Tutorial CPN’05 October 25, 2005 Lisa Wells.
Concurrency CS 510: Programming Languages David Walker.
Design of Fault Tolerant Data Flow in Ptolemy II Mark McKelvin EE290 N, Fall 2004 Final Project.
CS533 - Concepts of Operating Systems
The Structure of the “THE” -Multiprogramming System Edsger W. Dijkstra Jimmy Pierce.
Introduction to LabVIEW Seth Price Department of Chemical Engineering New Mexico Tech Rev. 10/5/14.
/faculteit technologie management DEMO CPN-tools Ronny Mans Eindhoven University of Technology, Faculty of Technology Management, Department of Information.
System-Level Types for Component-Based Design Paper by: Edward A. Lee and Yuhong Xiong Presentation by: Dan Patterson.
Cambodia-India Entrepreneurship Development Centre - : :.... :-:-
SYSTEMS SUPPORT FOR GRAPHICAL LEARNING Ken Birman 1 CS6410 Fall /18/2014.
Group practice in problem design and problem solving
Adapted from slides by Marie desJardins
Software Configuration Management (SCM)
Robotics Developer Studio and Visual Program Language VPL Yinong Chen
Research on cloud computing application in the peer-to-peer based video-on-demand systems Speaker : 吳靖緯 MA0G rd International Workshop.
Introduction to LabVIEW
CSCI 6962: Server-side Design and Programming Introduction to AJAX.
Institut für Computertechnik ICT Institute of Computer Technology Interaction of SystemC AMS Extensions with TLM 2.0 Markus Damm, Christoph.
Voicu Groza, 2008 SITE, HARDWARE/SOFTWARE CODESIGN OF EMBEDDED SYSTEMS Hardware/Software Codesign of Embedded Systems Voicu Groza SITE Hall, Room.
Algorithmic Problem Solving CMSC 201 Adapted from slides by Marie desJardins (Spring 2015 Prof Chang version)
Dynamic Choreographies Safe Runtime Updates of Distributed Applications Ivan Lanese Computer Science Department University of Bologna/INRIA Italy Joint.
Designing with Procedures 1. Designing a Program with Procedures If the code for your program is going to be less than one page, normally don’t bother;
Modelling III: Asynchronous Shared Memory Model Chapter 9 by Nancy A. Lynch presented by Mark E. Miyashita.
Improving the Quality of Existing Code Svetlin Nakov Telerik Corporation
Summer Computing Workshop. Introduction  Boolean Expressions – In programming, a Boolean expression is an expression that is either true or false. In.
1 Extend is a simulation tool to create models quickly, with all the blocks you need and without even having to type an equation. You can use a series.
1 Workshop Topics - Outline Workshop 1 - Introduction Workshop 2 - module instantiation Workshop 3 - Lexical conventions Workshop 4 - Value Logic System.
The Socket Interface Chapter 21. Application Program Interface (API) Interface used between application programs and TCP/IP protocols Interface used between.
Boundary Assertion in Behavior-Based Robotics Stephen Cohorn - Dept. of Math, Physics & Engineering, Tarleton State University Mentor: Dr. Mircea Agapie.
1 M. Tudruj, J. Borkowski, D. Kopanski Inter-Application Control Through Global States Monitoring On a Grid Polish-Japanese Institute of Information Technology,
Chapter 10 Software Engineering. Understand the software life cycle. Describe the development process models. Understand the concept of modularity in.
Introduction to Flash Animation CS 318. Topics Introduction to Flash and animation The Flash development environment Creating Flash animations  Layers.
NA62 Trigger Algorithm Trigger and DAQ meeting, 8th September 2011 Cristiano Santoni Mauro Piccini (INFN – Sezione di Perugia) NA62 collaboration meeting,
Fall 2004EE 3563 Digital Systems Design EE 3563 VHSIC Hardware Description Language  Required Reading: –These Slides –VHDL Tutorial  Very High Speed.
McGraw-Hill/Irwin © 2006 The McGraw-Hill Companies, Inc., All Rights Reserved. 1.
Abstract A Structured Approach for Modular Design: A Plug and Play Middleware for Sensory Modules, Actuation Platforms, Task Descriptions and Implementations.
4. Javascript M. Udin Harun Al Rasyid, S.Kom, Ph.D Lab Jaringan Komputer (C-307) Desain.
CSCI1600: Embedded and Real Time Software Lecture 28: Verification I Steven Reiss, Fall 2015.
Digital Control CSE 421.
Stay Kinected: A Home Monitoring System Combining Safety and Comfort Abstract The purpose of this project is to use the Microsoft Kinect sensor to implement.
Dr. Abdullah Almutairi Spring PHP is a server scripting language, and a powerful tool for making dynamic and interactive Web pages. PHP is a widely-used,
Active-HDL Server Farm Course 11. All materials updated on: September 30, 2004 Outline 1.Introduction 2.Advantages 3.Requirements 4.Installation 5.Architecture.
Wednesday NI Vision Sessions
Connectome Research Timothy Busbice, Updated: 03/10/2014 History For the past 20+ years, I have tried to create a connectome using individual programs.
© 2006 Carnegie Mellon Robotics Academy Designed for use with the LEGO MINDSTORMS ® Education NXT Software and Base Set #9797 Sentry System Two-Way Communication.
Introduction to Simulation What is a simulation? A system that represents or emulates the behavior of another system over time; a computer simulation is.
Digital Control CSE 421.
EE 200 Design Tools Laboratory 14
2. Specification and Modeling
Introduction to robotics
UNIT-4 BLACKBOX AND WHITEBOX TESTING
Object Oriented Design Model
Introduction to C++ Programming
JavaScript CS 4640 Programming Languages for Web Applications
Software Engineering and Architecture
UNIT-4 BLACKBOX AND WHITEBOX TESTING
JavaScript CS 4640 Programming Languages for Web Applications
Model-based Adaptation for Self-Healing Systems David Garlan, Bradley Schmert ELSEVIER Sciences of Computer Programming 57 (2005) 이경렬
Presentation transcript:

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

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

Not enough configurability 3 of 25 GrandCare BeClose QuietCare

Too much configurability 4 of 25 X10 (Also dangerous) SmartHome

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

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

Microsoft VPL 7 of 25

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

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

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

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

MNFL SystemProsCons Microsoft VPLFlow language style is intuitive for streaming applications If-statements do not handle asynchronous data Lego MindstormEasy to learn for people of age 10+ Variables too restrictive ScratchGraphical cues indicate purpose/usage of blocks Temporal programming does not handle new functionality well RIBS and RIMSPrecise behavioral description Challenging to learn 12 of 25

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

MNFL Modifiers of Data Types 14 of 25 Snapshot Stream Snippet

MNFL Core blocks 15 of 25

Video demo 16 of 25 YouTube version of video:

In bathroom for over 1 hour 17 of 25

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

Take 1 pill in the morning 19 of 25

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 25 Kahn, G. The Semantics of a Simple Language for Parallel Programming. Information Processing North-Holland Publishing Company, 1974.

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 , September, 1987.

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

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

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

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 usability 2.Develop mechanism for users to build and integrate new blocks 3.Move computations to cloud 25 of 25