SITL: fixed SITL for tilted motors
vector math was done in the wrong order
This commit is contained in:
parent
9986fb9726
commit
388b04d671
@ -98,17 +98,17 @@ void Motor::calculate_forces(const struct sitl_input &input,
|
||||
}
|
||||
last_change_usec = now;
|
||||
|
||||
// calculate torque in newton-meters
|
||||
torque = (position % thrust) + rotor_torque;
|
||||
|
||||
// possibly rotate the thrust vector and the rotor torque
|
||||
if (!is_zero(roll) || !is_zero(pitch)) {
|
||||
Matrix3f rotation;
|
||||
rotation.from_euler(radians(roll), radians(pitch), 0);
|
||||
thrust = rotation * thrust;
|
||||
torque = rotation * torque;
|
||||
rotor_torque = rotation * rotor_torque;
|
||||
}
|
||||
|
||||
// calculate total torque in newton-meters
|
||||
torque = (position % thrust) + rotor_torque;
|
||||
|
||||
if (use_drag) {
|
||||
// calculate momentum drag per motor
|
||||
const float momentum_drag_factor = momentum_drag_coefficient * sqrtf(air_density * true_prop_area);
|
||||
|
Loading…
Reference in New Issue
Block a user