From: Manny on
On May 25, 3:28 pm, "andreivig" <vig.andrei(a)n_o_s_p_a_m.gmail.com>
wrote:
> Hi,
>
> I am currently working on an navigation application for an iPhone device.
> The GPS data that I receive is not very accurate and I want to use a kalman
> filter. The problem is that I don't really know how to build the kalman
> equations for x and y coordinates. What kind of model should I use?

It'd be nice if one of the heavy weights around here has a go at it.
If it's decent downto usable, just put it up at the iphone app store
and let the money roll :). There is an iphone mania out there and this
should be viewed as a resource to be tapped into.

-Momo
From: Tim Wescott on
On 05/27/2010 02:55 PM, Manny wrote:
> On May 25, 3:28 pm, "andreivig"<vig.andrei(a)n_o_s_p_a_m.gmail.com>
> wrote:
>> Hi,
>>
>> I am currently working on an navigation application for an iPhone device.
>> The GPS data that I receive is not very accurate and I want to use a kalman
>> filter. The problem is that I don't really know how to build the kalman
>> equations for x and y coordinates. What kind of model should I use?
>
> It'd be nice if one of the heavy weights around here has a go at it.
> If it's decent downto usable, just put it up at the iphone app store
> and let the money roll :). There is an iphone mania out there and this
> should be viewed as a resource to be tapped into.

No amount of software will extract non-existent information from a data
set. I've pretty much explained why it can't be done without additional
sensors. You could make a cheat that would work sometimes, but you
couldn't really make it work all the time.

If I were smart enough to make it work with that set of sensors, I'd be
smart enough to predict the stock market a day or two in advance -- and
then I wouldn't need a crummy iPhone app to get the cash rolling in.

--
Tim Wescott
Control system and signal processing consulting
www.wescottdesign.com
From: Manny on
On May 27, 11:19 pm, Tim Wescott <t...(a)seemywebsite.now> wrote:
> On 05/27/2010 02:55 PM, Manny wrote:
>
> > On May 25, 3:28 pm, "andreivig"<vig.andrei(a)n_o_s_p_a_m.gmail.com>
> > wrote:
> >> Hi,
>
> >> I am currently working on an navigation application for an iPhone device.
> >> The GPS data that I receive is not very accurate and I want to use a kalman
> >> filter. The problem is that I don't really know how to build the kalman
> >> equations for x and y coordinates. What kind of model should I use?
>
> > It'd be nice if one of the heavy weights around here has a go at it.
> > If it's decent downto usable, just put it up at the iphone app store
> > and let the money roll :). There is an iphone mania out there and this
> > should be viewed as a resource to be tapped into.
>
> No amount of software will extract non-existent information from a data
> set.  I've pretty much explained why it can't be done without additional
> sensors.  You could make a cheat that would work sometimes, but you
> couldn't really make it work all the time.
>
> If I were smart enough to make it work with that set of sensors, I'd be
> smart enough to predict the stock market a day or two in advance -- and
> then I wouldn't need a crummy iPhone app to get the cash rolling in.

I never said it has to work well, technically speaking that is. If the
user doesn't perceive a performance degradation, you can brand your
piece as something like "improving GPS readings" and include an AS IS
disclaimer. I'm pretty sure some people will buy it and that could be
enough. To rephrase, in the "long-tail" world out there, services
don't have to be that technically sound to be viable.

Ah well.

