The 3X embedded in a bread roll for (void*).
To reach this goal, we require not only sensors but a framework for
interpreting their data and simple effective feedback channels. The work
to date has been to design and build a compact inertial measurement unit
(see above) as a development platform. My thesis work will concentrate
on creating a general framework for manipulating data, recognizing gestures,
and providing feedback, with the goal of implementing Seymour Papert's
vision of a set of juggling balls that can teach you how to juggle. Doing
this processing on board the device as opposed to on a desktop computer
is a goal for future work.
In hopes of moving beyond ad hoc gesture recognition method, we are building a generalized framework for filtering IMU data and using it for gesture recognition. The initial design will be based on Kalman filter for data filtering and a modified hidden Markov model scheme for interpretation. The goal is that regardless of the implementation, a user should be able to build, with reasonable ease (hopefully in a scripting language), an appropriate analysis system in a reasonable time.
Also, we will examine feedback schemes from this device. Given
its size and potential applications, the initial assumption is that we
will be limited to simple sounds and/or flashing lights with which to communicate
to the user, making it non-trivial to convey a reasonable range of information
to the user. We require that the feedback mechanisms be on the interface,
in hopes of narrowing the gap between an event and user feedback, which
will contribute greatly to the success of reinforcement learning schemes.
Hardware block diagram
The hardware goals for this project are:
Therefore, we decided to construct our own proprietary system. The final design, shown at the top, is a cube 1.25” on a side (approximately the size of a half-dollar). Note that the hardware is small enough that it may be easily adapted to a multitude of interfaces. The block diagram for this hardware can be seen above. Two sides of the cube contain the inertial sensors. Rotation was detected with single axis Murata ENC03J piezoelectic gyroscopes . The acceleration is measured with two-axis Analog Devices ADXL202 MEMS accelerometers . The sensor data are inputted into an Analog Devices ADuC812 microcontroller (on the third pane) with 12 bit analog to digital converter (ADC) and an 8051 microprocessor core. Gyroscope data are collected using the ADC, while the accelerometer data are collected via timing measurements. The raw sensor values are transmitted using an RF Monolithics module to a separate base station, which then connected to the gesture recognition hardware via a serial link. A separate frequency channel is used for the left and right buns, 916.5 and 315.0 MHz respectively. Note that the microprocessor can be programmed in-place, allowing for easy development.
In addition, there is a single wide (1” sq.) electrode and driving circuitry provided for external, non-contact proximity signaling, in the same vein as the Personal Area Network. A kHz range square wave driven into this signaling device will capacitively couple into a nearby electrode, with the magnitude of the signal depending on the inverse of the separation. Since the frequency of the driving signal is known, the received signal can be bandpassed to allow for very high signal to noise ratios. A receiving board, with eigth electrode inputs and two different bandpass filters, was constructed and connects to the gesture recognition computer via a serial link. Since the buns operate as a pair, only one of the two requires a transmitting electrode.
The complete system draws 23 mA while operational, and runs for about 50 hours on two Lithium Manganese batteries (from Tadiran Inc.) placed in parallel. These batteries are also small enough to fit inside of the cube formed by the hardware. Additionally, a power monitor on the microcontroller is used to monitor the batteries for failure.
The net cost of the system, in prototype quantities, is approximately