21 November 2010

First tests with Kinect and OpenKinect

I finally decided to get a Kinect in order to check what can be done with this new "toy". Since a great job was already done by open source community at OpenKinect.org, I just had to install last version of Win7 driver, in order to check a few things related to hardware part. Here are first results after half an hour playing with Kinect.

RGB camera detects IR lights
Microsoft Kinect Teardown states that RGB camera detects the human visual spectrum. I tested RGB cam with a TV command and an IR projector.
IR from TV command
IR from IR projector

It seems RGB camera can detect a broader spectrum than human visual spectrum.

Depth camera and Plexiglass
I also checked depth camera works when a piece of plexiglass stands between camera and target object... And everything works fine.

Plexiglass between depth camera & object

Conclusion
2 humble tests/results but I already imagine what we could do with this. Kinect is going to be a very fun toy !

14 November 2010

Manipulations vs Gestuelles : Quel avenir pour la manipulation directe ?


Certaines interrogations reviennent fréquemment au sujet des interfaces multitouch. Si le multitouch permet de manipuler directement les objets affichés à l’écran, ces manipulations ne sont elles pas finalement assez limitées ? Au-delà du tryptique translation/rotation/mise à l’échelle, quel avenir pour la manipulation directe ? Le futur des interfaces tactiles ne réside finalement il pas dans l’utilisation de gestuelles plus ou moins abstraites que l’utilisateur devra apprendre et s’approprier comme l’utilisateur d’interfaces CLI (lignes de commandes) doit apprendre et s’approprier les commandes système, limitant de fait leur utilisation à une population d’« experts » ?

Manipulations et gestuelles selon OCGM
Commençons par définir plus en détail ce que nous entendons par manipulation et gestuelle.
Pour ce post, je retiendrai la définition donnée par R.George & J.Blake dans leurs travaux sur le modèle OCGM (Object, Container, Gesture, Manipulation) :
  • une Manipulation est une action directe et continue, offrant un feedback immédiat dès lors que la manipulation a commencé.
  • une Gestuelle est une action indirecte, discrète et symbolique.
Les manipulations dans OCGM peuvent être vues comme une métaphore des manipulations que nous effectuons dans notre vie de tous les jours (déplacer un objet, tourner la poignée d’une porte, …)  alors que les gestuelles sont une métaphore des gestes de communication (communication non verbale) que nous effectuons pour échanger avec nos semblables (faire bonjour de la main, lever le pouce pour dire « super ! », …). Avec les manipulations, le mouvement en soi n’est pas le plus important puisque des chemins (manipulations) différents permettent d’arriver au même résultat. Au contraire, le mouvement effectué est une caractéristique importante de la gestuelle, puisqu’il permet de la détecter et de déclencher l’action associée.

Quelques facteurs caractéristiques des manipulations
Le facteur physique
Si nous considérons donc les manipulations comme une métaphore de la manipulation d’objets physiques, nous pouvons d’ores et déjà dire que le concept de manipulation sera fortement dépendant de contraintes physiques telles que le nombre des dimensions de l’espace d’interaction ou le nombre des degrés de liberté de l’effecteur et des objets manipulés. Ainsi, un système comme Kinect, qui détecte les mouvements du corps humain dans un espace 3D, offre de facto un ensemble de manipulations plus étendu qu’une surface multitouch qui implémente une interface 2D  et s’appuie sur la détection des points de contacts entre les mains de l’utilisateur et la surface interactive.

Le facteur culturel
Les manipulations sont assez peu sensibles au facteur culturel en comparaison des gestuelles.
En effet, la signification d’une gestuelle dans un pays peut être totalement différente de sa signification dans un autre pays ou ne pas avoir de signification du tout. De leur côté, si les techniques de manipulation peuvent également varier en fonction de facteurs tels que l’environnement ou les ressources disponibles, le facteur physique reste en général prépondérant dans la définition des manipulations.

Le facteur d’expertise
Les notions d’apprentissage et d’expertise sont applicables aux manipulations. Il n’y a pas une seule et unique façon d’effectuer une manipulation mais toute une gamme s’étendant du mouvement hésitant du débutant au geste parfait de l’expert. Au fur et à mesure que le mouvement est répété, la main devient plus sure et le geste s’affine jusqu’à devenir expert.

Quel avenir pour la manipulation directe en surface computing ?
Les paramètres manquants
Les dispositifs multitouch actuels (logiciel & matériel) sont loin de tirer partie de l’ensemble des facteurs physiques entrant en jeu lors d’une manipulation. Par exemple, très peu de dispositifs utilisent la notion de pression des points de contact. Il s’agit pourtant d’un facteur essentiel qui lorsqu’il est pris en compte, ouvre de nouvelles possibilités en terme de manipulation.



Il est à noter que plus augmenteront le nombre de paramètres physiques pris en charge et la résolution de détection de ces paramètres, plus s’étendra potentiellement l’échelle du facteur d’expertise. Si aujourd’hui être expert dans l’utilisation d’un ordinateur signifie avoir une expertise intellectuelle, on peut tout à fait imaginer que dans le futur cela signifierait également avoir une expertise manuelle.