-Momo
From: Manny on
On May 26, 6:19 pm, Tim Wescott <t...(a)seemywebsite.now> wrote:
> On 05/25/2010 07:28 AM, andreivig wrote:
>
> > Hi,
>
> > I am currently working on an navigation application for an iPhone device.
> > The GPS data that I receive is not very accurate and I want to use a kalman
> > filter. The problem is that I don't really know how to build the kalman
> > equations for x and y coordinates. What kind of model should I use?
>
> I just realized that I left out my intuitive explanation of why a
> coupled IMU/GPS solution works, and why a Kalman filter helps.
>
> A GPS receiver generally does a really good job of delivering a position
> solution that is correct _on average_.  In other words, if you have a
> reasonably clear sky, and you set the receiver down in one spot where it
> won't move, you can average a bunch of position estimates from the
> receiver and get down to millimeter accuracy.  This is far more reliable
> if you have clear sky in all directions, but you can still do pretty
> well if there aren't too many confounding reflections. (obviously it
> won't work at all if you're in deep forest or underground or some other
> situation where you can't receive satellite data).
>
> But a GPS receiver is fairly poor at telling you where you are from
> moment to moment.  The position estimate jumps around, and for most GPS
> receivers it does so more when it is being moved.
>
> A six-axis IMU, i.e. three accelerometers and three gyros, does a really
> good job of telling you what's happening _this instant_ -- it measures
> acceleration and rotation, after all, which are second and first
> derivatives, respectively, of physical and angular position.
> Theoretically, if you start with a perfect IMU and a perfect model of
> the earth's gravity and motion, you can navigate all over the world,
> endlessly, with just IMU data.
>
> In practice, the IMU has its own noise and bias and drifts, so it
> doesn't work so well.  But for any given IMU you can always _start_ at a
> known position, velocity and orientation, and for some amount of time
> that varies depending on how good the IMU is, you can keep track of your
> position, velocity, and orientation.  The problem is that the worse (and
> less expensive) that the IMU is, the sooner you completely lose track.
>
> So the GPS is really good with slow position measurements, and the IMU
> is really good with fast position measurements.
>
> What a Kalman filter lets you do is to take the "GPS is good at slow"
> and "IMU is good at fast" and put them together.  It merges the data,
> smooths out the bumps, and gives you an overall system that's better
> (perhaps far better) than the GPS for instantaneous positions, and
> that's always far better than the IMU for long-term positions.  So
> there's no magic involved -- the Kalman filter is just letting
> already-existing capabilities work together.
>
> Conversely, in the case of the iPhone you only have a three-axis IMU,
> and insufficient compass resources to tell which way vertical lies.
> Without knowing the orientation of an accelerometer you have no way of
> knowing your own acceleration in any absolute sense.  As an example, if
> the accelerometer reads 9.8m/s^2 in a particular direction, you don't
> know if that means that you're standing still or if you're accelerating
> downward at 19.6m/s^2, or some combination of forward and downward
> acceleration.  Similarly, if the accelerometer says that you're
> accelerating at 10.45m/s^2, you don't know if you're staying level and
> accelerating at 7.35m/s^2 horizontally, or if you're accelerating upward
> at 2.45m/s^2, or what.
>
> So that three-axis IMU is _completely useless_ by itself for inertial
> navigation.  Even if it were perfect -- which it is not -- it is still
> delivering totally insufficient information for navigation.  Given that,
> there is no filter in the world that will rescue you with just the
> information from a GPS.  Add a good three-axis gyro and you've
> essentially got a 6-axis IMU.  Add a heading and vertical reference, and
> you're all set -- but all reasonable vertical references that work when
> you're moving need accelerometers.
>
> Much as I hate to say it, there is no software solution to this hardware
> problem.  You just can't get there from here, at least without adding
> more hardware to the solution than is to be found inside of an iPhone.

What if you had say 2 friends with you with iphones too in the same
moving car (total of three iphones). There are technicalities to do
with achievable level of synchronization say over wifi or 3g between
the three, but let's talk theoretically here: would this increased
dimensionality of sensor data help at all? And if so, what is the
required level of synchronization?

-Momo
From: Jerry Avins on
On 5/27/2010 6:28 PM, Manny wrote:
> On May 27, 11:19 pm, Tim Wescott<t...(a)seemywebsite.now> wrote:
>> On 05/27/2010 02:55 PM, Manny wrote:
>>
>>> On May 25, 3:28 pm, "andreivig"<vig.andrei(a)n_o_s_p_a_m.gmail.com>
>>> wrote:
>>>> Hi,
>>
>>>> I am currently working on an navigation application for an iPhone device.
>>>> The GPS data that I receive is not very accurate and I want to use a kalman
>>>> filter. The problem is that I don't really know how to build the kalman
>>>> equations for x and y coordinates. What kind of model should I use?
>>
>>> It'd be nice if one of the heavy weights around here has a go at it.
>>> If it's decent downto usable, just put it up at the iphone app store
>>> and let the money roll :). There is an iphone mania out there and this
>>> should be viewed as a resource to be tapped into.
>>
>> No amount of software will extract non-existent information from a data
>> set. I've pretty much explained why it can't be done without additional
>> sensors. You could make a cheat that would work sometimes, but you
>> couldn't really make it work all the time.
>>
>> If I were smart enough to make it work with that set of sensors, I'd be
>> smart enough to predict the stock market a day or two in advance -- and
>> then I wouldn't need a crummy iPhone app to get the cash rolling in.
>
> I never said it has to work well, technically speaking that is. If the
> user doesn't perceive a performance degradation, you can brand your
> piece as something like "improving GPS readings" and include an AS IS
> disclaimer. I'm pretty sure some people will buy it and that could be
> enough. To rephrase, in the "long-tail" world out there, services
> don't have to be that technically sound to be viable.

Most of us here try hard to have satisfied customers. Any indication
that we delivered less than promised would be _really_ bad for our day
jobs.

Jerry
--
Engineering is the art of making what you want from things you can get.
�����������������������������������������������������������������������