Recently, I implemented my own attitude controller just for fun. It is a one stage PID, i.e., a simpler controller than the one we have in mc_att_control.
I tested it many times in SITL and it works just fine. So I decided to test it in HIL, and I realized something weird: whenever I give a yaw command (RC control) it actually works.
I wasn't expecting it to work for manual flight modes because according to documentation all the manual flight modes send yaw rate set points and my controller just receives angles from here https://github.com/PX4/Firmware/blob/master/msg/vehicle_attitude_setpoint.msg#L2 and compute torques.
What am I reading in the yaw_body variable (yaw rate set point, yaw set point or both)? Or is it the documentation wrong?
I tested it in the STABILIZED and POSITION CONTROL modes using HIL.