mirror of https://github.com/ArduPilot/ardupilot
removed Xtrack and increased rate error limit
This commit is contained in:
parent
285029856b
commit
bae05178f0
|
@ -34,11 +34,12 @@ static void navigate()
|
||||||
// nav_bearing will include xtrac correction
|
// nav_bearing will include xtrac correction
|
||||||
// -----------------------------------------
|
// -----------------------------------------
|
||||||
//xtrack_enabled = false;
|
//xtrack_enabled = false;
|
||||||
if(xtrack_enabled){
|
|
||||||
nav_bearing = wrap_360(target_bearing + get_crosstrack_correction());
|
//if(xtrack_enabled){
|
||||||
}else{
|
// crosstrack_correction = get_crosstrack_correction();
|
||||||
nav_bearing = target_bearing;
|
//}else {
|
||||||
}
|
// crosstrack_correction = 0;
|
||||||
|
//}
|
||||||
}
|
}
|
||||||
|
|
||||||
static bool check_missed_wp()
|
static bool check_missed_wp()
|
||||||
|
@ -101,18 +102,20 @@ static void calc_nav_rate(int x_error, int y_error, int max_speed, int min_speed
|
||||||
}
|
}
|
||||||
|
|
||||||
// find the rates:
|
// find the rates:
|
||||||
|
float temp = radians((float)g_gps->ground_course/100.0);
|
||||||
|
|
||||||
// calc the cos of the error to tell how fast we are moving towards the target in cm
|
// calc the cos of the error to tell how fast we are moving towards the target in cm
|
||||||
y_actual_speed = (float)g_gps->ground_speed * cos(radians((float)g_gps->ground_course/100.0));
|
y_actual_speed = (float)g_gps->ground_speed * cos(temp);
|
||||||
y_rate_error = y_target_speed - y_actual_speed; // 413
|
y_rate_error = y_target_speed - y_actual_speed; // 413
|
||||||
y_rate_error = constrain(y_rate_error, -250, 250); // added a rate error limit to keep pitching down to a minimum
|
y_rate_error = constrain(y_rate_error, -600, 600); // added a rate error limit to keep pitching down to a minimum
|
||||||
nav_lat = constrain(g.pi_nav_lat.get_pi(y_rate_error, dTnav), -3500, 3500);
|
nav_lat = constrain(g.pi_nav_lat.get_pi(y_rate_error, dTnav), -3500, 3500);
|
||||||
|
|
||||||
//Serial.printf("yr: %d, nav_lat: %d, int:%d \n",y_rate_error, nav_lat, g.pi_nav_lat.get_integrator());
|
//Serial.printf("yr: %d, nav_lat: %d, int:%d \n",y_rate_error, nav_lat, g.pi_nav_lat.get_integrator());
|
||||||
|
|
||||||
// calc the sin of the error to tell how fast we are moving laterally to the target in cm
|
// calc the sin of the error to tell how fast we are moving laterally to the target in cm
|
||||||
x_actual_speed = (float)g_gps->ground_speed * sin(radians((float)g_gps->ground_course/100.0));
|
x_actual_speed = (float)g_gps->ground_speed * sin(temp);
|
||||||
x_rate_error = x_target_speed - x_actual_speed;
|
x_rate_error = x_target_speed - x_actual_speed;
|
||||||
x_rate_error = constrain(x_rate_error, -250, 250);
|
x_rate_error = constrain(x_rate_error, -600, 600);
|
||||||
nav_lon = constrain(g.pi_nav_lon.get_pi(x_rate_error, dTnav), -3500, 3500);
|
nav_lon = constrain(g.pi_nav_lon.get_pi(x_rate_error, dTnav), -3500, 3500);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -128,11 +131,11 @@ static void calc_nav_pitch_roll()
|
||||||
}
|
}
|
||||||
|
|
||||||
// ------------------------------
|
// ------------------------------
|
||||||
static void calc_bearing_error()
|
/*static void calc_bearing_error()
|
||||||
{
|
{
|
||||||
bearing_error = nav_bearing - dcm.yaw_sensor;
|
bearing_error = nav_bearing - dcm.yaw_sensor;
|
||||||
bearing_error = wrap_180(bearing_error);
|
bearing_error = wrap_180(bearing_error);
|
||||||
}
|
}*/
|
||||||
|
|
||||||
static long get_altitude_error()
|
static long get_altitude_error()
|
||||||
{
|
{
|
||||||
|
@ -189,6 +192,7 @@ static long wrap_180(long error)
|
||||||
return error;
|
return error;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
static long get_crosstrack_correction(void)
|
static long get_crosstrack_correction(void)
|
||||||
{
|
{
|
||||||
// Crosstrack Error
|
// Crosstrack Error
|
||||||
|
@ -206,7 +210,7 @@ static long get_crosstrack_correction(void)
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
static long cross_track_test()
|
static long cross_track_test()
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue