Inertia based underwater positioning system

Please register or login

Welcome to ScubaBoard, the world's largest scuba diving community. Registration is not required to read the forums, but we encourage you to join. Joining has its benefits and enables you to participate in the discussions.

Benefits of registering include

  • Ability to post and comment on topics and discussions.
  • A Free photo gallery to share your dive photos with the world.
  • You can make this box go away

Joining is quick and easy. Log in or Register now!

Messages
280
Reaction score
201
Location
South Carolina
# of dives
25 - 49
Hello everybody,

So, when I was college, for a class, we built an intertia based system to plot footsteps (ostensibly for shin splint prevention, really just as a demonstration of technical skills). It was pretty simply, just an IMU, arduino board, and a long cable running to a computer for display of values. Never worked all that well, couldn't manage the stride length we wanted it to do, and crashed after ten footsteps pretty reliably, but all of these were technical issues that, according to the people who knew about such things, were likely due to hardware limitations of our crappy knockoff arduino.

Fast forward to now. I know Sunto has a dive computer that can plot positions using similar technology, and the engineer in me can't help but think, if I could get suitable parts, it wouldn't be that hard to build a system that, when calibrated against a fixed reference point (GPS coordinates or a known landmark) could be used for underwater navigation. Now, to be 100% clear, even if I try to make this, I am not intending to use this for anything life-critical. No wreck penetrations. No cave mapping. No complex navigation in places I could get lost. I just think it'd be cool to be able to pinpoint locations in the riverbed where I find good stuff with greater precision than "I think I was about twenty feet from the boat when I found that." or "it was after I passed that big log."

And obviously I could just buy a Sunto, but there's two reasons I'm not doing that. First, the Sunto does not have real time display. If I were to build something like this, after a few iterations, I'd wanna add a basic display and overlay so that I could use it to find my way to known hotspots while under water. Second, I'm of the attitude buying something you don't need for a hobby might be unnecessary or wasteful, but building the same thing yourself never is, since you gain valuable skills by it.

So, anyway, I was wondering if anyone here has tried something like this, or knows anything about it. Yeah, I was an engineer in college, but I'm not in engineering currently, and anyhow, I was never that kind of engineer. I've reached out to some people from undergrad I know that were more into that sort of stuff, so we'll see what comes of that I guess. In the meantime, any advice from anyone with useful knowledge or experience would be appreciated.
 
I am not sure that Suunto has an IMU, I think they keep sampled data of azimuths from the compass at constant intervals, and knowing the entry AND exit points (from GPS) they sort of calculate a possible route, under some assumptions about average speed. Because it doesn't measure speed or very inaccurate/noisy, it has to assume some temporal velocity in order to plot a plausible course/solution using the azimuth data.

Without an entry and exit point they cannot plot any routes as there are infinite solutions.
 
Current?

Inertial systems only measure changes against the background environment. If that environment is dynamic, the inertial system can not give you absolute positioning. You mentioned a riverbed. There aren't many more dynamic systems than a river, with water moving at different speeds and even directions as you move through any given cross section of the river.

Aircraft inertial navigation systems deal with by using various types of external data in conjunction with the inertial information to figure out direction, speed and position.
 
I am not sure that Suunto has an IMU, I think they keep sampled data of azimuths from the compass at constant intervals, and knowing the entry AND exit points (from GPS) they sort of calculate a possible route, under some assumptions about average speed. Because it doesn't measure speed or very inaccurate/noisy, it has to assume some temporal velocity in order to plot a plausible course/solution using the azimuth data.

Without an entry and exit point they cannot plot any routes as there are infinite solutions.
The Sunnto Ocean does exactly that (GPS for entry/exit) error correction , IMU or not can’t say; but I assume still gonna have some dead reckoning drift in there
 
Current?

Inertial systems only measure changes against the background environment. If that environment is dynamic, the inertial system can not give you absolute positioning. You mentioned a riverbed. There aren't many more dynamic systems than a river, with water moving at different speeds and even directions as you move through any given cross section of the river.

Aircraft inertial navigation systems deal with by using various types of external data in conjunction with the inertial information to figure out direction, speed and position.
Respectfully, that's not correct. Inertia systems are just measuring acceleration and rotation in space and time, and neither know nor care if it's due to internal or external forces. INU (inertial navigation unit) drift is a function of the accuracy of the gyros and accelerometers, and that's why aircraft system use external aiding (generally GPS) to continuously update position.
Upshot of this is that INU equipped aircraft (like the one I fly and teach in, hence my knowledge on the subject) can compare airspeed and heading data against INU data and tel you the current wind speed and direction.
So, if the OPs diver INU also had a "water speed" sensor the software could be written to report current speed and direction too!

