We present optimal sensor position for a computer mouse.
I'm Sunjun Kim, and this is a collaborative work with Byungjoo Lee, Thomas van Gemert,
and Antti Oulasvirta.
In 1968, Douglas Engelbart invented the first computer mouse, and it has dominated as a
major pointing device.
Even though there were lots of improvements in terms of technology, the key role of a
computer mouse, is always controlling a cursor, which is basically a point.
Physically, a computer mouse is a volumetric object with a certain size, which should be
abstracted into a point.
We already know various physical factors affecting the performance.
However, one key factor has not been properly studied for a decade.
Where should we place the sensor?
Should it be under the fingertip?
Should it be under the palm?
Apparently, there's no common consensus between mouse manufactures.
So, in this paper, we are tackling this problem.
Long story short, does a sensor position really matter?
Yes it does, and its effect is up to 14%.
Next question, then, where should we place the sensor?
Where's the optimal sensor position?
Our study shows that the center is good in general, however, each one may have their
personal optimal sensor position.
Then, how can I find my best sensor position?
Our variable-sensor-position mice can help you.
We propose some optimization techniques with it.
Before we get into the main story, I'd like to introduce some background why the sensor
position changes the performance.
First of all, a hand rotates while using a mouse.
You can check this rotation in the movie, even though a user is trying to draw a straight
line.
The sensor on the mouse only captures the translational movement, and ignores all the
rotations.
Because of this property, the drawn line, on the right upper, is straight even though
the mouse is rotating.
Also the sensor at different positions changes the cursor trajectories.
All the lines there are drawn from the same motion, but with different sensor positions.
The blue line is drawn from the front sensor, and the red line is drawn from the rear sensor.
The same motion may result in different cursor movement, and it may introduce difficulty
in pointing.
Regarding this problem, the latest academic paper we could find is from 1989, which concluded
the ball at the front is the best.
After this research, Microsoft started to produce a mouse with a ball at the front.
Besides that research from the 1980s, technologies have been changed a lot.
So we decided to tackle this problem again.
There are debates between gamers, which has two different abstraction models.
The difference is where to abstract to the whole mouse into a point.
The first model claims it's the fingertip, and the second claims it's the centroid of
the mouse.
To test different sensor positions as wide as possible, we fabricated two different variable-sensor-position
mice.
The first one mounted the sensor on a moving rail, and there were seven possible mounting
positions.
The second one equips two sensors, and it synthesizes a virtual sensor between them.
To synthesize a virtual sensor, we established a mathematical model.
First, we set the front sensor position to be the p=0.0, or 0%.
And the rear sensor position to be p=1.0, or 100%.
Ane the virtual sensor signal is simply the weighted sum of two.
To validate our virtual sensor model, we performed a robot arm experiment.
The robot arm moved the physical sensor mouse and the virtual sensor mouse precisely, and
we prepared two different motion plans.
The first plan moved the mouse without rotation, and the second one added rotation on it.
Without rotation, the sensor captures the planned movement precisely, and all the sensor
positions generated the same path.
We also confirmed the virtual sensor, we synthesized, is generating the same path to the physical
sensor.
When rotation is added to the movement, we can notice the rotation is distorting the
path, and the choice of sensor position systematically changes the path.
The orange one is drawn from the rear sensor, and a blue one is drawn from the front sensor.
We can notice the front sensor is drawing the wider path.
We confirmed the virtual sensor is also drawing the same path, and the discrepancy between
the physical and virtual sensors is less than 1%.
With the robot arm experiment, we conclude the virtual sensor works just like the physical
sensor.
So we only used the virtual sensor for the following experiments.
So, now it's the time to answer the questions we asked before.
The first question was, does a sensor position really matter?
To answer that question, we conducted a within-subject user study, with different sensor positions.
We collected pointing performance using the standard Fitts' Law test with 14 participants.
The result is shown in the figure.
The result is following the quadratic distribution peaked at the center, which means the centered
position works best for the participants.
The extreme positions, the frontmost and the rearmost, was slower than the center by 10%
and 14%.
Individual result shows some users has the best performance at the rear, and some users
have no advantage of changing the sensor position, and some performed the best at the slightly
forward sensor positions.
Compared to the exact centered sensor position, the personal best sensor positions performed
4% better.
Because different sensor positions generate different path, we hypothesized the performance
degradation is mainly because of the path deviation.
We measured the path error between the ideal and the actually performed path.
For example, the left and right pictures are the paths with higher deviation, and the center
one is the path with low path deviation.
We again find the quadratic distribution of the error, and the minimum error was found
at the center.
When we compared the amount of the error and the pointing performance, we could find a
strong negative correlation between them.
This suggests that the low performance maybe because of the higher error.
The user experiment answers the second question: where's the optimal sensor position?
In general, that's around the center, however, each individual may have a different optimal
position.
The final question could be how can I conveniently find where's my best sensor position.
We propose two approaches for sensor position optimization.
First one is a manual calibration.
First, set a sensor to one position and measure the performance.
Set the sensor position to another, and measure again the performance.
Set the third sensor position, measure, and so on.
You can finally find the best sensor position.
This method works, but it's tedious.
So we propose the second approach, in-task optimization.
This method consists of two parts: first, performance inference, second, Bayesian optimization.
First, we set a sensor position.
Do a normal task, and the performance inference method will measure the performance from the
task.
And Bayesian optimizer will infer the which will be the best sensor position, and suggests
the next sensor position to be tested.
Performance inference utilizes the correlation between the error and the throughput.
When performing a normal pointing, it measures the starting point and the clicked point,
and make an ideal path, and compare the performed path to calculate the error between them.
After collecting enough clicks, we can perform the Bayesian optimization.
The objective function of the optimizer is minimizing the error.
After a few iterations, it can find the best sensor position.
Please check the paper for the details.
We examined the optimization methods with one user, and the manual calibration and the
Bayesian optimization give the same results!
To conclude, the old verdict from 1989 is not true anymore.
The center position is generally better, and personalization makes it even better.
We aim to open science in this work.
All the 3D models, electronics, source code, and experimental data could be found on this
website.
Thank you for listening!