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?
0 个评论
采纳的回答
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!