Bluetooth sensor: STT-IBS

Products » Inertial motion capture » Bluetooth sensor: STT-IBS
The STT-IBS is a revolutionary 9 Degrees-of-Freedom Inertial Measurement Unit (9DOF IMU = accelerometer: Ax, Ay, Az; gyroscope: Gx, Gy, Gz; magnetometer: Mx, My, Mz; 250Hz) inertial sensor. It computes 3D rotations from the raw signals provided by the 9 sensors. The self-contained STT-IBS has everything needed for motion measurement, in a small light weight package; 36 x 15 x 46.5 mm, 30 gms. The attractive light and slim line package can easily be worn on the wrist, leg, around the waist or on any part of the body.

The STT-IBS can communicate wirelessly with either a laptop, a smartphone, a tablet, or with any Bluetooth-enabled host. This makes possible applications such as motion biofeedback or motion data logging with the sensor on your body, talking directly to a cell phone on your hip or a laptop on the desk.

Specially designed straps improve the efficiency of preparation, reducing the time needed for subject setup. It is ideal for measuring motion and orientation of any part of the human body anywhere.

Housing specifications
Dimensions (W×H×D)36×15×46.5 mm
Weight30 gr
Sensor performance
Frequency rate125 – 250 Hz
Static precision (roll, pitch, yaw)< 0.5°
Dynamic precision (roll, pitch, yaw)< 2°
Angle resolution< 0.1°
Latency4 ms
Rotational velocities±2,000 dps
Acceleration±2G and ±8G
Magnetic force±1,200 ┬ÁT
Communication ports
Bluetooth link2.0

SDK

STT’s inertial sensors provide orientations, angular velocities and accelerations with precision and in real time. The use of advanced algorithms overcomes the usual drift problems associated to the use of inertial sensors. The sensor communicates with the computer via Bluetooth or WiFi.

A set of software development tools has been especially designed for developers. With this SDK, the user can acquire the data sent by the sensor and create custom-made applications.

The key features are:

  • Integration: our SDK can be easily integrated in .NET and C++ enviroments.
  • Multiple sensors: several gyros can be connected simultaneously. Code architecture allows the developer to get an instance of the API class for each sensor.
  • Documentation and examples: complete reference manual and full source code examples in C# and C++ showing the usage of core functions.
  • Inertial sensor control: the SDK features high-level control functions such as connection/disconection of gyros, start/stop recording, data recovering in real time (quaternions, 3D matrix rotation…), sensor configuration (update, frequency, calculations on sensor), etc.

C♯ example

// Try to connect
if (!gyroAPI.Connect(1000)) {
 Console.WriteLine("Unable to open connection port.");
 return;
}

// ...

// We want to set the north and gravity as global reference frame
gyroAPI.SetUseFirstPositionAsZeroRef(false);

// We ask to get data at some frequency that could be unavailable
// depending on other choices
gyroAPI.SetHardwareFreq(double.Parse(dataFreq));

// ...

// Start the acquisition
gyroAPI.StartSerialAcquisition();

Console.WriteLine("*Starting acquisition @ {0} Hz",hardwareFreq);
Console.WriteLine(" -- Press any key to stop acquisition -- ");

// This loop ask every 20 milliseconds for all
// the acquired data since last call
AllData allData=new AllData();
int displayUpdatePeriod = 20; // never less than 5, unless a Sleep is
 // used inside the loop
int i, lastIndex=0, currentIndex=0;
do {
 // We ask for the number of processed data
 currentIndex=gyroAPI.GetNumberOfProcessedData();

 // ...
 // The loop will continue until the user hits a key or the
 // acquisition process ends for any reason
} while (gyroAPI.IsRecording(displayUpdatePeriod) &&
 !Console.KeyAvailable);

// ...

Console.WriteLine("*Stopping acquisition");
gyroAPI.StopAcquisition();