Use local NED coordinate system in fusegps (insfilterMARG - Sensor Fusion and tracking toolbox)

조회 수: 15(최근 30일)
Hello,
I am doing sensor fusion with the Sensor Fusion and Tracking Toolbox. In particular, I want to estimate the pose (orientation and position) with the filter insfilterMARG. This filter estimates the pose from accelerometer, gyroscope, magnetometer and GPS readings. The GPS readings are provided to the filter with the fusegps function, which takes the values in the lla format (latitude, longitude, altitude).
I need to use the local NED format to provide the position measurement to the fusegps function. I know that it is of course possible to convert these NED values to lla (with the local2latlon function). However, to do this we naturally need to provide the geographic coordinates of the origin, which in this particular case is something that I do not have access to.
Is there any way to only use local coordinates for the filter "GPS" updates, without the need for the geographic coordinates of the local reference point?

채택된 답변

Ryan Salvo
Ryan Salvo 2021년 8월 3일
Hi Pere,
There are two options to use local coordinates for the filter "GPS" updates. You can either use the correct object function on insfilterMARG, or use the default reference location of [0 0 0].
filt = insfilterMARG;
stateIdx = stateinfo(filt);
gpsPos = [1 2 3]; % GPS position measurement in local coordinates (m)
Rpos = 1; % Covariance of GPS position (m^2)
correct(filt, stateIdx.Position, gpsPos, Rpos)
OR
lla0 = [0 0 0];
filt = insfilterMARG;
filt.ReferenceLocation = lla0;
gpsPos = [1 2 3]; % GPS position measurement in local coordinates (m)
Rpos = 1; % Covariance of GPS position (m^2)
gpsLLA = ned2lla(gpsPos, lla0, "ellipsoid");
fusegps(filt, gpsPos, Rpos);
Thanks,
Ryan

추가 답변(0개)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by