-
Notifications
You must be signed in to change notification settings - Fork 17.9k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
EKF: support passing in an external position estimate #23903
Conversation
See tridge#41 |
Very interesting, I was thinking about doing something like this with an image tracking camera. Why wouldn't we go through the AP_VisualOdometry library though and use one of the many existing vision-position messages? |
a few reasons. First, we want the ACK/NACK as it is nacked when we are not in AID_NONE. Secondly, we need the dual timestamp to cope with much longer than normal lag - it would be beyond fusion horizon if done via vision msgs. |
log from a CubeOrange quadplane (MakeFlyEasy Hero): |
I'd like to discuss this a bit before we merge. Obviously the functionality is great, it's just the architecture and possibly message name. Also I've got a similar change that adds a position reset for vision-position sources and I'd like us to make sure they're consistent. PR coming for that later today. |
Here's my related PR:
|
needs #if for flash cost, 2M boards only |
const uint32_t timeStampConstrained_ms = MAX(MIN(timestamp_ms, imuSampleTime_ms), imuSampleTime_ms - 5000); | ||
const int32_t delta_ms = int32_t(imuDataDelayed.time_ms - timeStampConstrained_ms); | ||
const ftype delaySec = 1E-3F * ftype(delta_ms); | ||
const Vector2F newPosNE = EKF_origin.get_distance_NE_ftype(loc) - stateStruct.velocity.xy() * delaySec; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@priseborough @tridge I might look at this the wrong way but shouldn't this be a positive sign here?
This allows for a position update from an external source such as someone spotting a landmark with an FPV camera.
MAVProxy support here:
ArduPilot/MAVProxy#1186
needs this mavlink PR: ArduPilot/mavlink#318