rob diaz-marino, interactions lab [email protected]

48
PROXIMITY TOOLKIT Rob Diaz-Marino, Interactions Lab [email protected]

Post on 19-Dec-2015

215 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Rob Diaz-Marino, Interactions Lab rob.diazmarino@gmail.com

PROXIMITY TOOLKIT

Rob Diaz-Marino, Interactions Lab

[email protected]

Page 2: Rob Diaz-Marino, Interactions Lab rob.diazmarino@gmail.com

OVERVIEW Premise of Proximity Toolkit The Home Space

Intro to Vicon System Intro to Proximity Server

Proximity Data ModelPresence PropertiesRelation Properties

Using the ToolkitControls

Help & Resources Demo

Page 3: Rob Diaz-Marino, Interactions Lab rob.diazmarino@gmail.com

PREMISE OF PROXIMITY

TOOLKIT

Page 4: Rob Diaz-Marino, Interactions Lab rob.diazmarino@gmail.com

HARDWARE GENERALITY Any potential proximity input hardware

ProximityToolkit

Vicon

Motion Sensor

...

Your Application

Page 5: Rob Diaz-Marino, Interactions Lab rob.diazmarino@gmail.com

UNIFIED DATA MODEL

The Space

Things that Change

(Subjects)

Fixed Features(Volumes)

Relations

Page 6: Rob Diaz-Marino, Interactions Lab rob.diazmarino@gmail.com

Computer A - Input

ACCESSIBILITY Potentially distributed applications

Computer B - Display

Mobile Device - Display

Page 7: Rob Diaz-Marino, Interactions Lab rob.diazmarino@gmail.com

USING THEHOME SPACE

Page 8: Rob Diaz-Marino, Interactions Lab rob.diazmarino@gmail.com

GENERAL MACHINE USE SmartBoard

Switch off after use 2nd Monitor

Input: DVI-D 2 Computer

Always onLeave logged in Ignore updates

Power Button

Page 9: Rob Diaz-Marino, Interactions Lab rob.diazmarino@gmail.com

INTRODUCTION TO VICONS

...Camera 1 Camera 2 Camera 8

UltranetComputer

ViconNexus Proximity

Server

Your Program

Page 10: Rob Diaz-Marino, Interactions Lab rob.diazmarino@gmail.com

VICON NEXUS APPLICATION

Page 11: Rob Diaz-Marino, Interactions Lab rob.diazmarino@gmail.com

SUBJECTSPencil WhiteHat BlackHat

Page 12: Rob Diaz-Marino, Interactions Lab rob.diazmarino@gmail.com

LOADING SUBJECTS Subjects Tab Load Subject button Check/Uncheck DO NOT TOUCH ANY OTHER

SETTINGS!

Page 13: Rob Diaz-Marino, Interactions Lab rob.diazmarino@gmail.com

INTRO TO PROXIMITY SERVER

Page 14: Rob Diaz-Marino, Interactions Lab rob.diazmarino@gmail.com

TRACKED SUBJECTS

Page 15: Rob Diaz-Marino, Interactions Lab rob.diazmarino@gmail.com

DISPLAYS

Page 16: Rob Diaz-Marino, Interactions Lab rob.diazmarino@gmail.com

VOLUMES

Page 17: Rob Diaz-Marino, Interactions Lab rob.diazmarino@gmail.com

EXPLORING THE SPACE

Page 18: Rob Diaz-Marino, Interactions Lab rob.diazmarino@gmail.com

VISUALIZING RELATIONS

Page 19: Rob Diaz-Marino, Interactions Lab rob.diazmarino@gmail.com

HOMESPACE SUMMARY Starup Procedure

Turn on Machine + Display(s) Turn on Ultranet (switch on

back) Run Vicon Nexus Load Subjects Run ProximityServer Connect ProximityServer to

Nexus

Shutdown Procedure Turn off Ultranet Turn off Display(s)

