Open source embedded foot-mounted INS
OpenShoe is an open source embedded foot-mounted INS implementation including both hardware and software design. A cross section of a shoe with a unit of the implementation integrated into the sole can be seen above. To our knowledge, this is the only implementation of its kind.
The implementation has been done with the hope that it will save time, sweat, and tears for navigation researchers as well as facilitate the use of the technology by researchers not specialized in aided INS, e.g. in fields such as biomedical engineering, behavioral science, and ubiquitous computing. The value of the embedded implementation also lies in its modularity and in its small weight, bulk, and price in comparison with the typical sensor-plus-laptop research systems. These properties alleviate the work of integrating the foot-mounted INS in larger realtime pedestrian navigation systems, and make it feasible to equip a larger number of users with footmounted INS units for field performance tests and cooperative navigation studies.
General features of the implementation:
- Embedded ZUPT aided INS
- Open source and fully documented
- Reproduction cost below $800
- Designed for an Analog Devices ADIS16367 IMU but with interface compitability with all IMUs in the iSensor serie
- 820[Hz] sampling rate, 18[g] and 1200°/s dynamic range, 330[Hz] sensor bandwidth using the ADIS16367 IMU
- Atmel AVR32UC3C microcontroller with hardware floating point
- Footprint 28.5x32x40.5[mm]
- USB interface
- Source code written in C
- Easily configured to run any user implemented algorithms
- Matlab code available for communication
- Reprogrammable through the USB interface.
- Appear as a virtual com-port
- Configurable to work as an IMU, as a stand-alone ZUPT-aided INS, and as a displacement and heading change sensor.
The system is easily reproducible. On this site you can find:
- Precompiled code
- Fully documented C source code
- Production files for PCB/PCA and casing
For a more detailed presentation of the implementation, see the article Foot-mounted INS for Everybody — An Open-Source Embedded Implementation (opens in a new tab).
We hope that you find the implementation interesting and usefull. If you have any questions, comments, suggestions, or enquiries, please contact us at firstname.lastname@example.org.
/The OpenShoe team
Almost there …
February 22, 2014, Posted by: John-Olof
Perhaps a little bit of an exaggeration. What you see is the first “assembled” new module (without casing and battery). Unfortunately, it doesn’t work! Fortunately, it’s not really due to the system design but rather due to problems we have encountered in populating the boards. We have been able to verify the functionality of most subsystems on the board, but have not been able to populate a single board in which everything works. Consequently, we will have to go for a second generation with a somewhat different approach for the assembly. Maybe a month … Stay tuned!
February 17, 2014, Posted by: John-Olof
As I have previously noted in a post, we have recently been developing a massive-MIMU (multi-IMU) platform from single-chip IMUs. (The abbreviation is partially a play with the common MIMO (multiple-input-multiple-output) abbreviation within the field of communication and also the term massive-MIMO to describe MIMO systems with alot of antennas.) At the movement the platform looks like this:
The platform will be presented on the upcoming ISISS conference 25–26 Feb 2014 in Laguna Beach CA, USA. Massive-MIMU is to some extent a separate research track but also constitute an experimental platform for the development of new OpenShoe modules.
The plan is to release the whole platform open-source under the Massive-MIMU section (and of cause on sourceforge). The software part is already in place at sourceforge, specifically in this file. This we have been running and developing since the autumn. We are currently working on a second generation of the MIMU platform which will hold 32-IMUs (which will truly make it a massive-MIMU platform). However, throughout the development we have come to realize that we want to make some changes which will affect the software. Consequently, we have been a little reluctant to put up the old generation of boards since we do not place to support them in the future. If you really want the schematic and layout of the old boards, please send us an e-mail and I will be happy to provide it. Otherwise, I hope you can be patient until we finish the new generation.
February 17, 2014, Posted by: John-Olof
Last week, I finally finished and pushed some updates/new development of the software onto SourceForge. What has been constructed is what I call an inertial frontend. The basic idea is:
In words it’s a processing block (group of routines together with some state variables) which package and performs all the processing prior to the inertial navigation, i.e. calibration compensation (and fusion of array data), test statistics calculation and thresholding for the ZUPTs, and some online bias estimation. This is processing which is tightly connected with the IMU and rather independent of the inertial navigation. The most significant attributes of the frontend is that it’s completely implemented with integers arithmetic (so that it could potentially be placed in a processing unit embedded with the IMU) and the test statistics is implemented in a recursive form (which makes the computation significantly less expensive to start with and also independent of the window size). This far it seems to be working great. We’ve used a crude version of it since april last year so I don’t expect any larger problems with it but be aware that it’s not been thoroughly tested yet. This far the code and the underlying theory is pretty much only documented in various technical notes on my computer but hopefully I will have time to gather it in a paper soon. Anyway, now you know roughly what the 400-line block of obscure code is doing.
January 30, 2014, Posted by: John-Olof
We are currently in a period of intensive development. We have now used our units for over two years. During this period we have learnt a lot and the development on the sensor market has been significant. To take advantage of this we are now developing a new generation of the modules as well as making significant updates to the embedded software. The targeted features for the new modules are:
– Single chip IMUs (lower cost and profile)
– Wireless and battery powering
– Inclusion of a memory
After a stopover at IISc, John-Olof is at IIT Kanpur (India) since a week back in time. Here the target is to carry out the development in cooperation with GT Silicon Pvt Ltd, an electronic systems design company with whom we have had a long relation.
Currently, we are in a PCB design and fabrication phase. The IMU array boards which were briefly mentioned in this post is to some degree a predecessor of these modules (as well as a separate track in terms of research) and have been acting as testboards for some embedded software-hardware design ideas. In parallel with the development with the new modules, we are working on the software. Some of the software updates are already available on Source Forge. For example support for the IMU array is already there. Currently a complete measurement frontend is under development.
More information will be posted shortly.
Real world tests
January 15, 2014, Posted by: John-Olof
As previously said, we have used the OpenShoe units to build a complete infrastructure free cooperative localization system. A couple of month ago we did some little larger field tests for the first time, with smokedivers from a nearby firedepartment. One of the tests runs can be seen in the following vide clip. This gives a high level example of the potential of the implementation. Enjoy!