This commit is contained in:
2024-05-27 21:17:40 +08:00
parent 3fe85dc7db
commit a086ce17e4
4 changed files with 12 additions and 3 deletions

View File

@@ -4,10 +4,12 @@
float (*mid_track)[2];
int32_t mid_track_count;
float pure_angle;
float pure_angle_half;
float dx_near;
float (*rpts)[2];
int rpts_num;
float last_pure_angle = 0.0f;
float last_pure_angle_half = 0.0f;
// 计算最小二乘法斜率的函数
float leastSquaresSlope(float points[][2], int n)
@@ -222,7 +224,7 @@ void MidLineTrack()
int aim_idx_judge = clip(round(aim_judge_far / RESAMPLEDIST), 0, mid_track_count - 1);
// 近锚点位置
int aim_idx_near = clip(round(0.09 / RESAMPLEDIST), 0, rptsn_num - 1);
int aim_idx_near = clip(round(aim_distance / 2 / RESAMPLEDIST), 0, rptsn_num - 1);
float dx1 = mid_track[3 * (mid_track_count / 4)][1] - mid_track[aim_idx_judge][1];
float dy1 = mid_track[3 * (mid_track_count / 4)][0] - mid_track[aim_idx_judge][0];
@@ -245,6 +247,9 @@ void MidLineTrack()
float dx = rptsn[aim_idx][1] - cx;
float dy = cy - rptsn[aim_idx][0]; // + 0.2f * PIXPERMETER;
float dn = (dx * dx + dy * dy);
float dx_half = rptsn[aim_idx_near][1] - cx;
float dy_half = cy - rptsn[aim_idx_near][0]; // + 0.2f * PIXPERMETER;
float dn_half = (dx_half * dx_half + dy_half * dy_half);
float temp_near = 0;
if (barrier_type == BARRIER_LEFT_BEGIN || barrier_type == BARRIER_LEFT_RUNNING) {
dx_near = mid_track[aim_idx_near][1] - cx + barrier_offset;
@@ -273,9 +278,12 @@ void MidLineTrack()
//pure_angle = -atanf(PIXPERMETER * 2.0f * 0.2f * 0.5f * dx / dn) / PI32 * 180.0f;
if (dy > 0) {
pure_angle = -atanf(dx / dy) / PI32 * 180.0f;
pure_angle_half = -atanf(dx_half / dy_half) / PI32 * 180.0f;
last_pure_angle = pure_angle;
last_pure_angle_half = pure_angle_half;
} else {
pure_angle = last_pure_angle;
pure_angle_half = last_pure_angle_half;
}
}