Page 20: Rob Diaz-Marino, Interactions Lab rob.diazmarino@gmail.com

PROXEMIC DATA

Page 21: Rob Diaz-Marino, Interactions Lab rob.diazmarino@gmail.com

PROXEMIC DATA Identity Base Decorator Data Model

Different Inputs = Different Data Optional Groups of Data

LocationMotionOrientationDirectionRotation

Certainty

Page 22: Rob Diaz-Marino, Interactions Lab rob.diazmarino@gmail.com

LOCATION

(300, 0, 300)

(300, 200, -300)

Page 23: Rob Diaz-Marino, Interactions Lab rob.diazmarino@gmail.com

MOTION

(300, 200, -500)(300, 200, 300)(300, 200, 0)

Velocity

(0, 0, -300)

(0, 0, -500)

(0, 0, -200)

Acceleration

Page 24: Rob Diaz-Marino, Interactions Lab rob.diazmarino@gmail.com

ORIENTATION

Front

Ground(XZ Axis)

Incline

30º

Up

Page 25: Rob Diaz-Marino, Interactions Lab rob.diazmarino@gmail.com

ORIENTATION

Front

Ground(XZ Axis)

AzimuthUp

180º

Page 26: Rob Diaz-Marino, Interactions Lab rob.diazmarino@gmail.com

ORIENTATION

Front

Ground(XZ Axis)

RollUp

Perp Up

-30º

Page 27: Rob Diaz-Marino, Interactions Lab rob.diazmarino@gmail.com

DIRECTION Simplification of Orientation

InclineAzimuthNO Roll

Anything Orientable is Directable Used for Pointers

Page 28: Rob Diaz-Marino, Interactions Lab rob.diazmarino@gmail.com

ROTATION

Front

Up

Angle

Axis

Page 29: Rob Diaz-Marino, Interactions Lab rob.diazmarino@gmail.com

PROXEMIC RELATION DATA Client-Side Calculation on Request Relation Types

LocationMotionOrientationDirectionRotationPointingCollision

Page 30: Rob Diaz-Marino, Interactions Lab rob.diazmarino@gmail.com

LOCATION RELATION

A

B

Distance (X/Y/Z)Horizontal DistanceVertical DistanceIncline A to BIncline B to AA Moving Toward BA Moving From BEtc.

Page 31: Rob Diaz-Marino, Interactions Lab rob.diazmarino@gmail.com

MOTION RELATION

A

B

Is A MovingIs B MovingX/Y/Z Velocity AgreesX/Y/Z Acceleration AgreesVelocity DifferenceAcceleration Difference

Page 32: Rob Diaz-Marino, Interactions Lab rob.diazmarino@gmail.com

ORIENTATION RELATION

A

B

Incline AgreesIncline DifferenceAzimuth AgreesAzimuth DifferenceRoll AgreesRoll Difference

Page 33: Rob Diaz-Marino, Interactions Lab rob.diazmarino@gmail.com

DIRECTION RELATION

A

B

A Towards/From BB Towards/From AA Tangental to BB Tangental to AParralelHorizontally Purpendicular

Page 34: Rob Diaz-Marino, Interactions Lab rob.diazmarino@gmail.com

ROTATION RELATION

A

B

*Open to Suggestions

Page 35: Rob Diaz-Marino, Interactions Lab rob.diazmarino@gmail.com

POINTING RELATION

A

B

Points AtPoints TowardDistanceIs TouchingIntersection LocationIntersection Direction*Screen Coordinates

Page 36: Rob Diaz-Marino, Interactions Lab rob.diazmarino@gmail.com

COLLISION RELATION

A

B

CollisionContainmentDistanceIntersectionNearest Point

Page 37: Rob Diaz-Marino, Interactions Lab rob.diazmarino@gmail.com

USING THE TOOLKIT

Page 38: Rob Diaz-Marino, Interactions Lab rob.diazmarino@gmail.com

ADDING REFERENCES Proximity Toolkit Installation

