|
|
|
@ -204,8 +204,8 @@ bool AC_Circle::turn_2_circle()
@@ -204,8 +204,8 @@ bool AC_Circle::turn_2_circle()
|
|
|
|
|
_angle = wrap_PI(_angle); |
|
|
|
|
_angle_total += angle_change; |
|
|
|
|
_fabs_total = fabsf(get_angle_total()/M_2PI); |
|
|
|
|
target.x = _center.x + _radius * cosf(-_angle); |
|
|
|
|
target.y = _center.y - _radius * sinf(-_angle); |
|
|
|
|
target.x = _center.x + _radius * cosf(_angle); |
|
|
|
|
target.y = _center.y - _radius * sinf(_angle); |
|
|
|
|
if(fabs(last_bearing_rad - bearing_rad) < 0.01 && _fabs_total > 0.9){ |
|
|
|
|
_angle_total = 0; |
|
|
|
|
stage = 3; |
|
|
|
@ -231,7 +231,7 @@ bool AC_Circle::turn_2_circle()
@@ -231,7 +231,7 @@ bool AC_Circle::turn_2_circle()
|
|
|
|
|
_pos_control.set_xy_target(target.x, target.y); |
|
|
|
|
// heading is from vehicle to center of circle
|
|
|
|
|
_yaw = get_bearing_cd(_inav.get_position(), _center); |
|
|
|
|
if(is_cw_turn){ |
|
|
|
|
if(!is_cw_turn){ |
|
|
|
|
_yaw += 9000; |
|
|
|
|
}else{ |
|
|
|
|
_yaw += 27000; |
|
|
|
|