FingerOscillation: Clutch-free Methods for 3D Object Translation, Rotation and Scale Siju Wu, Amine...

1
FingerOscillation: Clutch-free Methods for 3D Object Translation, Rotation and Scale Siju Wu, Amine Chellali, Samir Otmane IBISC Lab, Evry University, France Problem FingerOscillation FingerShake FingerRotate Properties Is it possible to propose a group of methods to manipulate 3D virtual objects by using finger movements in air? Can virtual objects be manipulated in a more continuous way without using a clutch gesture? How to make the interaction less tiring? The FingerShake is designed to translate virtual objects in the 3D space by using to- and-fro oscillatory finger gesture. It uses stroke orientation, stroke amplitude and oscillation frequency to control the translation movement. To translate an object, the index finger should be dragged in the wanted direction. Then by dragging the finger forward and backward alternatively, the object keep translating in the initial direction until the finger stops moving. The FingerOscillation model has the following properties: Humans are apt to make reasonably accurate cyclic gestures after training. Oscillatory gestures allows more continuous control of variables to be manipulated. Large range of hand movements are avoided and fewer muscles are involved in. No need to change the hand posture to indicate the onset and the end of the manipulation. We have proposed three techniques for 3D virtual object manipulation. Objects can be translated, rotated and scaled by using the FingerShake, the FingerRotate and the FingerSwing respectively. These three techniques refer to a more generic concept which we call the FingerOscillation. It is an elliptic oscillatory model of straight and circular periodical 3D finger movements. Abundant degrees of freedom of the model can be used to design new techniques. Objective Propose a group of manipulation techniques based on finger movements. Avoid taking use of hand and arm movements as much as possible. Design manipulation gestures which require only tiny finger motions. Instead of using discrete movements, take use of periodical finger motions to make the interaction more consistent. FingerOscillatio n Translation: FingerShake Rotation: FingerRotate Scale: FingerSwing To identify different finger strokes, we check the curvature of the trajectory in each frame. If, we segment the finger trajectory. In each frame, we use the following algorithm to control the translation. The FingerRotate uses circular periodical finger motions to rotate an object. To start the rotation, the index finger should be used to draw a circle in air. The normal vector of the circle is chosen as the rotation axis. Continue dragging the finger in a circular way can rotate the object around this axis. FingerSwing The FingerSwing allows the user to scale an object by repeating drawing half a circle. Keep drawing the upper (lower) part of the circle can magnify (shrink) the object. Is the translatio n started? N Can the trajectory be segmented? Can the previous stroke be fitted to a line? Is the first starting stroke found? Set the previous stroke as the first starting stroke Is the previous stroke in the reverse direction of the first starting stroke? Start the translation Clear the first starting stroke Can the trajectory be segmented? Refresh the translation gain Is the finger motion large enough? Y Y N N Y Translate the object Stop the translation Create a new stroke Create a new stroke N Y Y Y N Y Is the scale started? N Can the trajectory be segmented? Can the previous stroke be fitted to an arc of a circle? Is the first starting stroke found? Set the previous stroke as the first starting stroke Is the last stroke in the reverse direction of the first starting stroke? Start the scale Clear the first starting stroke Can the trajectory be segmented? Refresh the fitting circle radius Is the finger motion large enough? Y Y N N Y Zoom the object Stop the scale Create a new stroke Create a new stroke N Y Y Y N Y In each frame, we use the following algorithm to control the rotation. In each frame, we use the following algorithm to control the scale. N N N N a. b. Is the rotation started? Is the finger movement big enough? Rotate the object Can the stroke be fitted to arc of a circle? If the angle correspodin g to the arc is larger than 360? Segment the trajectory and start the rotation Stop the rotation If the angle correspodin g to the arc is larger than 360? Refresh the fitting circle radius N Y Y N N Y Y Y N N

Transcript of FingerOscillation: Clutch-free Methods for 3D Object Translation, Rotation and Scale Siju Wu, Amine...

Page 1: FingerOscillation: Clutch-free Methods for 3D Object Translation, Rotation and Scale Siju Wu, Amine Chellali, Samir Otmane IBISC Lab, Evry University,

