Monday, February 6, 2017

VR sword haptics

The latest virtual reality craze is great because it looks like we are finally getting some nice, relatively affordable visual displays along with integrated controller systems. I played ping pong on one and was impressed. I think that playing VR ping pong would improve someone’s ability to play ping pong IRL. That’s a test of usefulness.

But the big problem with VR is haptics. A VR system can only achieve so much by simulating vision and sound (and sometimes proprioception). To really step up the level of immersion and to open up new interaction possibilities, incorporating the sense of touch is required.

Laura, John, and I were discussing this and thought that sword haptics could be very compelling. Sword haptics have a surprisingly simple set of basic requirements: to create torques in two axes. Any hit on a sword, above the handle, could be simulated by a torque in the handle. The exception is a direct thrust down the axis of the sword, which could easily be fudged into a torque in gameplay.

It is somewhat counterintuitive to accept that only torque is required because when we imagine the case of two swords slamming together and locking (think of the two fighters staring at each other across the swords and trembling with exertion), we think of them pushing forward with their swords, not swinging. But because the point of contact is removed from the center of pressure of the wrist(s), the handle sees only a torque. The fighter’s body can only apply as much force forward as the wrists can maintain in torque with a lever arm to the point of contact. As a rough spec for testing feasibility, two human wrists on a handle can apply a torque of about 30N*m statically.

One way of implementing haptics like this is to use cables anchored to various points in a room to apply forces to the tip of a mock sword. We tested this out by building a prototype system that allowed us to move around the cable winch anchor positions in order to find a workable configuration. In order to keep up with someone swinging a ~1m long sword around, the cable reel-in/reel-out linear speed must be high (about 7m/s), but not unreasonably so. The winch system to drive the cable could cost <$100.

The problem with this approach is the tradeoff between usable space (the volume where forces on the sword tip can be controlled in all directions), and the cables interfering with the movement of the sword wielder. The usable space is defined by a convex hull with vertices at each of the anchor points, and with shallow concavities in each of the faces (because the cables must apply an exponentially increasing tension in order to achieve an outward force as the tip approaches the surfaces of the hull). There is a decent workable solution without interference if the wielder stands at or just inside the boundary of the hull, facing into it with the sword. But this limits the wielder’s flexibility to turn around or to swing the sword too far in either direction around her. On the other hand, if the player stands inside the hull, in order to have greater usable space and flexibility, the cables become even more likely to interfere. Bummer. A more complex potential solution might have the anchor points moving around so as not to interfere with the player.

Another idea for implementing a haptic sword is to use an array of gyroscopes mounted to a sword handle. The gyroscopes would be double gimbal mounted to the handle so that the handle would be able to pivot in any direction freely while the angular momentum vectors of the gyroscopes remain pointed in the same direction. In order to simulate a sword hit, both axes of each of the gimbals would be locked, thus coupling the angular momentum of the gyros to the handle. The momentum of the gyros combined with the swing of the sword would cause a reaction torque, stopping the rotation of the sword abruptly. Three gyroscopes, each mounted orthogonally to the others, would be required to ensure a reaction torque regardless of the angle of the sword or direction of swing.

Such a sword could have interesting applications, like in fencing game where blades easily deflect, and touch for only a tiny fraction of a second. However, in this unactuated implementation, the wielder of the sword would still be able to translate the sword handle without resistance. In other words, after the gyroscopes lock and stop the rotation of the sword stroke, the wielder could still push (translate) their sword right through their imaginary opponent’s sword. It wouldn’t be a very realistic feeling.

For a more realistic feeling, the gyroscopes would have to be actuated to apply a sustained torque to overpower the wrists and move the sword handle. This actuated implementation is slightly trickier to think about. The gyroscopes would effectively act as CMGs (control moment gyroscopes). Changing the direction of a gyroscope’s angular momentum by rotating it with an actuating motor causes a reaction torque about an orthogonal direction. Reaction torque equals the gyro’s angular momentum cross the angular velocity at which the gyroscope is rotated.

𝛕 = L x Ω

The entire gyroscope array would still be mounted inside one double axis gimbal. To simulate a sword impact, the gimbal axes would be locked, and then, to apply further reaction, the actuating motors would rotate a combination of the gyroscopes in the array to create the appropriate reaction torque in the handle.

Gyroscopes are magical things, but they have limitations. For one, as a CMG is torqued by its actuating motor, its angular momentum vector changes, which in turn changes the direction of the reaction torque vector. In order to maintain an output torque about an invariant axis (so that the sword hit seems like it is coming from one constant direction), two gyroscopes can be paired together in a complementary arrangement called a scissored pair. The scissored pair cancels angular momentum in the unwanted direction and results in a sinusoidal torque output in one direction. This means that in addition to varying the input angular velocity to adjust the strength of the simulated sword hit, the torquer motors must also vary their speed to maintain constant output torque. To ensure a reaction torque could be applied regardless of the angle of the sword, three orthogonal scissored pairs would be required, for a total of six gyroscopes mounted inside the gimbal to the handle. (It might be possible to generate reaction torques in all directions without scissored pairs, that is, with just three orthogonal gyros, but the scissored pair arrangement is easier to think about, simpler to control, and possibly more efficient.)

The other limitation of gyroscopes arises from the law of conservation of (angular) momentum. A gyroscope cannot be made to apply a torque about the axis along which its angular momentum is aligned. As a CMG is torqued, it gradually aligns with the direction of output torque as it transfers angular momentum to the system. When it becomes aligned, it has reached what is called saturation - it can’t transfer any more momentum in that direction. What this means for the sword is that the gyroscopes can’t sustain a simulated hit infinitely. Flight simulators have this same problem - they can’t simulate an infinite acceleration. Besides increasing the stored angular momentum, the way to get around this is to reset the angular momentum direction slowly, under a sensory threshold.

So what does this gimballed triple scissored pair system look like? It is big and heavy. If we want the sword handle to be able to apply 30N*m for a period of 1s, it would weigh around 7kg (a gallon of milk weighs 4kg) and take up a space of about 0.3m in diameter, probably very optimistically. Not exactly something that would be feasible to swing around. These numbers are based on my rough calculations assuming carbon fiber rotors spinning at about 30,000rpm, geared brushless DC torquer motors, slip rings for the gimbals, and very nice expensive design. It would be a fun optimization problem though.

What if we reduce the torque spec by about a fifth, to 6N*m? The rotors and torquer motors and gear train get somewhat smaller in size, so the diameter of the system could be reduced by about half. But the complexity of the system is still the same, so the system mass is would only be reduced by about half as well. Switching to a system with three individual gyroscopes (instead of scissored pairs) also doesn’t help much for system size and mass because the rotors have to get bigger.

So it’s not an obviously economically or practically feasible design for a consumer VR system, but it could certainly be prototyped with some money and effort.

While investigating this idea, I evaluated many other combinations of gyroscopes and gimbals to achieve the desired effects, but all ultimately had problems complexity. Reaction wheels can’t generate a high enough torque for an extended period, single gimballed scissored pairs aren’t able to decouple their momentum from the handle, and while an array of single gimballed gyroscopes potentially can, that arrangement is more complicated than a single encircling double gimbal. Gyroscopes are fun to think about!

So this idea of realistic sword haptics gets tossed for now.

hmmm, what about reaction jets???

No comments :

Post a Comment