Thrust setpoint linearly increases the PWM output. Should it?

I just realized that thrust setpoint in MAVROS/MAVLINK linearly increases the PWM output (servo_1/2/3/4_raw).

More specifically,
servo_1/2/3/4_raw = 2000*thrust_setpoint
at hovering.

Since PWM output is linearly proportional to rotor speed, and THE SQUARE of rotor speed is proportional to the thrust it produces, the square of PWM output should be proportional to produced thrust.

Does this mean that thrust setpoint is actually not proportional to actual thrust it produces?

Since PWM output is linearly proportional to rotor speed,

@kangmin7 This is not necessarily true. It depends on your ESC and the load of the motors. The thrust setpoints are normalized thrust values between max thrust(1) and min thrust(-1) - which for PWM driven ESCs map to PWM values.

1 Like

Jaeyoung thank you for your response!

I guess you are correct, but I still don’t understand if thrust setpoint has anything to do with thrust (force).

Also, if I understood correctly, PWM output comes directly from the mixer in PX4 (tell me if this is wrong). However, almost every paper I read about motor mixing maps roll/pitch/yaw torque + total thrust with either individual thrust of motors or the square of motor velocity, not PWM output. So, how does PX4 still work so well?

Sorry if that was off-topic, but help me out with my confusion please

Thank you,

Regarding the thrust curve, you might be interested by this: Multicopter PID Tuning Guide (Advanced/Detailed) | PX4 User Guide

1 Like

Thank you bresch!

So the parameter THR_MDL_FAC can help mapping the PWM output with expected thrust!