mirror of
https://github.com/PX4/PX4-Autopilot.git
synced 2026-06-01 11:06:04 +08:00
fix(mc_rate_control): remove redundant uORB copy in rate setpoint path (#26755)
Subscription::update() already copies data into the destination buffer, making the subsequent copy() call redundant. This eliminates an unnecessary memcpy every cycle on the 400 Hz rate control loop.
This commit is contained in:
@@ -179,12 +179,10 @@ MulticopterRateControl::Run()
|
||||
}
|
||||
|
||||
} else if (_vehicle_rates_setpoint_sub.update(&vehicle_rates_setpoint)) {
|
||||
if (_vehicle_rates_setpoint_sub.copy(&vehicle_rates_setpoint)) {
|
||||
_rates_setpoint(0) = PX4_ISFINITE(vehicle_rates_setpoint.roll) ? vehicle_rates_setpoint.roll : rates(0);
|
||||
_rates_setpoint(1) = PX4_ISFINITE(vehicle_rates_setpoint.pitch) ? vehicle_rates_setpoint.pitch : rates(1);
|
||||
_rates_setpoint(2) = PX4_ISFINITE(vehicle_rates_setpoint.yaw) ? vehicle_rates_setpoint.yaw : rates(2);
|
||||
_thrust_setpoint = Vector3f(vehicle_rates_setpoint.thrust_body);
|
||||
}
|
||||
_rates_setpoint(0) = PX4_ISFINITE(vehicle_rates_setpoint.roll) ? vehicle_rates_setpoint.roll : rates(0);
|
||||
_rates_setpoint(1) = PX4_ISFINITE(vehicle_rates_setpoint.pitch) ? vehicle_rates_setpoint.pitch : rates(1);
|
||||
_rates_setpoint(2) = PX4_ISFINITE(vehicle_rates_setpoint.yaw) ? vehicle_rates_setpoint.yaw : rates(2);
|
||||
_thrust_setpoint = Vector3f(vehicle_rates_setpoint.thrust_body);
|
||||
}
|
||||
|
||||
// run the rate controller
|
||||
|
||||
Reference in New Issue
Block a user