Les manipulations « symboliques »
Nous pouvons également envisager d’autres types de manipulations, dépendant par exemple du nombre de points de contacts utilisés. C’est le cas du modèle 10/GUI Con10uum (un exemple d'implémentation par M.Dislaire peut être trouvé ici) .


Con10uum and Con10uum side by side from Improveeze on Vimeo.

Observé sous l’angle des NUI, ce type de solution soulève cependant plusieurs questions.

Notre expérience nous mène à associer en priorité la manipulation d’objets à ce que Cadoz appelle la fonction ergotique de la main (sa capacité de transformation des objets de l’environnement). Notre expérience nous a également appris que cette fonction ergotique est fortement liée à des lois physiques faisant intervenir des forces (la gravité, les forces de contact, les forces de frottement, …). Des lois dont nous avons appris à intégrer les effets depuis le plus jeune âge.

Mais lorsqu’on observe un système tel que 10/GUI Con10uum, la première constatation est que ces lois physiques ne paraissent plus applicables et semblent remplacées par des lois symboliques : une manipulation réalisée avec 2 doigts entraine un résultat différent de la « même » manipulation réalisée avec 3 ou avec 4 doigts. La fonction sémiotique de la main (que notre expérience associe habituellement aux gestuelles de communication) devient prépondérante dans la définition de ces manipulations. En fait, au sein d’un tel système, les manipulations paraissent avoir un statut hybride, à mi-chemin entre les manipulations et les gestuelles d’OCGM. D’où le terme de manipulation symbolique que j’ai employé.

Le succès d’un tel système est principalement lié à la capacité que nous aurons à définir des manipulations symboliques faisant suffisamment sens pour que l’apprentissage et la mémorisation en soit facilités.

Le grand oublié…
Prenons un peu de temps pour nous tourner vers le passé et constatons qu’avec ce que nous avons défini comme étant des manipulations, nos vaillants aïeux ont tout de même construit ceci

Notre Dame de Paris
ou encore celà

Pyramide de Kheops
Enfin, pour être plus exact, un ingrédient supplémentaire fut indispensable pour obtenir ces résultats : l’outil.

Si nous considérons plus largement le concept de manipulation tel qu’il apparait dans le monde animal, nous pouvons distinguer 3 stades :
  1. Manipulation directe de l’objet cible de l’interaction (observable chez quasiment tous les animaux)
  2. Manipulation d’un objet intermédiaire pour interagir avec l’objet cible (observable chez certains animaux tels que les primates, …)
  3. Fabrication et manipulation d’outils spécialisés pour interagir avec l’objet cible (activité hautement développée chez l’être humain).
La fabrication et la manipulation d’outils est en fait une des principales caractéristiques de l’activité humaine (l’« Homo Faber » de H.Bergson, l’« animal fabricateur d’outils » de B.Franklin).
Pour vous en convaincre si nécessaire, pensez au nombre de fois dans une journée où la réalisation d’une action passe par la manipulation d’un outil (manger, écrire, …).

Outils et Natural User Interfaces
Considérant ce qui précède, il apparait que la notion d’outil devrait avoir un rôle essentiel à jouer au sein des NUI. En effet, si nous pensons la réification des objets et la manipulation directe comme de première importance pour les NUI, il est difficile d’imaginer priver l’utilisateur de ce qui forme une des caractéristiques principale de l’interaction entre l’homme et les objets de son environnement. 

Il ne s’agit pas ici de penser l’outil comme un concept générique (« mon éditeur de texte n’est pas un outil ») mais sous une forme réifiée, comme un objet spécialisé utilisable dans certains contextes, comme un objet « intermédiaire » pour réaliser une action et obtenir un résultat précis.

Pour ceux que le sujet intéresse, les travaux de M.Beaudouin-Lafon sur l’interaction instrumentale et ceux de B.Buxton sur les See-Through Tools sont une grande source d’inspiration.

Outils et Approche Bottom-Up
Là encore le concept d’outils a un rôle essentiel à jouer dans ce que nous avons appelé architecture Bottom-Up et les outils devraient trouver une place privilégiée pour l’implémentation du concept d’Opérateurs.

En conclusion…
Le concept de manipulation parait avoir encore de beaux jours devant lui. Au-delà de la prise en compte de paramètres physiques supplémentaires comme la pression (qui dépend en partie des solutions matérielles disponibles), la mise en place d’outils réifiés pourrait être une voie prometteuse, notamment dans le cadre d’une approche orientée NUI.

Manipulations vs Gestures : Is there any future for manipulations ?


I frequently hear questions about multitouch systems and direct manipulation : translation / rotation / scaling of objects is cool but what else ? Should we consider abstract gestures as the future of multitouch ? Does it means we’ll have to learn these gestures as CLI users must learn abstract commands ?

Manipulations & Gestures in OCGM model
For this post, I will retain definition from OCGM model by R.George & J.Blake:
  • Manipulations are direct, continuous actions with immediate feedback while the Manipulation is occurring.
  • Gestures represent an indirect, discrete, symbolic action.
Manipulations can be seen as  a metaphor for manipulations of physical objects and gestures as a metaphor for non-verbal communication. With Gestures, the important part is the actual movement of the Gesture. With Manipulations, the movement itself is not important (unlike Gestures) since you could take many paths to get to the same end result.

Some typical factors implied in manipulations
The physical factor
If we consider manipulation as a metaphor for manipulation of physical objects, we can already say that the concept of manipulation will be strongly dependent on physical constraints such as number of spatial dimensions or number of degrees of freedom of the effector and objects handled. Thus, a system like KINECT, which detects human movement in 3D space, provides a larger set of manipulations than multitouch surfaces which implement 2D interfaces and use detection of touch points between hands and interactive surface.

The cultural factor
Manipulations are quite insensitive to cultural factor compared to gestures. Indeed, the meaning of a gesture in one country may be totally different from its meaning in another country or may have no meaning at all. For their part, if manipulation techniques may also vary depending on factors such as environment or available resources, the physical factor is usually dominant in the definition of manipulation.

The skill factor
The concepts of learning and expertise are applicable to manipulations. There is many ways to perform an operation, a whole range of motion, from the beginner’s hesitant movement to the expert’s perfect manipulation. Gradually, as the movement is repeated the manipulation is refined.

Is there any future for direct manipulation in surface computing ?
Missing parameters
Current multitouch devices (software & hardware) are far to take advantage of all physical parameters that come into play during a manipulation. For example, very few devices use the concept of pressure, even if it's an important factor which opens new possibilities.



Note that scale associated to manual skill factor could potentially increase as the number of physical parameters and the resolution of these parameters increase. May be in the future, being an expert in computering will mean you have intellectual and manual skills.

Symbolic manipulations
We can also consider some other types of manipulations, which depend on the number of touch points. This is the case of 10/GUI Con10uum model (an implementation by M.Dislaire can be found here).


Con10uum and Con10uum side by side from Improveeze on Vimeo.

However, this type of solution raises several questions for NUI approach.

From our experience we associate manipulation of objects to the ergotic function of hand (its ability to transform objects). Our experience has also taught us that ergotic function is strongly linked to physical laws involving forces (gravity, contact forces, frictional forces, ...) and we’ve learned to incorporate effects of these forces since our early years.

But when we observe a system like 10/GUI Con10uum, the first finding is that physical laws don’t seem to apply and seem to be replaced by symbolic laws : a manipulation done with 2 fingers leads to a different result from the "same" manipulation performed with 3 or 4 fingers. The semiotic function of hand (usually associated with gestural communication) becomes dominant in the definition of these manipulations. In fact, within such a system, the manipulations appear to have a hybrid status, halfway between the manipulations and gestures of OCGM model. This is why I used the term symbolic manipulation.

Success of this kind of system will depend on definition of meaningful symbolic manipulations, easy to learn and memorize.

The forgotten Tool
Let’s take a while and let’s see what our ancestors have built with the help of manipulations.
They’ve built stuffs like this
Notre Dame de Paris
or  like this
Kheops's pyramid
To be exact, an additional ingredient was needed to obtain these results: Tools.

If we consider the concept of manipulation as it appears in the nature, we can distinguish three stages :
  • Direct manipulation of target object (skill shared by almost all animals)
  • Manipulation of a mediator object to interact with target object (skill shared by some animals like monkeys, …)
  • Manufacture and manipulation of specialized tools to interact with target object (activity highly developed by humans).
The manufacture and manipulation of tools is in fact a key feature of human activity ("Homo Faber" by H. Bergson, "Toolmaking Animal" by B. Franklin). Just think about how many times a day you use a tool to realize an action (writing, eating, ...).

Tools and Natural User Interfaces
It appears that concept of tool should have a role to play in NUI. Indeed, if we think reification of objects and direct manipulation of prime importance for NUI, it is hard to imagine depriving the user of tools, which forms a key feature of interactions between human and objects in daily life. We musn’t think to tool as a generic concept ("my text editor is not a tool") but in a reified form. As a specialized object used in specific contexts. As a mediator object used to perform an action and obtain an accurate result. For those interested in the subject, M.Beaudouin-Lafon’s works on instrumental interaction and B. Buxton’s works on See-Through Tools are a great source of inspiration.

Tools and Bottom-Up approach
The concept of tools has also an essential role to play in what we called Bottom-Up Architecture and tools should find a special place for the implementation of the concept of Operators.

To conclude
The concept of manipulation still seems to have a bright future. Beyond the inclusion of additional physical parameters such as pressure (which depends on the hardware solutions available), the development of reified tools could be a promising way, especially in the context of a NUI-oriented approach.