Generating Remote Control Interfaces for Complex Appliances
Download
Report
Transcript Generating Remote Control Interfaces for Complex Appliances
Generating
Remote Control Interfaces
for Complex Appliances
Jeffrey Nichols
Carnegie Mellon University
August 22, 2002
Jeffrey Nichols • Generating Remote Controls for Complex Appliances • August 22, 2002 • Slide #0
The Problem
Everyday appliances are becoming more
complicated and thus more difficult to use
Cheap to add computation and features
Expensive to design and build high-quality interfaces
Jeffrey Nichols • Generating Remote Controls for Complex Appliances • August 22, 2002 • Slide #1
The Solution
Observation:
People are increasingly carrying handheld devices,
like mobile phones and PDAs
These devices will soon be able to communicate with
devices around them (Bluetooth, 802.11b)
Better built-in UI hardware (color touch screens, etc.)
Solution:
Use handhelds as remote controls!
Jeffrey Nichols • Generating Remote Controls for Complex Appliances • August 22, 2002 • Slide #2
Personal Universal Controller
An intermediary remote control interface
Specifications
Control
Feedback
Benefits
Graphical and speech interfaces
Adaptable interfaces (to PUC device and to user)
Jeffrey Nichols • Generating Remote Controls for Complex Appliances • August 22, 2002 • Slide #3
Overview
Architecture
Specification Language
Interface Generators
Algorithms using dependency information
Demonstration
Jeffrey Nichols • Generating Remote Controls for Complex Appliances • August 22, 2002 • Slide #4
Architecture
Jeffrey Nichols • Generating Remote Controls for Complex Appliances • August 22, 2002 • Slide #5
Appliance Adaptors
Jeffrey Nichols • Generating Remote Controls for Complex Appliances • August 22, 2002 • Slide #6
Communication Protocol
Jeffrey Nichols • Generating Remote Controls for Complex Appliances • August 22, 2002 • Slide #7
Interface Generators
Jeffrey Nichols • Generating Remote Controls for Complex Appliances • August 22, 2002 • Slide #8
Specification Language
XML-based!!!
Jeffrey Nichols • Generating Remote Controls for Complex Appliances • August 22, 2002 • Slide #9
Language Design
Approach
Create reference interfaces
AIWA Shelf Stereo
AT&T Telephone/Answering Machine
Test interfaces with subjects
Users twice as fast and made half
errors as compared with
manufacturer’s interfaces
Analyze interfaces for functional
information
Jeffrey Nichols • Generating Remote Controls for Complex Appliances • August 22, 2002 • Slide #10
Language Elements
State Variables and Commands
Represent functions of stereo
Variables sufficient for most functions but not all
“seek” button on a Radio
Type Information
State variables have types
Boolean, Enumeration, Integer, String, etc.
Interface generators can use type to infer control
Jeffrey Nichols • Generating Remote Controls for Complex Appliances • August 22, 2002 • Slide #11
Language Elements, cont.
Label Information
Good labels are an important of any interface
One label does not fit all
The optimal label size changes with screen size
Speech interfaces made need pronunciation and textto-speech information
Solution: Label Dictionary
Collection of similar labels
As many as necessary
Different modality information
Jeffrey Nichols • Generating Remote Controls for Complex Appliances • August 22, 2002 • Slide #12
Language Elements, cont.
Group Tree
Organization is very
important to user
interfaces
Tree is a good
structure as most
interfaces can be
described as a tree
We use n-ary tree with
variables/commands at
leaves
Jeffrey Nichols • Generating Remote Controls for Complex Appliances • August 22, 2002 • Slide #13
Language Elements, cont.
Dependency Information
Formulas that specify when a variable or
command is active in terms of other state
variables
Equals, Greater Than, Less Than
Linked with logical operators (AND, OR)
For example,
<and>
<equals state=“PowerState”>true</equals>
<equals state=“RadioBand”>AM</equals>
</and>
Jeffrey Nichols • Generating Remote Controls for Complex Appliances • August 22, 2002 • Slide #14
Overview
Architecture
Specification Language
Interface Generators
Algorithms using dependency information
Demonstration
Jeffrey Nichols • Generating Remote Controls for Complex Appliances • August 22, 2002 • Slide #15
Graphical Interface Generator
Focuses on panel structure of
user interface
Small groups of controls have
simple layouts
Complexity comes from relative
layouts of groups
Structure can be inferred from dependency info
Groups are often defined by sets of controls that
are all active at the same time (mutual exclusion)
May overlap other controls that not active
Jeffrey Nichols • Generating Remote Controls for Complex Appliances • August 22, 2002 • Slide #16
Determining Panel Structure
1. Find mutual exclusion within group tree
Find group that contains
depended-upon state
Look for mutual exclusions
among group children
2. Assign branches of group
tree to sets of panels
Choose a panel based upon
type information and properties
of group tree.
Jeffrey Nichols • Generating Remote Controls for Complex Appliances • August 22, 2002 • Slide #17
Choosing Panel Types
Rules for Choosing Panels
If state has enumerated type and
there are mutually exclusive groups
of controls for each value, create a
tabbed panel.
If state has boolean type and all other
controls are active for only one value,
create two full-screen overlapping
panels.
Create overlapping panels for each
mutually exclusive group and ensure
there is a control elsewhere for
setting the state.
Jeffrey Nichols • Generating Remote Controls for Complex Appliances • August 22, 2002 • Slide #18
Making the Interface Concrete
Choose a control for each object
Use a decision tree with questions
such as:
Is this a command or state variable?
What is the type of the state
variable?
Is the state variable read-only?
Was a panel structure rule applied
from this variable?
Jeffrey Nichols • Generating Remote Controls for Complex Appliances • August 22, 2002 • Slide #19
Making Concrete, cont.
Rules for choosing row layouts
within panels
A labeled group with only two
unlabeled controls is given a twocolumn layout with group label
Controls that prefer a lot of
horizontal room are given a full
width layout
If a group contains just two labeled
controls are given a two-column
layout without group label
Jeffrey Nichols • Generating Remote Controls for Complex Appliances • August 22, 2002 • Slide #20
Making Concrete, cont.
Conceptual layout has been chosen
Panels, Controls, Rows
Allocate space
Examine panel contents and choose sizes
Instantiate and place controls
Jeffrey Nichols • Generating Remote Controls for Complex Appliances • August 22, 2002 • Slide #21
Overview
Architecture
Specification Language
Interface Generators
Algorithms using dependency information
Demonstration
Jeffrey Nichols • Generating Remote Controls for Complex Appliances • August 22, 2002 • Slide #22
Future Work
Improve quality of generated user interfaces
Back-tracking, etc.
Specification and generation of list interfaces
Necessary for many appliances
Adaptive interface generation
New interfaces modeled on past interfaces
General purpose appliance adaptor for HAVi
and UPnP protocols
Jeffrey Nichols • Generating Remote Controls for Complex Appliances • August 22, 2002 • Slide #23
Acknowledgements
PUC Project Members
Brad A. Myers
Michael Higgins
Joseph Hughes
Thomas K. Harris
Roni Rosenfeld
Stefanie Shriver
Peter Lucas
Mathilde Pignol
Kevin Litwack
Funding
National Science Foundation
Pittsburgh Digital Greenhouse
Microsoft
Equipment Grants
Mitsubishi (MERL)
VividLogic
Symbol Technologies
Hewlett-Packard
Lucent
Jeffrey Nichols • Generating Remote Controls for Complex Appliances • August 22, 2002 • Slide #24
Thanks!
http://www.cs.cmu.edu/~pebbles/puc/
http://www.cs.cmu.edu/~jeffreyn/
Generating Remote Control Interfaces for Complex Appliances
August 22, 2002
Jeffrey Nichols • Generating Remote Controls for Complex Appliances • August 22, 2002 • Slide #25
Jeffrey Nichols • Generating Remote Controls for Complex Appliances • August 22, 2002 • Slide #26
Framework for Adaptors
PUCProxy
Jeffrey Nichols • Generating Remote Controls for Complex Appliances • August 22, 2002 • Slide #27
Control of IEEE 1394 DV Camera
Sony Camcorder with AV/C protocol
Jeffrey Nichols • Generating Remote Controls for Complex Appliances • August 22, 2002 • Slide #28
Control of Audiophase Stereo
Custom Hardware and Software Adaptor
Continue to Future Work
Jeffrey Nichols • Generating Remote Controls for Complex Appliances • August 22, 2002 • Slide #29
Interface Generation Process
Three Phases
Determine panel structure from dependency info
Assign controls to variables/commands
Allocate space and lay out controls
Jeffrey Nichols • Generating Remote Controls for Complex Appliances • August 22, 2002 • Slide #30