What is the difference between desired and target values in position controller?


We have tried to control a drone with acceleration input in guided mode. In the log files under PSCN, PSCE, and PSCD, there are both desired acceleration, target acceleration, and actual acceleration. Our input (aX, aY, aZ) is the same as the desired acceleration, but this is not the same as the target or actual acceleration.

It seems to me that the target acceleration is the setpoint for the PID-controller, but what is the connection between the desired input and the target value?

Desired is calculated based on the pilot’s input and vehicle’s achievable parameters.
Whereas target is the reference to the controller. The lateral controller will try to achieve the target variables.

Yes, that makes sense!

But why is there a difference between the desired and target variable?

Here is an example from the log.

The naming convention is a bit confusing, especially for lateral controllers.

The desired variables are feedforwards.
So for velocity controller,
V_target = Feedforward + Output of Position Controller.

Hence these are different. Now in the log, you should be looking at target variables only.

For a velocity controller, this makes sense. But isn’t acceleration the lowest level of controllers in the PID-loop?

We want to control the acceleration of the drone, but our input is not equal to the target acceleration for the PID controller.
How can we get Desired acceleration = Target acceleration? Or won’t that make sense at all?