mirror of
https://gitee.com/mirrors_PX4/PX4-Autopilot.git
synced 2026-04-14 10:07:39 +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:
parent
9535559025
commit
71e673bec2
@ -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
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user