FingerOscillation: Clutch-free Methods for 3D Object Translation, Rotation and

ScaleSiju Wu, Amine Chellali, Samir Otmane

IBISC Lab, Evry University, France

Problem

FingerOscillation

FingerShake

FingerRotate

Properties

Is it possible to propose a group of methods to manipulate 3D virtual objects by using finger movements in air? Can virtual objects be manipulated in a more continuous way without using a clutch gesture? How to make the interaction less tiring?

The FingerShake is designed to translate virtual objects in the 3D space by using to-and-fro oscillatory finger gesture. It uses stroke orientation, stroke amplitude and oscillation frequency to control the translation movement.To translate an object, the index finger should be dragged in the wanted direction. Then by dragging the finger forward and backward alternatively, the object keep translating in the initial direction until the finger stops moving.

The FingerOscillation model has the following properties:

• Humans are apt to make reasonably accurate cyclic gestures after training.

• Oscillatory gestures allows more continuous control of variables to be manipulated.

• Large range of hand movements are avoided and fewer muscles are involved in.

• No need to change the hand posture to indicate the onset and the end of the manipulation.

We have proposed three techniques for 3D virtual object manipulation. Objects can be translated, rotated and scaled by using the FingerShake, the FingerRotate and the FingerSwing respectively.

These three techniques refer to a more generic concept which we call the FingerOscillation. It is an elliptic oscillatory model of straight and circular periodical 3D finger movements. Abundant degrees of freedom of the model can be used to design new techniques.

Objective

• Propose a group of manipulation techniques based on finger movements. Avoid taking use of hand and arm movements as much as possible.

• Design manipulation gestures which require only tiny finger motions.

• Instead of using discrete movements, take use of periodical finger motions to make the interaction more consistent.

FingerOscillation

Translation:FingerShake

Rotation: FingerRotate

Scale:FingerSwing

To identify different finger strokes, we check the curvature of the trajectory in each frame. If, we segment the finger trajectory.

In each frame, we use the following algorithm to control the translation.

The FingerRotate uses circular periodical finger motions to rotate an object. To start the rotation, the index finger should be used to draw a circle in air. The normal vector of the circle is chosen as the rotation axis. Continue dragging the finger in a circular way can rotate the object around this axis.

FingerSwing

The FingerSwing allows the user to scale an object by repeating drawing half a circle. Keep drawing the upper (lower) part of the circle can magnify (shrink) the object.

Is the translation started?

N

Can the trajectory be segmented?

Can the previous

stroke be fitted to a line?

Is the first starting

stroke found?Set the previous

stroke as the first starting

stroke

Is the previous stroke in the

reverse direction of the first starting

stroke?

Start the translation

Clear the first starting stroke

Can the trajectory be segmented?

Refresh the translation gain

Is the finger motion large

enough?

Y

Y

N

N

Y

Translate the object

Stop the translation

Create a new stroke

Create a new stroke

N

Y

Y

Y

N

Y

Is the scale started?

N

Can the trajectory be segmented?

Can the previous stroke be fitted to

an arc of a circle?

Is the first starting

stroke found?Set the previous

stroke as the first starting

stroke

Is the last stroke in the

reverse direction of the

first starting stroke?

Start the scaleClear the first starting stroke

Can the trajectory be segmented?

Refresh the fitting circle

radius

Is the finger motion large

enough?

Y

Y

N

N

Y

Zoom the objectStop the scale

Create a new stroke

Create a new stroke

N

Y

Y

Y

N

Y

In each frame, we use the following algorithm to control the rotation.

In each frame, we use the following algorithm to control the scale.

N

N

N

N

a. b.

Is the rotation started?

Is the finger movement big

enough?

Rotate the object

Can the stroke be fitted to arc

of a circle?

If the angle correspoding to the arc is larger

than 360?

Segment the trajectory and start

the rotation

Stop the rotation

If the angle correspoding to the arc is larger

than 360?

Refresh the fitting circle radius

N

Y

Y

N

N

Y

Y

Y

N

N