IMU (Inertial Measurement Unit) - OPEN SHOE

IMU (Interfacing the OpenShoe)



                       Work on the IMU has been done in the project OpenShoe. Figure 4.1 shows how the
IMU is interface to the BeagleBoard. It consits of a foot mounted IMU. A 32-bit micro-controller
which is connected to the IMU through a SPI interface. The microcontroller processes the imu
data and gives the position and velocity estimates. The microcontroller provides a serial USB
connection where it appears as a virtual serial port. The data recieved from the IMU is then formatted , time-stamped and then transmitted over WiFi to the local station.

      Figure shows Shoe with the IMU placed in the heels and the USB connector at the shoe shafts
The implementation can be divided into following steps

(i)  Serial Port Programming
When the device is connected to the BeagleBoard it appears as a device file /dev/ttyACM0. A
packet [34 1 0 35] in unsigned integer form is sent to the microcontroller to tell it to send the
position and velocity data continuously. This command is acknowledged by a packet [198 1 36
164] and then the micro-controller starts sending data continuously.

(ii) Data Formatting
The headers are removed. The endianness of the received data is changed as the microcontroller
and the Beagleboard have different Endianness.
(iii) Adding Timestamp
The IMU has to work along with other sensors ( Video ). So it must have time information so that
we can know which IMU data corresponds to which frame in the video. The time information is
added along with the IMU data.
(iv) JSON Format
The data is the converted to JSON(Java script Objet Notation) object. It is a data interchange
standard for transmitting data over a network.
(v) Streaming Data over WiFi
This involves creating the Server and client programs. The server runs on the BeagleBoard and
the client runs on the Local Host.
(vi)  Receiving Data, parsing and Storing in a File
Receiving Data, parsing and Storing in a File The received data is then parsed using the JSON parser and then it is stored in a file. Data from multiple users will be stored in multiple files.
(vii) Realtime Plot of trajectory using GNUPlot
GNUPlot is used to plot the trajectory on the Local Station (Command Center). The GNUPlot
can be opened as a process in a C program. It will read data from all the datafiles and display a
real time plot of the Trajectory.


No comments:

Post a Comment