I have a sensor that reads electromagnetic field strength from each position.
And the field is stable and unique for each position. So the reading is simply a function of the position like this: reading = emf(x,y,z)
The reading consists of 3 numbers (not position).
I want to find the inverse function of emf
function. Which means I want to find function pos
that is defined like this: x,y,z = pos(reading)
I don't have access to both emf
and pos
function. I think that I want to gradually estimate the pos
function using a neural network.
So I have input reading
and acceleration ax,ay,az
of the sensor through space from an IMU. The acceleration is not so accurate.
I want to use these 2 inputs to help me figure out the position of the sensor over time. You can assume that the starting position is at 0,0,0 on the first reading.
In short, input is reading
and ax,ay,az
on each timestep, output will be adjustment on the weights of pos
function or output will be position directly.
I've been reading about SLAM (simultaneous localization and mapping) algorithm and I think that it might help in my case because my problem is probabilistic. If I know accurately the acceleration, I would not need any probability, but the acceleration is not accurate.
So I want to know how do I model this problem in term of SLAM? I don't have a camera to do vision-based SLAM though.
Why I think this is tractable? If the first reading is 1,1,1
and the position is at origin 0,0,0
, and I move the sensor, the position can drift because the sensor has never seen other reading before, but after I go back to origin, the reading will be 1,1,1
again so the sensor should report the origin 0,0,0
as output. During the movement of the sensor, the algorithm should filter the acceleration so that all the previous positions makes sense.