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

3 ビュー (過去 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 件)

カテゴリ

Help Center および File ExchangeInertial Sensor Fusion についてさらに検索

製品


リリース

R2021a

Community Treasure Hunt

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

Start Hunting!

Translated by