A shoe-sensor for indoor positioning of humans & robots. Also an Arduino compatible programmable IMU for diverse motion sensing applicationsDesigned by oblu, Ships from India
WHAT IS oblu? oblu is an Arduino compatible, miniaturized, low cost and open source inertial sensor targeted towards wearable motion sensing applications. It provides you a platform to construct an...Read More…
oblu is an Arduino compatible, miniaturized, low cost and open source inertial sensor targeted towards wearable motion sensing applications. It provides you a platform to construct and implement your own thoughts. You are free to configure it as per your need.
The feature rich motion sensor comes pre-programmed as a shoe-sensor (Pedestrian Dead Reckoning or PDR sensor) which is highly effective for navigation under a heavy tree canopy or in the urban locality surrounded by concrete buildings & trees or inside buildings where GPS gets iffy.
oblu comes along with Android application "Xoblu" and a PC based analysis tool "MIMUscope". Also available are accessories which are helpful in getting best out of oblu.
Below animation explains how to setup oblu as a shoe-mounted Indoor GPS and how it performs PDR.
Encased sensor, i.e. sensor module + snap-fit casing + battery, are part of base offering. Elastic shoe mount and 3D printed calibration device are add-on.
We spend nearly 70% of our time indoors. Therefore, there are many applications which require indoor navigation of humans and machines. The most commonly used positioning solution is satellite based GPS/GNSS which is good for outdoor navigation. It fails in indoor environment or in urban environment which are not accessible to the clear sky. Such applications are geo-survey of slums or the areas under heavy tree canopy, indoor navigation of robots, positioning of rescue agents' for fire fighting, mining accidents, urban warfare etc.
The predecessor of oblu was introduced as a very compact shoe-sensor (or a PDR sensor) for the positioning of fire-fighters, which was later upgraded and modified as a highly configurable development platform for the makers who are looking for easy-accurate-affordable inertial sensing solution for indoor navigation of humans as well as robots.
So far, oblu's users have demonstrated its applications in tracking pedestrians, industrial safety and resource management, tactical policing, geo-survey of GPS devoid area, self navigating robot, assistive robotics, gaming, AR/VR, treatment of movement disorders, understanding physics of motion etc.
oblu is suitable for applications with space constraints, e.g. wearable motion sensing. It can also be used as a wireless IMU, thanks to the on-board Bluetooth. Presence of on-board floating point processing capability, along with four IMUs array, makes sensor fusion and motion processing possible within the module itself, which in turn results in very accurate motion sensing.
oblu is Li-ion rechargeable battery operable and allows onboard USB battery charging. It has an onboard Bluetooth (BLE 4.1) module for wireless communication. oblu hosts a 32-bits floating point microcontroller (Atmel's AT32UC3C) which allows solving complex navigation equations onboard. Therefore it performs all the motion processing itself and transmits just the final outcome. This makes integration of oblu with the associate system extremely simple. It also hosts multi-IMU (MIMU) array which allows sensor fusion and enhances motion sensing performance. MIMU approach adds to the uniqueness of oblu.
Detailed feature list:
You will find this IO map very handy. External connectors and switches are also marked. Onboard IMU ICs are marked for deeper analysis, if required:
Xoblu is a companion Android application. It performs PDR using oblu's data and utilize inbuilt features for tracking, surveying etc. on an Android smartphone. It is available for download from Play Store.
Using MIMUscope, one can log and analyze motion sensing data on a PC and modify crucial hardware settings remotely just at the push of a button.
Multi-IMU array systems like "oblu" are opening up new possibilities for inertial sensing. However, to make these systems practical, calibration and misalignment compensation of IMU arrays are necessary. A simple calibration procedure that aligns the sensitivity axes of the sensors in the array is needed. We have used a novel mechanical-rotation-rig-free calibration procedure for oblu. A simple 3D printable 20-faced polyhedron (Icosahedron) can do the job.
Note that the IMU array calibration method we follow, estimates inter IMU misalignment and the gain, bias, and sensitivity axis non-orthogonality of the accelerometers under static conditions (stationary) only. Calibration is also not performed for a range of temperature and humidity. However our calibration compensation along with a suitable algorithm and error correction mechanism gives tracking data with superior accuracy on our platforms. We have demonstrated this with oblu.
Pedestrian dead reckoning was the original intended application of oblu.
Setting up with oblu:
oblu is attached to the shoe firmly. The sensor must be steady and must not shake when the person walks. The elastic shoe mount (optional accessory) makes mounting comfortable and firm for quick demo. The sensor may embed with the shoe sole or insole with suitable form factor.
Person (Wearer) is supposed to carry an application platform which would collect sensor data and construct the path. Xoblu (Android App) for smartphone, is one such example. Shoe-sensor communicates to smartphone over Bluetooth. Basically, Bluetooth eliminates need of cable. In case of fire fighters' positioning system, smartphone maybe replaced by short range radio (e.g. UWB). One can attach sensors in both the feet and enhance the tracking performance. Remember that for dual foot configuration, application must be modified to accept data from both the sensors simultaneously and perform fusion.
Pedestrian navigation system with oblu:
Data from on-board multiple IMUs are sampled, fused, calibration compensated and undergoes navigational computation to produce displacement and orientation information of foot at every step. The oblu transmits displacement and orientation data at every step to Xoblu, in response to an appropriate command. Xoblu then, using this PDR data from the oblu, constructs and displays real-time tracked path.
How oblu performs Pedestrian Dead Reckoning:
The multi-IMU along with the complex-motion-processing-inside approach not only improves accuracy, but also simplifies data transmission to user platform. The PDR data, i.e. displacement and heading change, is transmitted at every step in a very simple format. Data transmission frequency matches with the step frequency which is typically 1 Hz for normal walk. Thus the low rate PDR data (typically few tens of bytes per second) reduces chances of transmission losses as well. The PDR data also removes computation burden from the application platform. The modular approach relaxes constraints on the integration platform, allows application engineer to focus on incremental innovation and significantly reduces time-to-market.
The robot moves in a pre-programmed path and transmits (over bluetooth) its actual movement information to a phone for real-time tracking.
With the pre-programmed firmware, oblu's internal computations are based on human walking. oblu gives out displacement between two successive steps and change in heading. How - when the foot comes in touch with the ground, speed of the sole is zero, i.e. the sole is at standstill. This way oblu detects 'steps' and corrects some internal errors. And this frequent correction of errors, results in great tracking performance. So here lies the catch. What if the robot also walks in the same fashion - move, stop, move, stop..
Infact, oblu could be used for any object whose movement has regular zero and nonzero moments.
The robot assembly consists of Arduino as a main controller, controlling motor drivers (left and right) and interfaced with oblu for motion sensing.
Arduino is pre-programmed with path and oblu is used for sensing robot's motion. oblu transmits movement information to Arduino at regular interval. Based on that, Arduino controls wheels' movements to let robot follow the predefined path. oblu simultaneously transmits movement information to smartphone for real time display.
The robot's path is programmed as a set of straight line segments. Each line segment is defined by its length and orientation with respect to the previous one. The robot's motion is kept discreet, i.e. it moves in straight line, but in smaller segments (lets call 'strides' for simplicity). At the end of every stride, oblu transmits stride length and extent of deviation (change in orientation) from straight line, to Arduino.
As per program, the robot is always supposed to move in a straight line fashion. However, it may deviate from straight line and may move at a certain angle or skewed path because of non-idealities like uneven surface, mass imbalance in robot assembly, architectural or electrical imbalance in dc motors or the random orientation of front free running wheel. In case of robot's deviation from the pre-defined straight line, Arduino corrects the alignment at every stride on receiving such information. Take one stride.. correct your heading... move forward. The robot also moves backwards if it travels more than the programmed length of that particular line segment..
The next stride length for a particular straight line segment depends upon the remaining distance to be covered in that segment. The robot takes large strides when the distance to be traveled is larger and takes smaller strides close to destination (i.e. end of every straight line segment).
IMU oblu transmits data to Arduino and phone (over bluetooth) simultaneously. Xoblu (the Android app) performs some simple computation to construct the path based on the movement information received from the robot, which is used for real-time tracking on phone. (Path construction using Xoblu is illustrated below.)
In summary, oblu senses motion and communicates movement information to Arduino and phone at regular intervals. Based on the programmed path and the motion information (sent by oblu), Arduino controls the wheels' movements. The robot's movement is NOT remotely controlled except for start/stop commands.
We recognize our top users by making them a Tindarian. Tindarians have access to secret & unreleased features.
We look for the most active & best members of the Tindie community, and invite them to join. There isn't a selection process or form to fill out. The only way to become a Tindarian is by being a nice & active member of the Tindie community!