Respectfully,

James
 
@lowwall James is correct about the current issue as I understand it. Since an IMU (or INU, I guess? The one we used was definitely called IMU, but perhaps James was using a different version, I'm unsure) bases it strictly on intertia, it only comes into effect when the system is moving.

@BoltSnap Ooh, this could be worth looking at. Thanks for putting me onto it. I won't be buying one, but perhaps I can "borrow" some of their ideas if I end up trying this (which, transparently, will likely not happen. This is more of a thought experiment to be honest).

@Jai Bar Huh, I did not know the compass thing, or the assumed speed bit. That does knock the plausibility of this down a bit.

Beyond that, several people have raised the issue of drift, and frankly, yeah, that's probably what's going to keep this from working. Drift buildup was why the system we built in college never worked properly, and further research I've done since making this post suggests that's not something I could eliminate by, say, buying a $100 chip instead of a $15 one. I'm still wondering if there's a way to do it, either by adding an additional sensor suite, as has been suggested, or perhaps by running multiple IMU's in tandem, separately, and averaging the results. That being said, this project has definitely shifted further into the realm of "beyond what a bioengineer with about $300 can do." Still, I appreciate everyone's tips, and if anything comes of this, I'll let y'all know
 
Respectfully, that's not correct. Inertia systems are just measuring acceleration and rotation in space and time, and neither know nor care if it's due to internal or external forces. INU (inertial navigation unit) drift is a function of the accuracy of the gyros and accelerometers, and that's why aircraft system use external aiding (generally GPS) to continuously update position.
Upshot of this is that INU equipped aircraft (like the one I fly and teach in, hence my knowledge on the subject) can compare airspeed and heading data against INU data and tel you the current wind speed and direction.
So, if the OPs diver INU also had a "water speed" sensor the software could be written to report current speed and direction too!

Respectfully,

James
There's no need to disagree, we are saying the same thing in different ways.

The core of an inertial measurement system (IMS) is continued measurement of accelerations in all axes. From a known starting point, this allows you to work out your current speed, heading and location relative to your local environment.

The issue here is the relative to the local environment part. Let's take a simple example of either a perfectly neutral and unmoving diver in a current or perfectly neutral helium balloon in the jet stream. Now turn on your IMS. Since the subject is not moving relative to its surroundings, an IMS without external sensors or information can not tell that the subject is moving relative to the earth, whether it be 5km/hr for the diver or 600 for the balloon.

Real aircraft inertial navigation systems thus use multiple types of external data in addition to their acceleration measurements to figure out what's going on. For example a compass reading and a lookup against a database of magnetic declinations will provide the aircraft's true heading. The IMS can compute wind direction based on the difference between true heading and the heading that was calculated by its acceleration measurements. It then uses the wind direction information to modify its position calculations.

The problem with what the OP wants to do (as I understand it anyway), is that his IMS will be working only from inertial data and thus there's no way to compensate for movement of the water such as current. A "water speed sensor" doesn't help you since again it's only giving the speed relative to your local environment.
 
There's no need to disagree, we are saying the same thing in different ways.

The core of an inertial measurement system (IMS) is continued measurement of accelerations in all axes. From a known starting point, this allows you to work out your current speed, heading and location relative to your local environment.

The issue here is the relative to the local environment part. Let's take a simple example of either a perfectly neutral and unmoving diver in a current or perfectly neutral helium balloon in the jet stream. Now turn on your IMS. Since the subject is not moving relative to its surroundings, an IMS without external sensors or information can not tell that the subject is moving relative to the earth, whether it be 5km/hr for the diver or 600 for the balloon.

Real aircraft inertial navigation systems thus use multiple types of external data in addition to their acceleration measurements to figure out what's going on. For example a compass reading and a lookup against a database of magnetic declinations will provide the aircraft's true heading. The IMS can compute wind direction based on the difference between true heading and the heading that was calculated by its acceleration measurements. It then uses the wind direction information to modify its position calculations.

The problem with what the OP wants to do (as I understand it anyway), is that his IMS will be working only from inertial data and thus there's no way to compensate for movement of the water such as current. A "water speed sensor" doesn't help you since again it's only giving the speed relative to your local environment.
It would seem we are talking past each other... I'm fully and deeply aware of how inertial navigation works (I use and teach it professionally). As long as the system is initialized from a stop (stationary relative to earth), it doesn't matter what wind or current does. The accelerometers don't know or care if the motion was initiated by the diver or the current he is in... And the data drift will be due to sensor accuracy, nothing directly due to current/wind.

Respectfully,

James
 

Back
Top Bottom