C:/Program Files/ProximityToolkit Windows Forms

ProximityToolkit.dllProximityToolkit.WinForms.dll

WPFProximityToolkit.dllProximityToolkit.WPF.dllSystem.Drawing

Page 39: Rob Diaz-Marino, Interactions Lab rob.diazmarino@gmail.com

ADDING TOOLBAR ITEMS Add a Tab

Right click on ToolboxChoose “Add Tab”Give Tab a name like “ProximityToolkit”

Add ItemsRight click on Toolbox in new tabChoose “Choose Items...”Browse for .NET components & select librariesEnsure the following are checked

PresenceManager PresenceControl RelationControl

Page 40: Rob Diaz-Marino, Interactions Lab rob.diazmarino@gmail.com

WINFORMS PRESENCE MANAGER

Properties:- IP- Port- AutoDismissEmbodyDialog- MaintainEmbodiment

Events:- OnConnectionDropped(Asynch)- OnStarted(Asynch)- OnStopped(Asynch)- OnReadyChanged(Asynch)- OnUpdating(Asynch)- OnDataUpdated(Asynch)- OnUpdated(Asynch)

Page 41: Rob Diaz-Marino, Interactions Lab rob.diazmarino@gmail.com

WINFORMS PRESENCE CONTROLS

Set PresenceName (match ProximityServer) Set PresenceType

(Presence/Display/Volume/Device) Set Monitor

None, Location, Direction, Orientation, Rotation, Motion, All

Set IsOptional / CustomImage

Properties:- PresenceName- PresenceType- Monitor- IsOptional- CustomImage

Events:- OnLocationUpdated- OnDirectionUpdated- OnOrientationUpdated- OnRotationUpdated- OnMotionUpdated- OnUpdated

Page 42: Rob Diaz-Marino, Interactions Lab rob.diazmarino@gmail.com

WINFORMS RELATION CONTROLS

Properties:- A- B- Monitor

Events:- OnLocationUpdated- OnDirectionUpdated- OnOrientationUpdated- OnRotationUpdated- OnMotionUpdated- OnCollisionUpdated- OnPointingUpdated- OnUpdated

Set A to a Presence Control Set B to a Presence Control Set Monitor

None, Location, Direction, Orientation, Rotation, Motion, Collision, Pointing, All

Page 43: Rob Diaz-Marino, Interactions Lab rob.diazmarino@gmail.com

EMBODIMENT DIALOG Appears on Program Startup Availability Verifiction

ConnectionPresences

Page 44: Rob Diaz-Marino, Interactions Lab rob.diazmarino@gmail.com

WPF DIFFERENCES PresenceManager not a container

Can organize with Stack Panel, set to Hidden

PresenceControlMonitors are bool properties

MonitorLocation, MonitorDirection, etc.

RelationControlMonitors are bool properties

MonitorPointing, MonitorCollision, etc.Must specify NameA and NameB

Page 45: Rob Diaz-Marino, Interactions Lab rob.diazmarino@gmail.com

GUI-INDEPENDENT SUPPORT ProximityClientConnection PresenceBase for Presences

Space.GetPresence(“name”), .GetDisplay(“name”), .GetVolume(“name”), .GetDevice(“name”)

DataUpdating/DataUpdated eventsGetRelationInterface for types ILocatable,

IMovable, IOrientable, IDirectable, etc. RelationPair for Relations

Same Events as RelationControl, all Asynch

Page 46: Rob Diaz-Marino, Interactions Lab rob.diazmarino@gmail.com

HELP & RESOURCES

Page 47: Rob Diaz-Marino, Interactions Lab rob.diazmarino@gmail.com

HELP AND RESOURCES Cookbook Page

http://grouplab.cpsc.ucalgary.ca/cookbookReference

E-Mail [email protected]

Page 48: Rob Diaz-Marino, Interactions Lab rob.diazmarino@gmail.com

THE END(DEMO TIME?)