scieee AI-readable full text Open interactive document viewer

Development of a Steering law experiment platform with haptic device Phantom Omni

Tatay de Pascual, Alejandro

Full text

Development of a Steering Law Experiment platform with haptic device Phantom Omni by Alejandro Tatay Pascual May 12th, 2010 supervised by : Professor Xiangshi Ren Kochi University of Technology, Japan Dr. M. Carmen Juan Lizandra Universidad Politécnica de Valencia, Spain Table of Contents Chapter 1 - Introduction....................................................................................................................... 1 1.1. Overview of the project............................................................................................................ 1 1.2. Structure of the work................................................................................................................ 2 1.3. Disposition of the document.....................................................................................................2 Chapter 2 - Literature review of Steering Law in HCI.........................................................................4 2.1. Background...............................................................................................................................4 2.2. Steering Law ............................................................................................................................5 2.3. Haptics and Steering Law.........................................................................................................7 Chapter 3 - OpenHaptics.................................................................................................................... 10 3.1. Introduction.............................................................................................................................10 3.2. QuickHaptics.......................................................................................................................... 10 3.3. HDAPI and HLAPI overview.................................................................................................12 3.4. Creating Haptic Environments................................................................................................13 3.4.1. Force rendering............................................................................................................... 14 3.4.2. Contact and Constraints.................................................................................................. 15 Chapter 4 - Steery project development............................................................................................. 17 4.1. The interface development......................................................................................................17 4.2. The SLE class......................................................................................................................... 18 4.3. OpenHaptics features..............................................................................................................18 4.3.1. Dynamic forces............................................................................................................... 19 4.3.2. Solid Walls...................................................................................................................... 20 4.3.3. Surface: orientation and stiffness................................................................................... 21 4.3.4. Surface textures...............................................................................................................21 4.3.5. Tunnel fluid..................................................................................................................... 21 4.4. Types of tunnel........................................................................................................................22 4.4.1. Basic tunnel ....................................................................................................................23 4.4.2. Circular tunnel ................................................................................................................23 4.4.3. Curve ..............................................................................................................................24 4.4.4. tunnel 3D.........................................................................................................................24 4.4.5. torus 3D...........................................................................................................................25 4.4.6. Helix 3D..........................................................................................................................26 4.4.6.1 Distance to helix solution.........................................................................................26 4.5. Audio feedback....................................................................................................................... 27 4.6. Lights and shadows ................................................................................................................28 4.7. Output data..............................................................................................................................28 Chapter 5 - Experiments, results and discussion................................................................................ 30 5.1. Verification of linear steering in 3D space..............................................................................30 5.2. Verification of curved steering in 3D space............................................................................30 5.3. Boxwalls experiment.............................................................................................................. 31 Chapter 6 - Conclusions and future work...........................................................................................32 Bibliography.......................................................................................................................................33 Appendix I. Steery generated documentation.................................................................................... 35 Appendix II. Steery User's guide........................................................................................................63 Appendix III. Boxwalls experiment report.........................................................................................82 Chapter 1 - Introduction 1.1. Overview of the project This project is related to the field of Human-Computer Interaction (HCI) which seeks, as the name says, the study of interaction between users and computer devices. HCI is involved with several fields of study such as computer science, behavioural science, design or usability, just to mention a few. This document describes the development of Steery, a software platform made to set up and perform trajectory-based experiments. This type of experiments can be used to enhance the design and development of new devices and graphical interfaces. Particularly, the work described was focused on the haptic device Phantom Omni, an articulated stylus with force-feedback from Sensable Technologies [1]. The system has a configurable set of parameters that the experiment designer introduces through the interface and then launch the experiment. The system has been developed in C/C++ language using OpenGL Utility Toolkit (GLUT) libraries to display the Graphical User Interface (GUI) and OpenHaptics API toolkit, which allows the control and development of the Phantom device features. Finally, an investigation has been done with a variety of experiments using the developed software to study trajectory-based tasks in different environments. These experiments were carried out by Hironori Ishiyama [2] and Onishi Yoshinobu [3] for their respective Bachelor's Thesis. These experiments aimed the verification of Steering Law formula in threedimensional tunnels such as a torus and a cylinder, respectively. Subsequently, another experiment nicknamed boxwalls was performed to study two-dimensional steering task in a three-dimensional environment. Therefore, the main goal of this project has been the development of an application that allows HCI researchers to design, set and launch trajectory-based experiments fast and easily, lightening the process by removing the programming stage. 1 1.2. Structure of the work The work has been conducted in 4 different stages: 1. System requirements analysis and design of the use cases. 2. Construction of the GUI layer using the GLUT/GLUI prototypes. 3. Integration of the OpenHaptics toolkit and device control. Development of the different types of experiments. 4. Usability tests and design of several experiments by different members of Ren Laboratory. Output data and participants' subjective evaluation was gathered to interpret and understand the utility and improvement of trajectory-based tasks in graphical interfaces. 1.3. Disposition of the document The first part is an introduction to this project: it presents briefly the project carried out, its structure, objectives and disposition of this document. The second part of this document is a Literature Review about the use and study of Steering Law in the field of HCI: initially, it introduces the reader to the field of HCI and literature involved. After describing some technical definitions, it focus on Steering Law related work, derived from Accot and Zhai investigation. Finally, several studies combining Haptics research and trajectory tasks are explained briefly. The third chapter presents in detail the OpenHaptics toolkit which was used to develop the project. In this part this haptic library and its approach to program a haptic device is described. The fourth chapter is a presentation of the implemented project. Starting from the GUI layer made with GLUT/GLUI prototypes, it continues relating the most important Steery haptic parameters and their development. Afterwards, each type of experiment, implementation issues and other relevant features are described. 2 The fifth chapter deals with the conducted experiments in three-dimensional environments, resuming the results and discussion according to the data obtained. Then, conclusions and future work are explained in the fifth chapter. Next, the references of this thesis are reported. Finally, a variety of appendices are attached to the document. At page 35 starts the Steery documentation generated automatically from the source code comments -appropriately formattedwith Doxygen, a documentation generator under GNU General Public License. Next, at page 63, the Steery User's Guide is enclosed. This guide is expected to be used by future researchers as a manual to utilize Steery application. At last but not least is enclosed the boxwalls report, which presents an experiment conducted with Steery in a three-dimensional scenario. 3 Chapter 2 - Literature review of Steering Law in HCI 2.1. Background In the field of computer technologies, devices and graphical user interfaces have obtained more relevancy year by year. Everyday we interact with objects, systems and machines which are a fundamental and daily element of our lives: personal computers, cellphones, multimedia players, cameras, e-book readers or video game consoles are some of them (Illustration 1). As a consequence, this interaction has become a priority when it comes the time to develop a system, when concepts such as usability, design, interactivity or visualization take over in detriment of other system functionalities. This type of research is often studied in HCI. Academic investigation in HCI combines the experimental methods and intellectual framework of cognitive psychology with powerful tools from computer science. HCI benefits from related fields such as education where computers are increasingly used in programs ranging from elementary school through professional skills development. The theory and measurement techniques of educational psychology are applicable to study the learning process in novice computer users. Business system design and management decision making are endeavours which are being increasingly shaped by the nature of the computer facilities. Library and information services are also dramatically influenced by the availability of computer-based systems. Therefore, investigation and design of improved and more usable methods of interaction 4 Illustration 1: computer systems used in daily life between human users and computer devices has become one of the main goals in the field of HCI. Theories, paradigms and taxonomies compete to ameliorate it: reducing learning times, faster performance on tasks, lower rate errors, higher subjective satisfaction, better human retention over time, etc. Particularly, trajectory-based interactions, such as navigating through nested-menus, selecting items in menus, tracing patterns or steering through straight “tunnels” is a common tasks while interacting with computer systems (Illustration 2). The current project has been focused on this field of investigation, which leads to the next point, Steering Law. 2.2. Steering Law Conversely, while HCI investigation takes place, it becomes difficult to find a thorough technique to evaluate and compare interfaces. The advancement of HCI lies in “hardening” the field with quantitative, engineering-like models. Extending movement theory to human perceptual-motor system, Paul Fitts [5] found a formal relationship that models the speed versus accuracy trade-off in aimed movements. It predicts that the time T need to cover a target of width W and height A is logarithmically related to the inverse of spatial relative error A W , which is called Index of Difficulty (ID). 5 Illustration 2: Traversing nested menus involves multiple segments of steering tasks T=ablog2A Wc Equation 3: Fitts' Law Thus, the Index of Difficulty of the target behaves according to the empirically obtained constants a, b, and c=[0,1]. Due to its accuracy and robustness, Fitts' Law has been a popular research topic, hence numerous studies rely on Fitts' Law to compare device performance results. This formula revealed a rigorous an intuitive trade-off in HCI: the faster we move, the less precise our movements are, or vice versa. Using integral calculus, Johnny Accot and Shumin Zhai extended Fitts' Law to develop a most general mathematical statement of it [6], also known as Steering Law. By this derivation the formula gets simplified under the circumstance of a straight tunnel as T=abA W Equation 4: Steering Law In this context, the steering law is a predictive model of human movement, concerning the time with which a user may steer a pointing device through a two-dimensional tunnel presented on a screen. Many researchers find it surprising that the steering law model predicts performance as well as it does, confirming the robustness of Fitts' law. Since this point, this new paradigm becomes a useful tool to develop, design, compare and analyse new GUIs and pointing devices, where navigation through menus may be represented as steering tasks (trajectory-based tasks). In addition, Accot and Zhai experimented with different types of tunnel, increasing the complexity of the tunnel. From those experiments, theoretical models are derived to quantify the difficulty of path steering tasks. Other authors, as Mackenzie et al. [7] and Kattinakere [8] adapted Fitts' Law for threedimensional tunnels, selecting two-dimensional targets, as represented in Equation 5. The target was a rectangle of width W and height H. They found that Fitts' Law can be adapted by replacing the W in Equation 3 by the smaller of two sides of the target. 6 T=ablog2  A W 2  A W 2 1 Equation 5: Kattinakere's derivation Accot and Zhai demonstrated [9] that this equation 5 provides a more precise prediction as it considers the effects of both width and height of the target. 2.3. Haptics and Steering Law In recent years there has been much discussion about the “look and feel” of user interfaces. The part of “look” has been constantly researching and improving with better GUI designs, more usable, with reduced user learning times and faster performance. However, the “feel” word brings us to a still unexploited field: haptics technology. This term comes from the Greek word ἁπτικός (haptikos), meaning “I fasten onto, I touch”. Haptic interaction with computers has primarily to do with input. While we have physical contact with transducers such as mice, their design does not afford us to feel the edges of things that we are pointing at. That is we can not feel the object that the mouse is touching. In contrast, there are haptic output devices, usually called force-feedback devices. These devices can provide some output by tactile either kinaesthetic feedback based on servo control systems. In practice, the quality and appropriateness of this “feel” is crucial to determine a device's effectiveness and acceptance in a particular context. These devices are commonly controlled by the hand, and there is a wide variety of types in the market: data gloves (Illustration 6) based on sensor technologies that recognize the pose of the hand; highprecision pen-shaped grasping devices (Illustration 8) with several degrees of freedom and end-effector force-feedback; or hand exoskeletons(Illustration 7) which adds resistive force to each finger, these are just some examples. 7 Illustration 6: 5DT Data Glove. Fifth Dimension Technologies© Illustration 8: Omega 6 haptic inferface. Force Dimension© Illustration 7: CyberForce. CyberGlove Systems© end-effector (the end of the kinematic chain of the device you hold in your hand) and its relationship to objects in a virtual environment. When zero force is being rendered, the motion of the device end-effector should feel relatively free and weightless, so the device generates a force to counteract against its own weight. As the user moves the device's endeffector around the virtual environment, OpenHaptics commands forces into the servo loop thread. This allows the user to effectively feel the shape of objects in a virtual environment. Nevertheless, this forces can vary to produce different effects, so the forces can make an object surface feel hard, soft, rough, slick, sticky, etc. Furthermore, the forces generated by the haptics rendering can be used to produce an ambient effect. For instance, inertia and viscosity are common ways to modify the otherwise free space motion of the user in the environment. Another common use of forces in a virtual environment is to provide guidance by constraining the user's motion while the user is selecting an object or performing a manipulation. 3.4.1. Force rendering The force vector is the unit of output for a haptic device. There are three main classes of forces that OpenHaptics can simulated: motion dependent, time dependent, and a combination of both. A motion dependent force means that is computed based on the motion of the haptic device. HLAPI includes functions to generate types of motion dependent force as: •Spring: it is the most common, versatile and simple to use force. A spring force can be computed by applying the Hooke's Law (  F=k x , where k is a stiffness constant and x is a displacement vector) •Damper: is a common metaphor in haptics rendering. It can be defined as a force that reduces vibration since it opposes motion. In general, the strength of a damper is proportional to end-effector velocity. The standard equation is  F=−b v , where b is the damping constant and v is the velocity end-effector. The force is always pointing in the opposite direction of motion. •Friction: a number for forms of friction can be simulated with the haptic device 14 ◦Coulombic friction: simply opposes the direction of motion with a constant magnitude friction force, according to the formula  F=−c ∣ ∣  v ∣ ∣ , where C is the friction constant and v is the velocity of the end-effector. It is implemented using a damping expression with a high damping constant and a small constant force clamp. Coulombic friction helps to create a smooth transition when changing directions, since friction will be proportional to velocity for slow movement. ◦Viscous friction: similar to Columbus friction, using a low damping constant and a high clamp value. ◦Static and dynamic friction: also referred as stick-slip friction, this friction model switches between no relative motion and resisted relative motion. The friction force is always opposing lateral motion along a surface, and the magnitude of the friction force is always proportional to the perpendicular (normal) force of contact •Inertia: force associated to a moving mass and a acceleration, not necessary related to the device movement. It is easily calculated using Newton's Law  F=m a . On the other hand, a time dependent force means that it is computed as a function of time. OpenHaptics can generate time dependent forces such as: •Constant: a force with a fixed magnitude and direction. For instance, it is commonly used for gravity compensation such as to make the end-effector feel weightless. •Periodic: it applies a pattern that repeats over time. Patterns include saw tooth, square or sinusoid. A period force is described by a time constant (period), an amplitude to determine the peak of the cycle, and a force direction. •Impulses: a force vector that is instantaneously applied. In practice, an impulse with a haptic device is best applied over a small duration of time in the servo loop. 3.4.2. Contact and Constraints Simulating contact with a virtual object amounts to computing forces that resist the device end-effector from penetrating the virtual object's surface. One approach to simulate this 15 interaction is through the concept of a proxy that follows the transform of the device endeffector in the virtual environment. The geometry for the proxy is typically a point, sphere or collection of points. If it is a point, it is sometimes referred to as the SCP, Surface Contact point. SCP attempts to follow the end-effector position but is constrained to be on the surface of the object. In free space the SCP is at the end-effector position as shown in Illustration 16. When touching an object the SCP can be calculated by moving the last SCP towards the end-effector position without violating the surface. The force is calculated by simulating a spring stretched from the end-effector position to the SCP. t1 shows penetration into the object. t2 shows further penetration. The spring is stretched longer and hence the user will feel greater resistance. In addition, the proxy should respect spatial coherence of contact. As a result of computing a constrained proxy transform, forces can be determined that will impede the motion of the haptic device end-effector from further penetrating the contacted surface. This technique of maintaining a constrained proxy can be applied to feeling all kinds of geometry, such as implicit surfaces, polygonal meshes, and voxel volumes. It can also be applied to feeling geometric constraints, such as points, lines or combinations of both. 16 Illustration 16 : proxy concept to simulate surface contacts Chapter 4 - Steery project development In this chapter, the steps to develop the system will be presented. First the graphic layer will be described and then the software architecture with its classes, haptic features and functionalities will be presented. To explain Steery development, we have to understand first the basic idea of a Steering Law experiment. In this kind of experiment, the designer sets up different parameters such as tunnel width, height, inclination and so on. Each of those parameters have been assigned with different values, generating a number of trials in a factorial design that the experiment subjects will have to perform. By factorial design we define the generation of all the possible combinations of the different levels (values) of each factor (width, height, etc.). Then, every subject will perform all the trials, and the designer will recollect the trials' data and analyse it. 4.1. The interface development OpenHaptics toolkit has been created for use with Microsoft Win32 API and GLUT. On one side, MS Win32 API has the advantage to provide shorter source code and simpler GUI prototypes. However, OpenGL is a standard specification defining a cross-language crossplatform API. Seeing that, OpenGL API was chosen in this project to develop the graphic interface layer (see Illustration 17). 17 Illustration 17: Steery GLUT main window OpenGL contains rendering commands but is designed to be independent of any window system or operating system. Unfortunately, it is impossible to write a complete graphics program without at least opening a window, using user input or other services from the operating system. Therefore, Steery uses GLUT and GLUI libraries to run the graphic user interface layer. GLUI is a C++ used interface library based on GLUT to augment its functionality. It provides controls such as buttons, checkboxes, radio buttons, spinners and so on in OpenGL applications. It is window-system independent, relying on GLUT to handle all system-dependent issues, such as window and mouse management. The system initially shows a main window where the user configures every experiment parameter. Every time that a GUI element is changed, the GLUT loop calls a control callback function to perform the appropriate operation. For a deeper explanation of the available parameters, listboxes, and other functionalities in the graphic layer, see the enclosed Appendix II. Steery User's guide. 4.2. The SLE class Every GUI element is linked with the Steering Law Experiment class. This class, defined and implemented in SLE.h and SLE.cpp files respectively (Illustration 18), manages all the information and operations of the ongoing experiment. In the main file, a global instance of the SLE class is declared at the beginning. A more detailed overview of the class elements and methods is explained in the Appendix I. Steery generated documentation. As the user launches the experiment, the SLE.init_trials() method is called to create all the experiment trials in a factorial design. If selected, the trials of each subject are shuffled. During the experiment, the current trial information, saved on SLE class, allows the system to display it on the screen. Trial data such as user trajectory, standard deviation or time lapse is recorded on this class. To conclude the experiment, a settings selection window pops up to save the experiment data into a file. These GUI elements are linked to SLE.output structure, which are checked in the SaveDataToFile() function. 18 Illustration 18: Steery file directory 4.3. OpenHaptics features Steery takes advantage of some of the features explained on Chapter 3 - OpenHaptics to simulate haptic feedback in the PHANTOM Omni device. Steery haptics are mainly scheduled in an asynchronous callback (touchScene) executed in the servo loop, so any submitted callback is run immediately regardless of priority. This callback executes a HD Frame, that is, a haptic rendering pass, a block of code guaranteed to be consistent. In this function, for the selected type of experiment and settings, different forces are added to a force vector (hduVector3Dd), which is finally applied to the device. Device button events are handled by a callback which, according to the state of the trial, it may switch during the different trial stages. For some special features such as surface, viscosity or damping, a HL frame is used. It updates the current state of the haptic device and clears the current set of haptics primitives (shapes and effects) being rendered in preparation for rendering a new or updated set of primitives. Every time the scene is drawn, a synchronous scheduler (copyHapticDisplayState) is called to obtain the device display state and calculate its position and other useful values for the current type of experiment. Finally, the updateworkspace function is called either when a new trial starts or when the camera has changed. This function defines the new camera projection to fit, scale and map it into the haptics workspace, as well as the cursor. It computes the transform for going from device coordinates to world coordinates, based on the current viewing transforms. Next, the implemented haptics features in Steery are explained. 4.3.1. Dynamic forces Dynamic force refers to the aforementioned spring force, based on Hooke's Law  F=k x . Steery has implemented four types of dynamic forces, belonging to the HD frame: 19 •Attractive tunnel centre: by tunnel centre we define the path that goes along the tunnel, which is at equidistant from the tunnel walls or boundaries. If selected, a force perpendicular to the tunnel is applied to the device in the asynchronous callback, pushing it to the tunnel centre. •Repulsive tunnel centre: similarly to the previous one, it exerts a tunnel centre perpendicular force, but opposite to the tunnel centre. •Attractive goal: each trial has a starting and an end position. If selected, a force is applied in the same tunnel direction, pushing the device towards the end position. •Repulsive goal: if selected a force is applied pushing the device towards the starting position. The implementation of these forces is not always trivial. The calculation of the force calculation may depend on the type of tunnel, position of the device or tunnel rotations. It differs widely to calculate the attractive goal force for a straight two-dimensional tunnel from an attractive goal curved three-dimensional torus, as it can be seen in the next Fig. 19 and 20. To augment the possibilities of future dynamic force experiments, another functionality was added. The user can select the grade of the force function. Thus, the force is not only restricted to linear forces: constant forces  F=k ∣ ∣  x ∣ ∣ , linear  F=k x , quadratic  F=kx2 inverse  F=k  x and logarithmic  F=klog x . Before applying the force, the callback function calls to SLE.GradeEquation (or SLE.GradeEquationInCurve for curved tunnels) 20 Illustration 20: basic tunnel dynamic forces Illustration 19: curve 2D tunnel dynamic forces 4.3.2. Solid Walls This force behaves similarly to a dynamic force. It emulates solid walls at the sides of the tunnel by applying a force when the device cursor is farer than the width tunnel from the centre path. This force is based on the distance to the tunnel side, growing exponentially to the distance, hence emulating a soft -spongywall. It is also applied in the HD frame. In 3D tunnels, the cursor is locked up inside the tunnel space. 4.3.3. Surface: orientation and stiffness For two-dimensional tunnels, the experiment can be executed in horizontal (as a table) or vertical (as a blackboard). The default position is horizontal, but if the user sets the experiment into vertical, all the system workspace is rotated 90 degrees. Besides, several haptic global variables are modified in order to behave in accordance with the new coordinates. It is also common to perform this experiments in a horizontal surface. The user can activate a simple surface emulation, solid walls alike. In this case, the cursor is forced to stay in the Yaxis (y=0) of the device coordinate system. If vertical orientation is selected, the coordinate system is rotated as well, and the same force is applied. This force, implemented in the HD frame, grows exponentially with the Y value. It is illustrated in a picture at the Appendix II. Steery User's guide, page 72. In short, this force emulates a cursor stuck to a soft surface. For a more realistic surface emulation, the next section has been developed. 4.3.4. Surface textures These features take advantage of the HLAPI high-level functionality. Creating a HL frame, it emulates a surface with graphic and haptics properties. These haptic properties are set according to the user selected material values of damping, stiffness, damping, static friction and dynamic friction, oscillating in range [0,1]. Besides, the surface is created in the user selected height of the device workspace. 4.3.5. Tunnel fluid For 3D tunnels, another HL frame is created. To evaluate haptic properties in a 3D tunnel experiment, we face the problem of the uselessness of a surface in a three-dimensional 21 environment. For that reason, in 3D tunnels Steery can only provide the subject with free space force effect feedback. This effect is sent to the device while the cursor is inside the tunnel. Two types of effects can be selected: •Viscosity: this force is based on the current velocity of the haptic device, and it is calculated to resist the motion of the haptic device. It is calculated using the expression  F=−k v , where F is the spring force, k is the user selected value (gain) and v is the velocity. •Friction: as commented before, this force is applied according to the formula  F=−c ∣ ∣  v ∣ ∣ , where the clamping value c is set by the user. 4.4. Types of tunnel The main feature of a experiment in Steery is the type of tunnel. It defines the scenario and environment in which the subjects will realize the trials. Mainly, tunnels can be separated in two types: two-dimensional and three-dimensional. In the first type, OpenGL generates an orthographic projection, whereas a perspective projection is generated in the second type. In an orthographic projection, the viewing volume is a rectangular parallelepiped (a box). Thus, the size of the viewing volume doesn't change from end to the other, so distance from camera doesn't affect how large an object appears. By using this projection, the tunnel maintain its actual size no matter how it is placed. However, in a 3D experiment the viewing volume is a frustum of a pyramid. Objects that fall within the viewing volume are projected toward the apex of the pyramid, where the camera is. Closer objects appear larger because they occupy a proportionally larger amount of the viewing volume than those that are farther away, in the larger part of the frustum. Tunnels are mostly drawn with a OpenGL display lists (except 2D tunnel, due to its simplicity). A display list is a group of OpenGL commands that have been stored for later execution, improving the display loop performance. Because of tunnel physiognomy, it becomes useful to take advantage of display list, redrawing the same geometry during the whole trial. Thus, the display list is stored before the trial starts. 22 To control the sequence of the experiment, every trial behaves as a state machine. In the OpenGL display loop the trial condition is checked to jump between states. In the first states of the trial, the starting position is drawn, providing feedback to the user about where to start the experiment. During the trial, the device position is saved in a vector to display the whole trajectory on the screen, as well as the cursor. Once the subject reaches the end position, the system process the trial trajectory to calculate the standard deviation, OPM and MT into the SLE class. A more concise description of every type of tunnel is described in the next point. 4.4.1. Basic tunnel This two-dimensional straight tunnel is the most well-known tunnel in steering law experiments. It is defined by a width and height. Besides, we added a third parameter called alpha (α), in degrees, which rotates the tunnel clockwise. The size of the tunnel and camera has been defined to occupy the same number of pixels in the screen. The starting position is by default placed at the left side, so the subject has to steer the tunnel from left to right. To calculate the standard deviation, it is needed to obtain the distance from each point of the user trajectory to the tunnel centre. This value is defined and deducted as the distance from the cursor position to the tunnel centre line, which starts in the starting position and finish in the tunnel end position (Illustration 21). To calculate the distance from a point p to a line  ab , we calculate the orthogonal projection of the vector  ap onto the line  ab , generating the vector  ac . The euclidean distance ∥ pa∥ is the desired value. 23 a b p c Illustration 21: basic tunnel distance corresponds to Index of Difficulty (A/W) and Y-axis is the Movement Time. This chart is displayed with an orthographic projection in OpenGL. Besides, the user can save the chart into a JPEG file using the mkOpenGLJPEGImage [22] library. 30 Chapter 5 - Experiments, results and discussion Steery has been built to facilitate researchers the investigation of steering law experiments. Accordingly, several experiments were performed by different laboratory members for their own investigation. 5.1. Verification of linear steering in 3D space Realized by Hironori Ishiyama [2] for his Bachelor thesis, this experiment sought to study Steering task user range for stroke, orientation and tilt, hence examining it and contribute to create a future interface. The experiment used 3D tunnel type, based on a cylinder. The parameter settings where: •Width W: 5, 15, 25, and 35 pixels. x4 •Amplitude A: 50, 75 and 100 pixels. x3 •Azimuth (α) and tilt (β): from 0 to 315º incrementing by 45º. x8 x8 •12 subjects. Combined in factorial design, each subject had to perform 768 trials. Analysing each parameter separately, error rate decreases as the width increases. In 5px width, error rate is 95% but in 25 and 35px it decreases until 20% or less. Referring to angles α and β, error rate is lower than the direction. Results suggested that, on a diameter of threedimensional space operations, perpendicular tilts (β) of 0, 90,180 and 270, and an azimuth of 180 and 270 were valid for the experiment. These results are expected to help and encourage the development of a new pen interface. 5.2. Verification of curved steering in 3D space This experiment was performed by Onishi Yoshinobu [3] for his Bachelor thesis, as well. Similarly to the previous experiment, this one made use of the torus 3D tunnel type with 12 subjects to study curved trajectories in three dimensions. The experiment settings where: • Width W: 20, 30 and 40px. x3 •Amplitude A : 160, 200 and 240px. x3 31 •Azimuth (α) and tilt (β) and γ from 0 to 135º incrementing by 45º. x4 x4 x4 Combined, each subject had to perform 576 trials. The torus tasks were found more difficult to perform in the cases where it was steered vertically rather than horizontally. Besides, it was difficult to adjust the vertical position of the pointer to look sideways. The results obtained are expected to be useful in future operations to improve the usability of interfaces and modelling. 5.3. Boxwalls experiment To test the extensibility of Steery, a new type of tunnel (therefore, a experiment) was implemented. It consist of a virtual room with floor, lateral and front walls, thus nicknamed as boxwalls. A straight 2D tunnel is displayed in a wall, and the subject has to steer through it. Every trial is perform two times: first, in the front wall, and next in the “floor” wall. Walls were provided by haptic feedback, implemented in a HL frame. The available parameters where: amplitude A of the tunnel, width W, rotation α, and camera angle β. In this scenario, we studied the influence of the camera to compare the front wall and floor wall tasks. This experiment and its results are thorough and widely explained in the report enclosed to this document, Appendix III. Boxwalls experiment report. The results of the study showed that the rejection of wrong trials produced high error rates. Additionally, the steering law correlation was lower than expected in this type of experiment, which commonly tends to be R2>0.8. The user's lack of perception presented to be the main disadvantage of the experiment, poorly balanced with graphic feedback. As a consequence, Steering Law had to be refrained to be used in this scenario. 32 Chapter 6 - Conclusions and future work We wanted to realize a software platform where the HCI researchers could deploy and perform they experiments in an easy and quick methodology. According to the experiments and results explained in the previous chapter, the application succeed to reach its goals. Three different researchers could carry out their investigations with Steery in a swift way, disposing of any need of application re-programming. Another successful feature lies in the potential, flexibility and high degree of configuration of the application: the variety of settings permits the designer to construct a wide an heterogeneous collection of experiments. Steery has been proved to be a good solution to accelerate a Steering experiment design. Future works may be done by students and researchers augmenting the functionality and configuration of the application. Specially in three-dimensional experiments, where a proper and more thorough model hasn't been demonstrated yet. Besides, it would be interesting to study, experiment and compare the haptics texture emulation with real world textures such as wood, concrete, metal, rubber, and so on. This would allow future application developments with more realistic objects in the virtual world, where the user can feel, distinguish and discriminate between different textures. 33 Bibliography [1] SensAble Technologies, Inc. 15 Constitution Way, Woburn, MA 01801 www.sensable.com [2] Hironori Ishiyama. Verification of linear steering with three-dimensional space ( 三次元空間 上での直線のステアリング操作の検証 ) 4rd Ren Laboratory Symposium. Vol.10, 2009. pp.1 [3] Onishi Yoshinobu. Verification of steering round on three-dimensional space ( 三次元空間上で の円形のステアリング操作の検証 ) 4rd Ren Laboratory Symposium. Vol 10, 2009. pp.1 [4] Doxygen documentation generator. Dimitri van Heesch. http://www.doxygen.or [5] Fitts, P.M. The information capacity of the human motor system in controlling the amplitude of movement. Journal of Experimental Psychology , 47, 381-391(1954) [6] Accot, J. and S. Zhai. Beyond Fitts' Law: Models for trajectory-based HCI tasks. ACM CHI. P 295-302.(1997) [7] MacKenzie, I., Buxton, W.: Extending Fitts' law to two-dimensional tasks. In: ACM CHI, pp. 21926 (1992) [8] Kattinakere, R., Grossman, T., Subramanian, S.: Modelling steering within above-thesurface interaction layers. In: ACM CHI, pp. 317-26 (2006) [9] Accot, J., Zhai, S.: Refining Fitts Law models for bivariate pointing. In ACM CHI, pp. 193200 (2003) [10]Ahlström, D.: Modelling and improving selection in cascading pull-down menus using Fitts' law, the steering law and force fields. In: ACM CHI, pp. 61-70 (2005) [11]Campbell, C., Zhai, S., May, K., Maglio, P.: What You Feel Must Be What You See: Adding Tactile Feedback to the Trackpoint. In: INTERACT, pp. 383-390 (1999) [12]Dennerlein, J., Martin, D., Hasser, C.: Forcefeedback improves performance for steering and combined steering-targeting tasks. In: ACM CHI, pp. 423-429 (2000) [13]Forsyth, B., MacLean, K.: Predictive Haptic Guidance: Intelligent User Assistance for the Control of Dynamic Tasks. IEEE Transactions on Visualization and Computer Graphics 12(1), 102-113 (2006) [14]XingDong Y., Pourang I., Boulanger P., Bischof W.: A Model for Steering with Haptic-Force Guidance. Proceedings of the 12th IFIP TC 13 International Conference on HCI: Part II [15]Shneiderman, Ben (Ed.). Sparks of Innovation in human-computer interaction. Ablex Publishing Corporation. Norwood (1993) pp. 13-17 [16]Booth, Paul. An Introduction to Human-Computer Interaction. Hove, UK Lawerence Erlbaum Associates. (1989) pp. 44-49 [17]Buxton, Bill (2003). Human Input to Computer Systems: Theories, Techniques and Technology. Draft in the internet http://www.billbuxton.com/inputManuscript.html [18] OpenHaptics toolkit 3.0 Programmer's Guide. Sensable Technologies, Inc. Jan 2009 [19] OpenHaptics toolkit 3.0 API Reference Manual. Sensable Technologies, Inc. Dec 2008 [20] OpenGL Programming Guide, 7th edition. Chapter 7 (1996) [21]Shadow projection in OpenGL. A mathematical explanation of implementing shadow projection. Phaetos. 2003. http://www.devmaster.net/articles/shadowprojection [22]MkOpenGLJPEGImage library. Michael Kennedy, 2000. http://mkennedy.101main.com 34 Appendix I. Steery generated documentation Steery release candidate 1 Generated by Doxygen 1.6.3 Tue Apr 13 10:33:27 2010 35 CONTENTS 1 Contents 1 Steery platform 2 1.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 2 Class Documentation 2 2.1 _outputParameters Struct Reference . . . . . . . . . . . . . . . . . . . . . . 2 2.1.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3 2.1.2 Member Data Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . 3 2.2 _SLE Class Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5 2.2.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 2.2.2 Constructor & Destructor Documentation . . . . . . . . . . . . . . . 7 2.2.3 Member Function Documentation . . . . . . . . . . . . . . . . . . . . . 7 2.2.4 Member Data Documentation . . . . . . . . . . . . . . . . . . . . . . . . 16 2.3 _trial Struct Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 2.3.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 2.3.2 Member Data Documentation . . . . . . . . . . . . . . . . . . . . . . . . 17 2.4 HapticDisplayState Struct Reference . . . . . . . . . . . . . . . . . . . . . 18 2.4.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 2.4.2 Member Data Documentation . . . . . . . . . . . . . . . . . . . . . . . . 18 2.5 HookeForce Struct Reference . . . . . . . . . . . . . . . . . . . . . . . . . . .19 2.5.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .19 2.5.2 Member Data Documentation . . . . . . . . . . . . . . . . . . . . . . . . . 19 2.6 SLEParameter Struct Reference . . . . . . . . . . . . . . . . . . . . . . . . 20 2.6.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 2.6.2 Member Data Documentation . . . . . . . . . . . . . . . . . . . . . . . . 20 2.7 SLESettings Struct Reference . . . . . . . . . . . . . . . . . . . . . . . . . . 20 2.7.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 2.7.2 Member Data Documentation . . . . . . . . . . . . . . . . . . . . . . . . 21 2.8 TextureParameters Struct Reference . . . . . . . . . . . . . . . . . . . . 23 2.8.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 2.8.2 Member Data Documentation . . . . . . . . . . . . . . . . . . . . . . . . 23 Gen era ted on Tu e Apr 1 3 1 0:3 3: 26 2 01 0 fo r St eery b y Do xy gen 1 Steery platform 2 1 Steery platform Author Alejandro Tatay Pascual Date April-2010 1.1 Introduction Steery is a Steering Law Experiment platform. Steery is suitable for research on trajectory-based interactions in a variety of environments. Steery is designed to work with force-feedback haptic devices. It works with any haptic device of Sensable Technologies1 PHANTOM product line. Besides, Steery provides a different type of environment by using the haptic properties of these devices. Steery is extensible. It is designed to be augmented by developing new types of experiments and functionality. Steery is an academic software developed for Ren Laboratory and its members. Any external use should be reported to Kochi University of Technology 2 Class Documentation 2.1 _outputParameters Struct Reference Output settings of the experiment. #include <SLE.h> Public Attributes • char file [50] • int fileType • int amplitude • int width • int id • int sd • int opm • int mt • int alfa • int beta • int gamma • int delta • int height Gen era ted on Tu e Apr 1 3 1 0:3 3: 26 2 01 0 fo r St eery b y Do xy gen 2.1 _outputParameters Struct Reference 3 • oat minID • int maxID • DWORD maxMT • DWORD minMT 2.1.1 Detailed Description Output settings of the experiment. Structure to control the output file and output chart. 2.1.2 Member Data Documentation 2.1.2.1 int _outputParameters::alfa If enabled, SLE.trial[].parameter[3] will be saved for all trials 2.1.2.2 int _outputParameters::amplitude If enabled, SLE.trial[].parameter[0] will be saved for all trials 2.1.2.3 int _outputParameters::beta If enabled, SLE.trial[].parameter[4] will be saved for all trials 2.1.2.4 int _outputParameters::delta If enabled, SLE.trial[].parameter[6] will be saved for all trials 2.1.2.5 char _outputParameters::file[50] Full path output file name 2.1.2.6 int _outputParameters::fileType File type. If 0, output file will be a plain text file (txt). If 1, output will be saved as a comma-separated values file (csv). 2.1.2.7 int _outputParameters::gamma If enabled, SLE.trial[].parameter[5] will be saved for all trials 2.1.2.8 int _outputParameters::height If enabled, SLE.trial[].parameter[2] will be saved for all trials Gen era ted on Tu e Apr 1 3 1 0:3 3: 26 2 01 0 fo r St eery b y Do xy gen 2.1 _outputParameters Struct Reference 4 2.1.2.9 int _outputParameters::id If enabled, Index of difficulty will be saved for all trials 2.1.2.10 int _outputParameters::maxID maximum Index of Difficulty value. Useful for drawing the X-axis higher boundary of the chart 2.1.2.11 DWORD _outputParameters::maxMT maximum Movement Time value. Useful for drawing the Y-axis higher boundary of the chart 2.1.2.12 oat _outputParameters::minID minimum Index of Difficulty value. Useful for drawing the X-axis lower boundary of the chart 2.1.2.13 DWORD _outputParameters::minMT minimum Movement Time value. Useful for drawing the Y-axis lower boundary of the chart 2.1.2.14 int _outputParameters::mt If enabled, Movement Time will be saved for all trials 2.1.2.15 int _outputParameters::opm If enabled, OPM will be saved for all trials 2.1.2.16 int _outputParameters::sd If enabled, Standard Deviation will be saved for all trials 2.1.2.17 int _outputParameters::width If enabled, SLE.trial[].parameter[1] will be saved for all trials The documentation for this struct was generated from the following file: • Visual Studio 2005/Projects/Steery/Steery/SLE.h Gen era ted on Tu e Apr 1 3 1 0:3 3: 26 2 01 0 fo r St eery b y Do xy gen 2.2 _SLE Class Reference 11 end end position of the tunnel grade equation grade of the force K constant K Returns force final vector 2.2.3.9 void _SLE::init_trials () Initialize trials. This function is called after setting up the the experiment. allocates dinamically trials memory and construct the parameters in a factorial design. cp=current parameters 2.2.3.10 string _SLE::int2string (int i) Converts integer to a C string. Using iostream library converts a decimal integer value, returning a C standard string Parameters i integer Returns integer in casted string 2.2.3.11 bool _SLE::isCrossed (hduVector3Dd lastProjPos, hduVector3Dd currProjPos, hduVector3Dd p) point is crossed Calculates if a point is situated in the space between two other points, by calcujating the orthogonal projection of the point onto the line defined by the other two points. Parameters lastProjPos initial point of the line segment currProjPos ending point of the line segment p point to be calculated Gen era ted on Tu e Apr 1 3 1 0:3 3: 26 2 01 0 fo r St eery b y Do xy gen 2.2 _SLE Class Reference 12 Returns true if is crossed. False if not 2.2.3.12 bool _SLE::isPointOnLine (hduVector3Dd p, hduVector3Dd b0, hduVector3Dd b1) Point p is on the b0-b1 line segment. Parameters p point to be checked if it is on the line or not b0 starting point of the line segment b1 ending point of the line segment, different from b0 Returns true if p is in the line segment. False if not 2.2.3.13 bool _SLE::LinRegress (double * a, double * b, double * r) Linear regression function. Calculates linear regression from all trials, according to the formula y (x) = a + bx, for n samples. The following assumes the standard deviations are unknown for x and y. X values correspond to trial Index of Difficulty (ID) and Y-values to Movement Time (MT). Parameters a y-intercept value of the linear regression function, point where the function intercepts the Y-axis. b slope of the linear regression function r correlation coefficient of the linear regression Returns true if the calculation was correct. It will return false if trials number is smaller than 3. Or if the slope b is infinite, so y-intercept a value does not exist 2.2.3.14 hduVector3Dd _SLE::pointProj2Circle (GLdouble p[ ], GLdouble a[ ], GLdouble A) Gen era ted on Tu e Apr 1 3 1 0:3 3: 26 2 01 0 fo r St eery b y Do xy gen 2.2 _SLE Class Reference 13 Projected point in circle. Calculates the closest point of the circumference to the point p. Parameters p point to be projected a center of the circumference A circumference perimeter Returns orthogonal projection point 2.2.3.15 hduVector3Dd _SLE::pointProj2helix (hduVector3Dd pos, int HSlices, hduVector3Dd * torusProjPerp, hduVector3Dd * CC, hduVector3Dd * DD) Helix projection. In the helix experiment, returns the closest point of the center of the helix to the current position. Helix equation is {S = r * cos(angle), S = trialHeight , S = a ng le x y z tr ia lD e lta r * sin(angle)} To find the minimum distance from current position to this equation: Dist(pos, helix) = (pos - S ) + (pos - S ) + (pos - S ) 2 2 2 x x y y z z we derivate the equation (without v) and find the solution which satisfy the derivate=0 but this derivation from a polar equation is unaffordable, because there is no lineal solution that satisfy 2 * pos = 2 * r(sin(angle) - cos(angle)) + * angle 2 h 2 x h d d 2 Thus, the suggested approach done in this function is: 1. Given the cylinder which contains the helix, we calculate B,the closest point of the enclosing cylinder to current position. 2. Find C, the vertical projection point of B in the helix, 3. Find D, the horizontal projection point of B in the helix. 4. From C to D, cover the curve in N points looking for the closest one to current position. (N=10) Parameters pos current cursor position HSlices helix tessellated slices torusProjPerp vector perpendicular to final projection, used later to calculate and apply dynamic forces. Gen era ted on Tu e Apr 1 3 1 0:3 3: 26 2 01 0 fo r St eery b y Do xy gen 2.2 _SLE Class Reference 14 CC vertical projection of point B DD horizontal projection point of B Returns closest point from pos to current trial helix function 2.2.3.16 hduVector3Dd _SLE::pointProj2Line (GLdouble p[ ], GLdouble a[ ], GLdouble b[ ]) Projected point in line. orthogonal projection of the a->p vector onto a->b vector. That is, the closest point of the line a-b to the point p. Useful to project the 3D device position in a plane and situate the cursor in a 2D experiment Parameters p point to be projected a one point of the line b other point of the line, different from b Returns orthogonal projection point 2.2.3.17 void _SLE::RotateMatrix (GLdouble alfa, GLdouble beta, GLdouble gamma, GLdouble M[16], GLdouble M2[16]) Matrix rotation. alpha, beta&gamma angles given, and a matrix M, calculates the new matrix M2 applying the intrinsec rotations (Euler) to M. A=B*C*D, M2=A*M. B,C and D correspond to the rotation matrixes of alpha, beta and gamma. First, A is calculated by the BCD multiplication. Then, M2 is calculated. Parameters alfa alpha angle, in Y-axis beta beta angle, in Z-axis gamma gamma angle, in X-axis M initial matrix 4x4 M2 rotated matrix. M2=A*M, where matrix A=B*C*D. Gen era ted on Tu e Apr 1 3 1 0:3 3: 26 2 01 0 fo r St eery b y Do xy gen 2.2 _SLE Class Reference 15 2.2.3.18 void _SLE::RotatePoint3D (GLdouble alfa, GLdouble beta, GLdouble gamma, GLdouble p[3], GLdouble p2[3]) Rotation of a point in 3D space. alpha, beta&gamma angles given, and a point p, calculates the new point p2 applying the intrinsec rotations (Euler) to the point. A=B*C*D; p2=A*p.First, p is rotated in X-Z plane about Y-axis by alfa (Matrix D). Then, result is rotated in X-Y plane about Z-axis by beta (Matrix C).Finally, result is rotated Y-Z plane about X-axis by gamma (Matrix B) Parameters alfa alpha angle, in Y-axis beta beta angle, in Z-axis gamma gamma angle, in X-axis p initial point p2 rotated point. p2=A*p, where matrix A=B*C*D. 2.2.3.19 void _SLE::shuf eTrials () Shuf e experiment trials. For every subject, trials are shuf ed 2.2.3.20 int _SLE::trialsNumber () Number of trials. Returns number of trials. If SLE.trialsN=0, calculates experiment factorial combinations and updates SLE.trialsN according to GUI settings. 2.2.3.21 hduVector3Dd _SLE::vectorProj (hduVector3Dd a, hduVector3Dd b) Vector projection. orthogonal projection of the B vector onto A vector Parameters a vector where projection is calculated on Gen era ted on Tu e Apr 1 3 1 0:3 3: 26 2 01 0 fo r St eery b y Do xy gen 2.3 _trial Struct Reference 16 b vector to be projected Returns orthogonal projection vector 2.2.4 Member Data Documentation 2.2.4.1 int _SLE::currentTrial current trial during the experiment, inside the interval [0, n-1]. Initial value is -1. 2.2.4.2 _outputParameters _SLE::output output settings of the experiment instance 2.2.4.3 bool _SLE::paramEnableType[7][7] Parameters enabled for each type of experiment. Syntax is paramEnableType[t][p], where t correspond to an SLEtype and p is one of the 7 parameters amplitude, width, height, alfa, beta, gamma or delta 2.2.4.4 SLESettings _SLE::settings GUI panel linked settings 2.2.4.5 _trial* _SLE::trials experiment array of trials. Memory is allocated dinamically in init_trials() function 2.2.4.6 SLEtype _SLE::type enum type of the experiment. Value is updated everytime the listbox is changed. The documentation for this class was generated from the following files: • Visual Studio 2005/Projects/Steery/Steery/SLE.h • Visual Studio 2005/Projects/Steery/Steery/SLE.cpp 2.3 _trial Struct Reference Trial structure. #include <SLE.h> Gen era ted on Tu e Apr 1 3 1 0:3 3: 26 2 01 0 fo r St eery b y Do xy gen 2.3 _trial Struct Reference 17 Public Attributes • int parameter [7] • oat id • double sd • DWORD MT • oat OPM • int subject 2.3.1 Detailed Description Trial structure. Contains the input and output parameters of a experiment trial. 2.3.2 Member Data Documentation 2.3.2.1 oat _trial::id Index of difficulty. Value derived from Amplitude/width. 2.3.2.2 DWORD _trial::MT movement time. It last since the start position is crossed until the user reaches the end position 2.3.2.3 oat _trial::OPM We use the OPM to measure the out of path movement. OPM is the percentage of trajectory points outside the tunnel boundary. This metric was previously used by Kulikov and it was defined as "OPM (Out of Path Movement, percentage of sample points outside the Constraint lines). For example, if 100 points were sampled and 14 of those points were outside the Constraint lines, then OPM would be 14". 2.3.2.4 int _trial::parameter[7] Measurements and angles of the trial: amplitude, width, height, alfa, beta, gamma and delta 2.3.2.5 double _trial::sd standard deviation of trial user trajectory Gen era ted on Tu e Apr 1 3 1 0:3 3: 26 2 01 0 fo r St eery b y Do xy gen 2.4 HapticDisplayState Struct Reference 18 2.3.2.6 int _trial::subject Number of the current subject The documentation for this struct was generated from the following file: • Visual Studio 2005/Projects/Steery/Steery/SLE.h 2.4 HapticDisplayState Struct Reference haptic variables,structs&functions Public Attributes • hduVector3Dd position • HDdouble transform [16] • hduVector3Dd anchor • HDboolean isAnchorActive • HDboolean recordUserTraj 2.4.1 Detailed Description haptic variables,structs&functions 2.4.2 Member Data Documentation 2.4.2.1 hduVector3Dd HapticDisplayState::anchor Cursor anchor 2.4.2.2 HDboolean HapticDisplayState::isAnchorActive is anchor active boolean 2.4.2.3 hduVector3Dd HapticDisplayState::position current position of the cursor 2.4.2.4 HDboolean HapticDisplayState::recordUserTraj if active, records user trajectory Gen era ted on Tu e Apr 1 3 1 0:3 3: 26 2 01 0 fo r St eery b y Do xy gen 2.5 HookeForce Struct Reference 19 2.4.2.5 HDdouble HapticDisplayState::transform[16] transformation matrix The documentation for this struct was generated from the following file: • Visual Studio 2005/Projects/Steery/Steery/main.cpp 2.5 HookeForce Struct Reference Dynamic Force structure. #include <SLE.h> Public Attributes • int isON • oat K • oat x • int equationGrade 2.5.1 Detailed Description Dynamic Force structure. Represented according to Hooke’s Law F=K*x. Depending on the equationGrade value, this force can be constant, linear, quadratic, logarithmic or inverse 2.5.2 Member Data Documentation 2.5.2.1 int HookeForce::equationGrade Grade. See _SLE::GradeEquation for further detail. 2.5.2.2 int HookeForce::isON Force activator. When is equal to zero, force is disabled. 2.5.2.3 oat HookeForce::K coefficient of the force. 2.5.2.4 oat HookeForce::x distance. The documentation for this struct was generated from the following file: Gen era ted on Tu e Apr 1 3 1 0:3 3: 26 2 01 0 fo r St eery b y Do xy gen 2.6 SLEParameter Struct Reference 20 • Visual Studio 2005/Projects/Steery/Steery/SLE.h 2.6 SLEParameter Struct Reference Steering Law Experiment Parameter structure. #include <SLE.h> Public Attributes • int min • int max • int iter 2.6.1 Detailed Description Steering Law Experiment Parameter structure. One of the 7 parameters of a SLE: Amplitude, Width, Height, alfa, beta, gamma, delta. It is expressed in a min/max/iterator way, for factorial design 2.6.2 Member Data Documentation 2.6.2.1 int SLEParameter::iter iterator value. 2.6.2.2 int SLEParameter::max maximum value. 2.6.2.3 int SLEParameter::min minimum value. The documentation for this struct was generated from the following file: • Visual Studio 2005/Projects/Steery/Steery/SLE.h 2.7 SLESettings Struct Reference Experiment settings. #include <SLE.h> Gen era ted on Tu e Apr 1 3 1 0:3 3: 26 2 01 0 fo r St eery b y Do xy gen INDEX 27 _SLE, 13 SLESettings, 21 position solidwalls HapticDisplayState, 17 SLESettings, 21 subject recordUserTraj _trial, 16 HapticDisplayState, 17 subjects repgoal SLESettings, 21 SLESettings, 21 surface2DTexture repwalls SLESettings, 21 SLESettings, 21 RotateMatrix TextureParameters, 22 _SLE, 13 hap_damping, 22 RotatePoint3D hap_dynamic_friction, 22 _SLE, 13 hap_static_friction, 23 hap_stiffness, 23 sd height, 23 _outputParameters, 3 ON, 23 _trial, 16 transform settings HapticDisplayState, 17 _SLE, 15 trialBreak shadows3D SLESettings, 21 SLESettings, 21 trialRepetitions shuffle SLESettings, 22 SLESettings, 21 trials shuffleTrials _SLE, 15 _SLE, 14 trialsNumber SLEParameter, 19 _SLE, 14 iter, 19 tunnelViscosity max, 19 SLESettings, 22 min, 19 type SLESettings, 19 _SLE, 15 attrgoal, 20 SLESettings, 22 attrwalls, 20 audio, 20 vectorProj HookeForcetunnelFriction, 20 _SLE, 14 orientation, 20 parameter, 21 width repgoal, 21 _outputParameters, 3 repwalls, 21 shadows3D, 21 x shuffle, 21 HookeForce, 18 solidSurfaceOrientation, 21 solidwalls, 21 subjects, 21 surface2DTexture, 21 trialBreak, 21 trialRepetitions, 22 tunnelViscosity, 22 type, 22 solidSurfaceOrientation Gen era ted on Tu e Apr 1 3 1 0:3 3: 26 2 01 0 fo r St eery b y Do xy gen Appendix II. Steery User's guide STEERY USER’S GUIDE Ren Laboratory Kochi University of Technology, Japan March 2010 User's Guide Table of Contents Appendix II. Steery User's guide........................................................................................................62 Preface.........................................................................................................................64 I.Getting started...........................................................................................................65 Chapter 1 Introduction.......................................................................................65 1.1. Welcome to Steery................................................................................ 65 1.2. Authors..................................................................................................65 1.3. Scope and Purpose................................................................................65 1.4. Features and Capabilities......................................................................65 Chapter 2. Running Steery................................................................................ 66 2.1. System Requirements............................................................................ 66 Chapter 3. First Steps....................................................................................... 67 3.1. Basic Concepts.......................................................................................67 3.1.1 SLE..................................................................................................67 3.1.2. Haptics........................................................................................... 67 3.1.3. Dynamic Forces............................................................................. 67 3.1.4. Trial................................................................................................ 67 3.2. Starting the system................................................................................67 3.3. Main Window........................................................................................ 68 3.4. Stopping and the system........................................................................ 68 3.5. Steery Quickies......................................................................................69 3.5.1. Perform a 2D experiment...............................................................69 3.5.2. Graph output results.......................................................................70 II. Functionality...........................................................................................................71 Chapter 4. GUI dialogs......................................................................................71 4.1. Dialog Introduction................................................................................71 4.2. Tunnel selection..................................................................................... 71 4.2.1. Type................................................................................................71 4.2.2. Parameters......................................................................................72 4.3. Iterations................................................................................................ 72 4.4. Dynamic Forces..................................................................................... 72 4.5. Texture Feedback...................................................................................73 4.6. Trial status bar........................................................................................73 4.7. Save data................................................................................................74 Chapter 5. Types of tunnel ................................................................................75 5.1. Trial execution....................................................................................... 75 5.2. 2D tunnel................................................................................................75 5.3. 2D torus..................................................................................................76 5.4. 2D curve.................................................................................................76 5.5. 3D tunnel................................................................................................76 5.6. 3D torus..................................................................................................76 5.7. 3D helix..................................................................................................77 5.8. boxwalls.................................................................................................77 Chapter 6. Troubleshooting............................................................................... 78 Appendix A. Glossary of Terms........................................................................ 79 Appendix B. Bibliography.................................................................................80 64 Preface 1. About this guide The Steery User’s Guide describes the features and usability of the Steery platform. You will find information on how to use and perform experiments with this software. 2. Steery User Manual Authors and Contributors Content Writers Alejandro Tatay Pascual Proof Reading Lawrie Hunter, Sun Minghui, Xiangshi Ren Graphics, Stylesheets Alejandro Tatay Pascual Build System, Technical Contributors Alejandro Tatay Pascual, Minghui Sun, Xiangshi Ren, Yoshinobu Onishi, Hironori Ishiyama 65 I. Getting started Chapter 1 Introduction 1.1. Welcome to Steery Steery is a Steering Law Experiment platform. Steery is suitable for research on trajectory-based interactions in a variety of environments. Steery is designed to work with force-feedback haptic devices. It works with any haptic device of Sensable Technologies PHANTOM product line. Besides, Steery provides a different type of environment by using the haptic properties of these devices. Steery is extensible. It is designed to be augmented by developing new types of experiments. For further information, check the Steery developer’s manual. Steery is an academic software developed for Ren Laboratory and its members. Any external use should be reported to Kochi University of Technology. 1.2. Authors The first version of the Steery was written by Alejandro Tatay Pascual. Other labmates have contributed to its development: Sun Minghui, Yoshinobu Onishi, Hironori Ishiyama and the support of Prof. Xiangshi Ren. 1.3. Scope and Purpose In the field of Human-Computer Interaction (HCI) Steering Law is a well-known predictive model concerning the user’s performance in trajectory tasks. Nowadays, Steering Law experiments are used frecuently, but the experiment development process can be tedious and repetitive for the researcher. Steery speeds up the workload of the researcher by substracting the development stage. Once the researcher runs Steery, he only has to set up the parameters and launch the experiment. 1.4. Features and Capabilities The following list is a short overview of some of the features and capabilities which Steery offers: •Variety of tunnels: 2-dimensional, 3-dimensional, straight, curved, …. •Surface orientation in 2-dimensional tunnels •Tunnel parameters: Iterator-based selection •Texture material simulation •Dynamic forces: haptic-force guidance •Save data as txt, csv or even as a jpeg graph. 66 Chapter 2. Running Steery 2.1. System Requirements The Steery platform requires certain hardware and software components to function properly. •An Intel® processor based personal computer (minimum of Pentium® II class processor is recommended) or an equivalent AMD® processor personal computer. •IEEE-1394a-2000 complaint FireWire® port. •Windows 2000 or Windows XP. •A Sensable Technologies PHANTOM haptic device •There are no specific memory requirements to run the software; however, a minimum of 64 MB RAM is recommended for overall system performance. •The PHANTOM Device driver (PDD), version 4.2.x. See the software documentation for any haptically enabled applications you will be running for specific PDD requirements . •A SensAble supplied 6-6 pin FireWire cable or a 3rd party FireWire cable that exceeds IEEE 1394 implementation recommendations. Laptop Users please note that SensAble recommends using a 6-6 pin cable and add-in card instead of 6-4 pin. See www.sensable.com for the latest information. 67 Chapter 3. First Steps 3.1. Basic Concepts 3.1.1 SLE Derived from Fitts’ Law, Steering Law is a predictive model of human movement in trajectorybased tasks, concerning the speed and total time with which user may navigate through a 2dimensional tunnel. This tunnel is defined by its amplitude A and width W, and the Steering Law can be expressed as where T is the average time to navigate through the path. In a Steering Law Experiment (SLE), a researcher can obtain a,b constants empirically, by linear regression. 3.1.2. Haptics Haptics, or Tactile Feedback Technology, takes advantage of the user’s sense of touch by applying forces and vibrations motions to the user. This simulation assists in the creation of virtual objects, as wall, tunnel texture, and dynamic forces directly applied to the device, among others. 3.1.3. Dynamic Forces Haptic-guidance during steering task can improve the task performance. Steery allows the use of a variety of dynamic forces with several grades of force. 3.1.4. Trial A SLE consists of a number of trials, each one with different parameters. Every trial data is recorded during the experiment, so the experiment designer can save it into a file. 3.2. Starting the system The Steery platform can be opened by double clicking on the Steery.exe icon, located in the Steery folder. 68 W A baT += 3.3. Main Window Once the system has started, the main window of the application is opened. In this starting window, all the SLE settings can be selected. The main window is divided in four parts: tunnel, where the parameters and type of tunnel are selected; iterations selects the general settings of the SLE; Haptic-guidance, for dynamic forces; and Texture simulation. Once the experiment is set up, it can already start by pressing the launch button. 3.4. Stopping and the system To close the experiment before it starts, press Exit button in the main Window, close to the launch button. Otherwise, if the experiment has already started, press the Cancel button at the bottom bar (status bar). A dialog will pop up, asking for confirmation. 69 3.5. Steery Quickies 3.5.1. Perform a 2D experiment Let’s suppose that you want to do a SLE to study the influence of the trajectory angle in the tunnel. The experiment parameters are: •Amplitude: 60,75,90,105, 120. x5 •Width: 10, 18, 26, 34, 42. x5 •Trajectory angle: 0, 45, 90, 135, 180, 225, 270, 315. x8 •Subjects: 5 x5 •Shuffle trials In total, this experiment has 5x5x8x5=1000 trials. Set every iterator parameter (A, W and angle) in iterator-based notation, that is (min, max, iterator). Start the experiment clicking on launch button. A confirmation dialog will pop up, so you can check if the number of trials and subjects are correct. It is recommended to have a break between subjects, so they don’t perform other subject’s trials. For this reason, you may be interested in setting the “have a break” spinner, so a dialog will pop up when each subject finishes. During the experiment, in the status bar will appear information about the remaining trials until next break. 70 After finishing all the trials, the Save data dialog pops up. You can select or deselect a variety of fields per trial that would appear (or not) in the output file. Also, you can choose between a Text file (txt) or a Comma-Separated Values files (csv). 3.5.2. Graph output results Steery can represent the Index of Difficulty ( W A ID = ) related to Movement Time in a graph, calculating it by linear regression of all the trials. In the Save data dialog, click on Show graph button, and the graph will be generated. Next, save the graph as a jpeg file by clicking on the Save graph button. Notice that sometimes graph can not be represented if the basic conditions for regression calculus are not achieved. 71 5.7. 3D helix This tunnel is the most complex of Steery. It is shaped as a helix, a regular curve in threedimensional space, comonly called coil spring or spiral. All the seven parameters are used to draw it: A, W, H, alpha (α), beta (β), gamma (γ) and delta (δ). A is the perimeter of the helix floor projection (a 2D-torus); W is the thickness of the helix, same as 3D torus; Alpha, beta and gamma rotate the tunnel in Y, Z and X axis, repectively; delta is the angle spinning of the helix. For instance, if delta=720º, the helix makes 2 spins; and H is the height of the helix. Because of the complexity of this task, some feedback is provided to help the subject: a red ball situated in the center of the helix tunnel that represents the closest point to the cursor. 5.8. boxwalls Boxwalls is a special SLE designed specifically for our research in March 2010. This experiment simulates a 3-dimensional space inside a room, with floor and walls. It is recommended to set the “solid walls” checkbox on to make them solid. The experiment creates a 2D-tunnel in both floor and front wall with the purpose of comparing both steering tasks and camera angles.The parameters available are: A, W, alpha (α) and beta (β). As other experiments, A is amplitude, W is width and alpha is tunnel rotation. Beta, however, is the camera pitch, or camera angle inclination. Beta covers β=[0,90], where β=0º is equivalent to stare at the front wall and β=90º to stare at the floor. 78 Chapter 6. Troubleshooting Steery is an academic software subject to further development, and you can experiment some issues. This section tries to answer some of the most common Steery issues. I’m moving the Phantom stylus but it doesn’t appear on the screen. 1-Move the stylus to the centre of the workspace. Sometimes cursor is not drawn at the boundaries of the workspace. 2-Check if the device is already plugged in. 3-Check that PHANTOM Device driver (PDD) is already installed. Launch Phantom Test software to confirm that the device is detected. Cursor is over the start region, but its colour doesn’t change. Why can’t I reach it? Because the cursor is not inside the start region. In 3-dimensional tunnels, it’s difficult for the subject to perceive the depth. In those cases it’s recommended to activate shadows checkbox, so the cursor’s shadow helps to perceive its depth. Tunnel size overflows the screen, so I can’t reach the start position. The parameters selected are too big for the device workspace, so please select a smaller parameters and start again. For any technical troubleshooting, please check the Developer’s Manual. 79 Appendix A. Glossary of Terms Dynamic force Simulated force that can be induced by the haptic device during the trial. Haptic-guidance Simulated force by the device which improves steering task skills. Haptics Technology that interfaces with the user through the sense of touch. HCI Human-Computer interaction, the study of how people interacts with computers. Helix Curve in 3-dimensional space mathematically defined by {cos(t), sin(t), t}. Iterator Object that allows to traverse through the elements of a collection. MT Movement time, time that takes a trial to be crossed. OPM Out-of-the-Path Movement, percentage of the crossing task outside the boundaries. SD Standard Deviation. Mathematically, dispersion variability of a collection. SLE Steering Law Experiment. Steering Law Predictive model which studies the user’s performance in trajectory tasks. Torus Surface of revolution generated by a revolving circle about a coplanar axis. Trial Unit test of a single trajectory-based task. 80 Appendix B. Bibliography 1. SensAble Technologies, Inc. 15 Constitution Way, Woburn, MA 01801 www.sensable.com 2. Steery Developer’s Documentation. Alejandro Tatay Pascual. Ren Lab. 2010 3. Ren Laboratory. Kochi University of Technology. Kochi, Japan. 81 Appendix III. Boxwalls experiment report Boxwalls experiment report: Limitations of 2D Steering tasks in 3D environments Alejandro Tatay Pascual Ren Laboratory Kochi University of Technology, Japan March 2010 Abstract Interaction techniques in 3D scenarios can be performed with indirect devices like an arm attached stylus. Usually these techniques have a series of drawbacks while displayed in common screens, such as arm fatigue or user depth perception. In this paper we study and model trajectory based tasks in a box-like 3D environment with haptic-guided device Phantom Omni. Through this experiment we analyze the validation, applicability and limitation of Steering Law in the third dimension. 1 Introduction In the field of Human-Computer Interaction (HCI) Steering Law is a well-known predictive model which studies the user’s performance in navigating through a tunnel. On the other hand, Phantom Omni is a 3D haptic pointing device constituted by a stylus attached to a robotic arm. The manufacturer[8] provides to the developers OpenHaptics library to develop C++ applications. Steery project[7] is a platform to design and launch Steering Law experiment with the Haptic Omni device, taking advantage of the OpenHaptics API. Thus, the designer can study the performance of the device in different environments: 2D, 3D, straight, curved, with haptic guidance, on textured surface, ... We discuss the prior work related to existing models for pointing and steering. Fitt’s Law(1) is a formal relationship that models speed/accuracy tradeoffs in aimed movements. It predicts the time T needed to point to a target of width W and at distance A is logarithmically related to the inverse of the spatial error , that is: (1) where a and b are empirically determined constants, and c is set in the interval [0,1]. The factor , called the index of difficulty (ID), describes the difficulty to achieve the task: the greater ID, the more difficult task. In the last years, researches have introduced new models derived from this formula. Accot and Zhai et al.[1] refine the model for 2-dimensional tunnels, where the difficulty of the task is not related to the logarithm of , but to . That leads to equation 2: (2) Similarly, several studies such as [2], [3], [4] and [5] have shown that the performance of steering tasks can be improved by providing users with tactile feedback during movement along a path. Xing-Dong et al. [6] propose a model for force-enhanced goal crossing task (3), (3) where the difficulty of the task is inversely proportional to the spring stiffness S that represents the intensity of the guiding force. is an empirically constant determinined by the contributions of W and T. In conclusion, Steering Law has been commonly applied to study 2-dimensional crossing tasks. However, a three dimensional devices with 3 or more Degrees Of Freedom (DOF) can be exploited to study crossing tasks in 3D scenarios. Can the Steering Law model predict 3D crossing tasks with the same stability and precision as it does in 2D tasks? Obviously, this kind of tasks have several drawbacks, 82 such as arm fatigue and lack of depth perception in a common 2D screen. But how far can the Steering Law be applied? Actually, this experiment doesn’t study 3D crossing tasks, but 2D crossing tasks in a box-like 3D scenario. The box abstraction is a natural and very common paradigm for any user, where the camera is placed inside a room (box) with walls and floor. Real 3D box-like interfaces can be tested and used currently as a desktop applications, such as Bumptop [9] or Shock Desktop 3D[10]. In these scenarios, the limitation of the mouse prevents the use of a third DOF, and the user can perform crossing tasks, like dragging objects in floor and walls, while the camera changes between different angles. Besides, this tasks represent natural movements for the user, such as sweeping the floor of the room or painting the walls. Nevertheless, swapping time between floor and walls depends mainly in the initial camera angle relative to floor and wall, so it is crucial to choose a value comfortable enough to navigate through the task as well as suitable enough for a short swapping time. 2 Experiment This study analyzes several parameters of the Steering Law in a 3D environment. The software displayed a scenario similar to a room, with floor and walls, where the cursor can move with 6 degrees of freedom. Haptic feedback was provided by the Phantom device to simulate the floor and walls strength, hence the user was able to feel these surfaces. Because of the nature of this experiment, it has been named as boxwalls. The participants were asked to perform crossing tasks in the front wall and floor, both horizontal and vertical tasks. Also the camera angle varies between middle angles close to 45 degrees to study the performance in each angle. 2.1 Apparatus The experiment ran on an Intel Pentium(R) 4 CPU 3.01 GHz PC with 1 GB RAM. The software used was Steery platform[7] running on MS Windows XP Professional SP2. A 17" TFT LCD screen with a 1280x1024 pixel resolution displayed the image. A Phantom OMNI device[8] was used for input, controlled by the Steery program. The device was positioned at 43 cm from the edge of the table, and elevated 4 cm from the table. 2.2 Participants Twelve volunteers participated in this study, three females and nine males between ages of 19 to 30. One of them was left-handed, and three of them had previous experience with the Phantom OMNI device. 2.3 Procedure Participants where asked to hold the stylus of the phantom device. According to each participant’s preferred hand, the device was placed at right or left side of the screen. All participants were seated comfortably and controlled the Phantom OMNI stylus with their dominant hand. Besides, they were allowed to lean their arm on the table while completing the task, much like a natural arm rest with a common pen. Before starting the experiment, participants practiced crossing tasks in the scenario until they feel ready to start. Figure 1: Trial starting procedure In every trial, a straight tunnel is drawn in one of the walls (floor or front wall). To start the trial, participants were required to place the cursor inside a yellow start region attached to one side of the tunnel. Once the cursor was placed over the start region, it changed its color to red. Then participants clicked the stylus button to indicate the are ready to proceed, so the start region turned into green. For a successful trial, the cursor had to cross the tunnel from that side to the other. Once the trial was completed, the next shuffled trial takes place. A trial started as soon as the cursor enters to the tunnel, and finished as soon as the end goal was crossed. Trials had different heights, distances, angles (horizontal or vertical) and camera angles. 2.4 Design Owing to the fact that the experiment studies several values, each participant had to perform a wide quantity of trials. Thus, study employed a 4x4x2x4 83 within-subject factorial design. The independent variables are the width of the goals (5, 10, 15 and 20 pixels), the amplitude of the tunnel (10, 30, 50, 70), the tunnel orientation (0 horizontal or 90 vertical), the camera angle (30, 40, 50 and 60 degrees) and the wall selection (front wall or floor). The combination of this independent variables resulted in 256 trials. See Fig. 2. Figure 2: Experiment parameters design The experiment was organized into 3 blocks. Each of these blocks contained 256 trials, and each of this trial represented an combination. These 3 blocks were performed by everyone of the 12 participants. This resulted in a total of 9216 trials. It is important to explain the combination. Alpha values were 0 and 90 degrees, and gamma values were floor and wall. The combination of both generated four types of crossing tasks: Floor left-toright, floor back-to-front, wall left-to-right and wall down-to-top crossing tasks, as shown in Fig. 3. Figure 3: Crossing task types 2.5 Results Movement Time ( ), (Out of the Path Movement, or time percentage that the cursor is out of the tunnel) and standard deviation were recorded in every trial. To discard wrong trials, we removed outliners with a standard deviation above 3 from the mean. Also, trials with seconds and were rejected. These parameters generated 7283 correct trials, which correspond to the 79.02% of the trials, so the error rate resulted in 20.98%, higher than expected. Data was analyzed according to the type of move, camera angle and learning block. Type of move As commented above, the combination generates four types of crossing tasks: Floor left-toright, floor back-to-front, wall left-to-right and wall down-to-top. Data was divided in this four groups looking for the steering law relation between Movement Time and Index of Difficulty. Using a linear regression method we estimated the value of the empirically determined constants and in ecuation (2) and the correlation coefficient for every group. The results are shown at Table 1. For instance, Fig. 4 shows the obtained results in "wall L2R" tasks. Table 1: Crossing task type Floor L2R Floor B2F Wall L2R Wall D2T 0.104 0.079 0.077 0.067 0.594 0.436 0.547 396 Figure 4: Front wall left-to-right 84 Camera angle The camera angle relative to the front wall was studied to look for a optimal balance between both walls. Trials were executed with angles of 30, 40, 50 and 60 degrees. In each of this groups, each one of the crossing task types was separated in order to study the correlation coefficient and the slope . Results are shown in Fig. 5 an Fig. 6. Both charts reveal a low correlation between the camera angle and the difficulty of the task. Correlation coefficient fluctuates between 0.3< <0.66, and ID slope oscillates around the interval [0.06,0.12]. Nevertheless, higher correlation an more linear slope can be observed for the Floor left-to-right task. Figure 5: Camera angle Figure 6: Camera angle slope Learning block For every participant the experiment was segmented into 3 blocks of 256 trials each. We analyzed the learning curve of this blocks looking for a decrement in ID, hence the subjects will improve their ability to navigate in this scenario. However, the results reveals that after the first block, the task difficulty remained in the same values. Results can be observed in Fig. 7, which shows the correlation coefficient and the Steering Law formula slope . Figure 7: Learning curve and Subjective evaluation After the experiment, participants were asked to answer a question paper to rate the difficulty of every type of task from 1 (very difficult) to 5 (very easy). Subjectively, the easiest average difficulty resulted Floor L2R Diff=3.4. As mentioned before, this task revealed more correlation to the steering law formula than the other task, whose subjective difficulty average was: floor B2F=2.9, wall L2R=2.8, wall D2T=2.8. 3 Discussion and future work The results of our study showed that the rejection of wrong trials produced high error rates. Aditionally, the steering law correlation was lower than expected in this type of experiment, which commonly tends to be >0.8. This can be attributed to the complexity of the task and participant’s lack of skill. Subjects had experience in performing 2D crossing tasks with common devices (mouse, pencil, brush, ...) in the real world, which has 3 dimensions. Conversely, extrapolating these tasks into a 2D screen removes the third dimension from the scenario, hence the user faces the lack of depth perception. This problem is poorly balanced with cursor shadow and cursor perspective feedback. Therefore, here lies the main disadvantage of this experiment: depth perception depends on each participant’s visual-spatial intelligence, which differs widely from one participant to another. As a consequence, Steering Law can not be generally applied in this scenario. 85 That being said, we analyze differences among the four types of crossing tasks. Floor L2R task revealed a higher correlation with the Steering Law formula than the rest. Furthermore, participants coincided to elect this task as the easier one. This may be due to the fact that participants have experience in crossing tasks over horizontal surfaces, and left-to-right movements are more suitable to human body. Concerning camera angle, we demonstrated that an appropiate angle reduces the difficulty of the task. However, this improvement is not related proportionally with the angle. On the other hand, camera perspective distorts the tunnel shape, hence its dimensions A,W and the distorted Index of Difficulty derived from them makes the Steering Law harder to apply. In summary, we presented a experiment to have a closer look to the limitations of Steering Law in a 3D scenario. We found that applying the general method for 2D steering law experiment is not enough to analyze 3D scenarios. This suggests that future work can focus on the search of dependent and influencing parameters which would define crossing tasks’ behaviour in 3D scenarios, as well as 3D crossing tasks. We expect that this report will be useful for future students to have a better understanding of 3D Steering Law applications. References [1] Accot, J., Zhai, S.: Beyond Fitts Law: Models for trajectory-based HCI tasks. In: ACM CHI, pp. 295302 (1997) [2] Ahlström, D.: Modeling and improving selection in cascading pull-down menus using Fitts law, the steering law and force fields. In: ACM CHI, pp. 6170 (2005) [3] Campbell, C., Zhai, S., May, K., Maglio, P.: What You Feel Must Be What You See: Adding Tactile Feedback to the Trackpoint. In: INTERACT, pp. 383-390 (1999) [4] Dennerlein, J., Martin, D., Hasser, C.: Force-feedback improves performance for steering and combined steering-targeting tasks. In: ACM CHI, pp. 423-429 (2000) [5] Forsyth, B., MacLean, K.: Predictive Haptic Guidance: Intelligent User Assistance for the Control of Dynamic Tasks. IEEE Transactions on Visualization and Computer Graphics 12(1), 102-113 (2006) [6] XingDong Y., Pourang I., Boulanger P., Bischof W.: A Model for Steering with Haptic-Force Guidance [7] Tatay Pascual, A. Steery: a Steering Law Experiment Platform with Phantom Omni, Ren Lab Symposium, Kochi University of Technology (2010) [8] SensAble Technologies, Inc. 15 Constitution Way, Woburn, MA 01801 www.sensable.com [9] BumpTop. Bump Technologies Inc. http://bumptop.com/ [10] Shock Desktop 3D. http://www.docs.kr/ 86