Inspiration
The idea for an inertial navigation system (I.N.S.) came from our love for outdoor activities. A crisis can arise in the wilderness at any time, and being prepared is key. Getting lost, being stuck due to the elements, suffering an accident, etc are all things people experience. So we used our engineering skills to create a product that helps hikers and explorers maintain peace of mind during their outdoor adventures.
What it does
F.E.I.N. provides a navigational interface that tracks your movement without relying on a GPS signal, and helps you get rescued if you find yourself in a bind. It measures your movement using physical sensors and plots the path you're taking on a screen, allowing you to backtrack if you find yourself off trail. It also features a beacon system that allows the user to send a distress signal in the event of an accident, allowing first responders to locate the user faster and more efficiently. FEIN also includes features like orientation identification and fall detection.
How we built it
We started out with an MPU-6050, which is a 6 axis IMU and took a dead reckoning approach to approximate change in position and orientation using the ESP32-c3 microcontroller. We applied the kalman filter to improve our data accuracy, and used UDP (User Datagram Protocol) to transmit this processed data over wifi to our display which uses a python based GUI to plot this data on a map. We developed a matlab simulation that shows orientation and translation in a 3d space to fine tune our sensors and detect error sources. Lastly, to implement the beacon distress signal, we used an LED to physically indicate the beacon activation, and send the distress signal over UDP to a computer, due to a lack of a radio module which would be used in a real setting to transmit over long distances to first responders.
Challenges we ran into
We ran into a significant number of challenges, especially relating to sensor error and inherent problems with dead reckoning to approximate position that arise due to the double integration of source data. We attempted to mitigate these issues by using the kalman filter to reduce noise, while also calculating offset vectors to fine tune orientation and position. However, the sensors we used have an in built offset on top of drift based error, which made it difficult to fine tune our offset values. These problems on top of the issues that exist with long distance dead reckoning, made it quite challenging to acquire useful data. We have come up with some ideas to mitigate this but did not have enough time to try them out.
Another major issue we ran into was with our GPS module, which we wanted to use for initial position estimation, for a starting reference point. However, due to range limitations, we were unable to consistently replicate this use. We were able to get clean data after a significant amount of troubleshooting, but by this point, we didn't have enough time to write code to calculate position and use that in a reasonable capacity in our implementation.
Accomplishments that we're proud of
We are proud of the fact that we were able to fine tune our filters enough to get relatively good data, and do all of this data processing on board our microcontroller, programmed in c and c++. We were able to maximize the use of our limited resources to produce a working model, despite a large number of hardware related issues. Additionally, we present a robust wireless communication method over UDP which has been the one thing that has worked flawlessly. Lastly, we are also proud of creating an orientation and translation model in matlab that updates in real time and helps us analyze the data visually to identify error sources and fine tune our offsets.
What we learned
We learned how to use sensor fusion and filtering to reduce data noise, and how to choose and then employ wireless communication protocols. We learned about the problems with different sensing approaches and how to work around them. Additionally, we learned how to develop real time models that help with testing and troubleshooting.
What's next for Fully Embedded Inertial Navigator by Integrating Factor
There is a lot of work to be done to develop a working INS system for this use case using the dead reckoning approach. Using more an better sensors to minimize error and noise is the logical next step, which will be followed by the development of a more robust user interface in both hardware and software to make it field ready.
Log in or sign up for Devpost to join the conversation.