e720009794
- motor_update: boost从乘法改为固定值26 - 删除废弃的font_bitmap.h中文渲染代码(已改用PNG) - 移除无源码的lcd_test编译目标 - 设备speed=20
108 lines
5.2 KiB
C++
108 lines
5.2 KiB
C++
#ifndef GLOBAL_H
|
|
#define GLOBAL_H
|
|
|
|
#include <string>
|
|
|
|
// ── 参数文件名 ──
|
|
const std::string kp_file = "./kp";
|
|
const std::string ki_file = "./ki";
|
|
const std::string kd_file = "./kd";
|
|
|
|
const std::string start_file = "./start";
|
|
const std::string showImg_file = "./showImg";
|
|
const std::string destfps_file = "./destfps";
|
|
const std::string foresee_file = "./foresee";
|
|
const std::string foresee_lost_scale_file = "./foresee_lost_scale";
|
|
const std::string sharp_turn_scale_file = "./sharp_turn_scale";
|
|
const std::string zebrasee_file = "./zebrasee";
|
|
const std::string saveImg_file = "./saveImg";
|
|
const std::string speed_file = "./speed";
|
|
const std::string deadband_file = "./deadband";
|
|
const std::string steer_gain_file = "./steer_gain";
|
|
const std::string center_bias_file = "./center_bias";
|
|
const std::string debug_file = "./debug";
|
|
|
|
const std::string cone_avoid_gain_file = "./cone_avoid_gain";
|
|
const std::string cone_avoid_range_file = "./cone_avoid_range";
|
|
const std::string cone_speed_file = "./cone_speed";
|
|
const std::string cone_min_frames_file = "./cone_min_frames";
|
|
const std::string cone_margin_file = "./cone_margin";
|
|
const std::string cone_thresh_file = "./cone_thresh";
|
|
const std::string cone_hold_frames_file = "./cone_hold_frames";
|
|
const std::string cone_return_gain_file = "./cone_return_gain";
|
|
const std::string cone_return_frames_file = "./cone_return_frames";
|
|
|
|
const std::string brake_scale_file = "./brake_scale";
|
|
const std::string brake_max_file = "./brake_max";
|
|
|
|
const std::string curve_slope_file = "./curve_slope";
|
|
const std::string curve_min_file = "./curve_min";
|
|
|
|
const std::string lidar_thresh_file = "./lidar_thresh";
|
|
const std::string lidar_pre_file = "./lidar_pre";
|
|
const std::string lidar_near_file = "./lidar_near";
|
|
const std::string lidar_far_file = "./lidar_far";
|
|
const std::string lidar_near_start_file = "./lidar_near_start";
|
|
const std::string lidar_near_end_file = "./lidar_near_end";
|
|
const std::string lidar_far_span_file = "./lidar_far_span";
|
|
const std::string lidar_min_frames_file = "./lidar_min_frames";
|
|
const std::string lidar_avoid_gain_file = "./lidar_avoid_gain";
|
|
const std::string lidar_avoid_range_file = "./lidar_avoid_range";
|
|
const std::string lidar_speed_file = "./lidar_speed";
|
|
const std::string lidar_hold_frames_file = "./lidar_hold_frames";
|
|
const std::string lidar_enable_file = "./lidar_enable";
|
|
|
|
double readDoubleFromFile(const std::string &filename);
|
|
bool readFlag(const std::string &filename);
|
|
void cfg_load_all();
|
|
|
|
// ── 启动时缓存的运行参数 ──
|
|
struct CfgCache {
|
|
double speed = 60; // 目标速度(占空比 %)
|
|
double foresee = 80; // 前瞻行
|
|
double foresee_lost_scale = 0.7; // 丢线时前瞻缩放 (<1=看更远)
|
|
double sharp_turn_scale = 0.5; // 急弯时前瞻缩放 (<1=看更远)
|
|
double zebrasee = 60; // 斑马线触发距离阈值
|
|
double deadband = 5; // 舵机死区
|
|
double steer_gain = 1.0; // 舵机增益
|
|
double center_bias = 0; // 中线偏移修正
|
|
int start = 0; // 1=启动 0=停止
|
|
int showImg = 0; // LCD 预览开关
|
|
int debug = 0; // debug 模式
|
|
|
|
double cone_avoid_gain = 0.3; // 锥桶中线变形推离量 (归一化)
|
|
int cone_avoid_range = 30; // 变形斜坡陡峭度
|
|
double cone_speed = 0.5; // 锥桶触发时速度倍率
|
|
int cone_min_frames = 1; // 确认帧数 (1=单帧即确认, 视觉巡线响应快导致检测窗口极短)
|
|
int cone_margin = 0; // 0=中心点 1=框边缘
|
|
double cone_thresh = 0.80; // 锥桶置信度阈值
|
|
int cone_hold_frames = 15; // 锥桶消失后保持变形的帧数
|
|
double cone_return_gain = 1.0; // 回弹力度 (倍乘, 1.0=等同于避让力度)
|
|
int cone_return_frames = 30; // 回弹持续帧数
|
|
|
|
double brake_scale = 10; // 速度(pps) → 刹车占空比(ns) 缩放系数
|
|
int brake_max = 10000; // 最大刹车占空比 (ns)
|
|
|
|
double curve_slope = 0.4; // 弯道减速斜率 (越大越猛)
|
|
double curve_min = 0.8; // 弯道最低速度倍率
|
|
|
|
int lidar_thresh = 300; // 激光障碍判定距离阈值 (mm), 必须<此值才触发
|
|
int lidar_pre = 800; // 预触发去抖窗口, <此值开始攒帧
|
|
int lidar_near = 50; // row=lt_h-1 对应的物理距离 (mm)
|
|
int lidar_far = 1200; // row=10 对应的物理距离 (mm)
|
|
int lidar_near_start = 1; // near_valid 检测起始偏移
|
|
int lidar_near_end = 4; // near_valid 检测终止偏移
|
|
int lidar_far_span = 6; // far_lost 检测跨度
|
|
int lidar_min_frames = 3; // 连续确认帧数
|
|
double lidar_avoid_gain = 0.4; // 绕行中线推离力度 (归一化)
|
|
int lidar_avoid_range = 30; // 绕行斜坡陡峭度 (行数)
|
|
double lidar_speed = 0.4; // 绕行时速度倍率
|
|
int lidar_hold_frames = 30; // 消失后变形保持帧数
|
|
int lidar_enable = 1; // 激光避障总开关
|
|
};
|
|
extern CfgCache g_cfg;
|
|
|
|
extern double target_speed;
|
|
|
|
#endif
|