diff --git a/APMrover2/mode.cpp b/APMrover2/mode.cpp index a815f8a3c0..c44a3d1e4e 100644 --- a/APMrover2/mode.cpp +++ b/APMrover2/mode.cpp @@ -511,7 +511,7 @@ void Mode::calc_steering_from_lateral_acceleration(float lat_accel, bool reverse g2.motors.limit.steer_left, g2.motors.limit.steer_right, rover.G_Dt); - g2.motors.set_steering(steering_out * 4500.0f); + set_steering(steering_out * 4500.0f); } // calculate steering output to drive towards desired heading @@ -527,7 +527,7 @@ void Mode::calc_steering_to_heading(float desired_heading_cd, float rate_max_deg g2.motors.limit.steer_left, g2.motors.limit.steer_right, rover.G_Dt); - g2.motors.set_steering(steering_out * 4500.0f); + set_steering(steering_out * 4500.0f); } // calculate vehicle stopping point using current location, velocity and maximum acceleration @@ -555,6 +555,11 @@ void Mode::calc_stopping_location(Location& stopping_loc) stopping_loc.offset(stopping_offset.x, stopping_offset.y); } +void Mode::set_steering(float steering_value) +{ + g2.motors.set_steering(steering_value); +} + Mode *Rover::mode_from_mode_num(const enum Mode::Number num) { Mode *ret = nullptr; diff --git a/APMrover2/mode.h b/APMrover2/mode.h index ece25b85d8..84d31e146e 100644 --- a/APMrover2/mode.h +++ b/APMrover2/mode.h @@ -195,6 +195,7 @@ protected: // steering_out is in the range -4500 ~ +4500 with positive numbers meaning rotate clockwise // throttle_out is in the range -100 ~ +100 void get_pilot_input(float &steering_out, float &throttle_out); + void set_steering(float steering_value); // references to avoid code churn: class AP_AHRS &ahrs; diff --git a/APMrover2/mode_acro.cpp b/APMrover2/mode_acro.cpp index 19fe822267..d1881e17c8 100644 --- a/APMrover2/mode_acro.cpp +++ b/APMrover2/mode_acro.cpp @@ -43,7 +43,7 @@ void ModeAcro::update() rover.G_Dt); } - g2.motors.set_steering(steering_out * 4500.0f); + set_steering(steering_out * 4500.0f); } bool ModeAcro::requires_velocity() const diff --git a/APMrover2/mode_guided.cpp b/APMrover2/mode_guided.cpp index 7c26626f15..59c56100a1 100644 --- a/APMrover2/mode_guided.cpp +++ b/APMrover2/mode_guided.cpp @@ -80,7 +80,7 @@ void ModeGuided::update() g2.motors.limit.steer_left, g2.motors.limit.steer_right, rover.G_Dt); - g2.motors.set_steering(steering_out * 4500.0f); + set_steering(steering_out * 4500.0f); calc_throttle(_desired_speed, true, true); } else { // we have reached the destination so stay here diff --git a/APMrover2/mode_steering.cpp b/APMrover2/mode_steering.cpp index 32289e310d..f7fd78651f 100644 --- a/APMrover2/mode_steering.cpp +++ b/APMrover2/mode_steering.cpp @@ -28,7 +28,7 @@ void ModeSteering::update() g2.motors.limit.steer_left, g2.motors.limit.steer_right, rover.G_Dt); - g2.motors.set_steering(steering_out * 4500.0f); + set_steering(steering_out * 4500.0f); } else { // In steering mode we control lateral acceleration directly. // For regular steering vehicles we use the maximum lateral acceleration