void AP_MotorsUGV::output(bool armed, float ground_speed, float dt) { // soft-armed overrides passed in armed status if (!hal.util->get_soft_armed()) { armed = false; _throttle = 0.0f; } // sanity check parameters sanity_check_parameters(); // slew limit throttle slew_limit_throttle(dt); // output for regular steering/throttle style frames output_regular(armed, ground_speed, _steering, _throttle); // output for omni style frames output_omni(armed, _steering, _throttle, _lateral); // output for skid steering style frames output_skid_steering(armed, _steering, _throttle); // send values to the PWM timers for output SRV_Channels::calc_pwm(); SRV_Channels::cork(); SRV_Channels::output_ch_all(); SRV_Channels::push(); }
void AP_MotorsUGV::output(bool armed, float dt) { // soft-armed overrides passed in armed status if (!hal.util->get_soft_armed()) { armed = false; } // clear and set limits based on input (limit flags may be set again by output_regular or output_skid_steering methods) set_limits_from_input(armed, _steering, _throttle); // slew limit throttle slew_limit_throttle(dt); // output for regular steering/throttle style frames output_regular(armed, _steering, _throttle); // output for skid steering style frames output_skid_steering(armed, _steering, _throttle); // send values to the PWM timers for output SRV_Channels::calc_pwm(); SRV_Channels::cork(); SRV_Channels::output_ch_all(); SRV_Channels::push(); }