1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
/*******************************************************************************
 * File Name         : motion_config.h
 * Description       : Tunable parameters for mower motion controller
 * Created on        : 2025-11-22
 *******************************************************************************/
 
#ifndef FML_MOTION_CONFIG_H_
#define FML_MOTION_CONFIG_H_
 
#include "HIDO_TypeDef.h"
 
/* 控制回路期望频率 (Hz) */
#define MC_CFG_CONTROL_HZ                (75.0f)
/* 最大前进 / 后退速度 (m/s) */
#define MC_CFG_MAX_FORWARD_MPS           (0.60f)
#define MC_CFG_MAX_REVERSE_MPS           (0.20f)
/* 转向角速度上限 (rad/s) */
#define MC_CFG_MAX_TURN_RATE_RAD         (0.80f)
/* 巡航基础速度与最低跟随速度 (m/s) */
#define MC_CFG_BASE_SPEED_MPS            (0.45f)
#define MC_CFG_MIN_FOLLOW_SPEED_MPS      (0.08f)
/* Pure pursuit lookahead 范围 (m) */
#define MC_CFG_LOOKAHEAD_MIN_M           (0.35f)
#define MC_CFG_LOOKAHEAD_MAX_M           (1.20f)
/* 起点/终点距离与航向容差 (m / rad) */
#define MC_CFG_START_POS_TOL_M           (0.25f)
#define MC_CFG_START_HEADING_TOL_RAD     (0.20f)
#define MC_CFG_GOAL_TOL_M                (0.30f)
/* 控制增益:航向 P/D、横向 P,以及误差→降速的比例 */
#define MC_CFG_HEADING_KP                (1.6f)
#define MC_CFG_HEADING_KD                (0.25f)
#define MC_CFG_XTRACK_KP                 (-1.0f)
#define MC_CFG_HEADING_SPEED_SCALE       (0.60f)
#define MC_CFG_XTRACK_SPEED_SCALE        (0.40f)
 
/* GGA 原点经纬高(deg/m),供 ENU 转换使用 */
#define MC_CFG_ORIGIN_LAT_DEG            (39.831706)
#define MC_CFG_ORIGIN_LON_DEG            (116.279282)
#define MC_CFG_ORIGIN_ALT_M              (4)
 
/* PWM 中值与 span,用于 forward/turn → 脉宽映射 */
#define MC_CFG_PWM_CENTER_US             (1500U)
#define MC_CFG_PWM_SPAN_US               (500U)
 
/*******************************************************************************
 * 校准参数(基于实测数据,日期:2025-12-05)
 * 前向速度模型:v = MC_CFG_FORWARD_K × (1500 - pwm) + MC_CFG_FORWARD_BIAS
 * 说明:1000 PWM = 最大前进,1500 PWM = 停止,2000 PWM = 最大后退
 *******************************************************************************/
#define MC_CFG_FORWARD_K                 (0.00196f)   // 速度系数 (m/s per PWM)
#define MC_CFG_FORWARD_BIAS              (-0.077f)    // 速度偏置 (m/s)
#define MC_CFG_FORWARD_DEADZONE_PWM      (40)          // 前进死区阈值
 
/* 转向角速度模型:ω = MC_CFG_STEERING_K × (1500 - pwm) for left/right */
#define MC_CFG_STEERING_K_LEFT           (0.00206f)    // 左转系数 (rad/s per PWM, 1000 PWM -> ~1.03 rad/s -> ~59 deg/s)
#define MC_CFG_STEERING_K_RIGHT          (0.00201f)    // 右转系数 (rad/s per PWM, 2000 PWM -> ~1.00 rad/s -> ~57 deg/s)
#define MC_CFG_STEERING_TRIM             (10)          // 转向补偿值(修正左偏)
 
/* 基于校准数据更新速度限制 */
#undef MC_CFG_MAX_FORWARD_MPS
#define MC_CFG_MAX_FORWARD_MPS           (0.56f)       // 实测最大前进速度 (1000 PWM)
 
#endif /* FML_MOTION_CONFIG_H */