Accessibility/Input

From OLPC
Jump to navigation Jump to search

To help children with physical disabilities preventing them from using a keyboard or mouse, it is useful to explore alternative input methods. With an onboard webcam, vision based mice are possible.

Head/Eye Tracking

Using a vision library like OpenCV, head tracking is possible on the XO at approximately 10 frames per second. This may be adequate for browsing around the operating system, but it would make typing on an on screen keyboard frustrating. It may be necessary to look into alternative tracking algorithms. Another disadvantage is that tracking head movement requires an amount of movement that may be excessive for those with limited head movement.

A better approach would be to take into account eye position, similar to what is done in IBM's Head-Tracking Pointer. This allows accurate control with only limited face movement.

LED/IR LED Tracking

LED tracking is far easier to implement and takes significantly less processing power. It is also more accurate in good conditions. One downside is that background light could potentially throw off the reading, but using a specifically colored LED can resolve some of that. The other issue is that it would require an additional piece of hardware that may be difficult for an end user to build or acquire.

While IR LEDs are typically used in mice like this, it appears that the XO's webcam has an IR filter. This may prevent IR from being a feasible solution.

Ah, but the IR filters in cameras (even reasonably good ones) do not filter out all of the IR light. For example, if you look at the IR emitter of a remote control through a camera, the preview will show the signal being sent if you press a button on the remote.

The simplest hardware implementation for an LED tracker would be an LED and resistor attached to a wire and powered from one of the USB ports. The LED could then be attached to a headband or glasses clip. Alternately, the LED or IR LED could be attached to the XO, and a reflective sticker could be placed on the user.

See Also