SET_POSITION_TARGET_GLOBAL_INT not working with velocity ignored

While testing guided mode in the 4.1.0 beta (SITL), I came across the following behavior if the ignore bitmask is set to ignore velocity:
As long as the target is being sent, the drone does not change position, it only aligns with target yaw angle.
When the target stops being sent, the drone will proceed to reach the target position.
When I start sending the target again, the drone stops moving until I stop sending the target.

Seems like the opposite of what should be happening
Was there some change in the ignore logic?

That part of the code is under heavy development.
see https://github.com/ArduPilot/ardupilot/pull/17539

@Pokornz,

Thanks for testing and reporting back.

You’ve bumped into a known issue with 4.1.0-beta5 (and earlier)'s guided mode. Since the introduction of “SCurves” it no longer handles fast updates to the position target. There are a couple of solution though:

  • wait for -beta6 which will include the Guided mode fix that @amilcarlucas refers to
  • instead of providing position target updates at a fast rate, switch to using the velocity controller which can handle fast updates) or slow down the speed of the position target updates. If the position targets update at least than once every 5 sec it should be ok.
1 Like

Thank you for the info. I will just set velocity to 0, as I don’t see any drawbacks there for my application.

On an unrelated note, is there going to be some documentation of the updated control system? It would be nice to also have a control diagram from the velocity setpoint all the way to motor outputs to make it easier to put the guided mode into outer control loop (changing the velocity setpoint based on some feedback).

Yes, the control system is depicted here: Now that I have system identification data, what do I do?

1 Like

Very nice! Is the “Target Rate” angular rate?
If yes, is there going to be a version that includes target posvel? (translation control preceding angular control)