Space Mouse Project

_

HandTracker being used to control a Cirrus Vision SF50 in X-Plane.

Overview

HandTracker is an open-source 3D mouse designed for use in CAD software and games. It has 6 degrees of freedom (DoF). It functions like a regular mouse when flat on the table, but when you lift and rotate its top shell you can, for example, control the orientation of 3D objects or viewpoints. It is built around the RP2040 microcontroller, an optical tracking sensor, and an Inertial Measurement Unit (IMU).

_

Some close-ups of the hardware.

Purpose

HandTracker was created because current 3D mice (such as the SpaceMouse product line by 3Dconnexion) control position relatively, like a joystick, rather than absolutely, like a computer mouse. The sensitivity of a relative controller can either be on the slower side or the faster side. If the user wants maximum speed as well as maximum precision, they are out of luck. Absolute control, on the other hand, allows the user to build intuitions about how rapid positional changes relate to cursor movements, allowing them to opt for speedy control without sacrificing precision by increasing sensitivity.

_ _

Circuit board schematics and layouts.

Approach

A major goal of the project was to have a 3D mouse that functions just as well as a normal computer mouse. One major roadblock to this was IMU integral drift. Affordable IMUs are noisy. They measure linear acceleration and angular velocity, and when those values are integrated to obtain position and rotation, a drift over time (integral drift) is observed. If we used IMUs to replace the standard optical sensors found in mice, the cursor would quickly drift to the edges of the screen. A standard optical sensor was used to eliminate drift in two linear DoFs (left-right & front-back), leaving four more DoFs with integral drift. To eliminate drift in roll and pitch measurements, the direction of gravitational acceleration was obtained from the IMU and then used to correct drift. For the last two DoFs, future work could involve using magnetometers to correct yaw drift, and lidar to correct up-down drift.

LMB: Rotate RMB: Pan Scroll: Zoom