- 云台(ROBOT_TYPE_GIMBAL)与底盘(ROBOT_TYPE_CHASSIS)完整固件源码 - 新增根级 .gitignore,排除 Keil MDK-ARM 构建产物(.o/.d/.crf/.axf/.lnp/.map/.htm/.sct/.dep/.iex/.lst 等) 与 *.uvguix.* / DebugConfig/(与机器绑定的 UI 布局) - core.autocrlf=false,避免固件源码在检出时被改动换行符
50 lines
1.7 KiB
C
50 lines
1.7 KiB
C
#ifndef CHASSIS_H
|
|
#define CHASSIS_H
|
|
|
|
#include <stdint.h>
|
|
#include "dji_motor.h"
|
|
|
|
/* 底盘模块:麦轮逆解 + 四轮转速 PID + 跟随云台(双 INS 世界系,2026-09 重写)
|
|
* 电机接线(与 legacy 实际发送一致):
|
|
* 0x201 右前 0x202 左前 0x203 左后 0x204 右后 */
|
|
|
|
extern dji_motor_t motor_wheel_rf; // 0x201 右前
|
|
extern dji_motor_t motor_wheel_lf; // 0x202 左前
|
|
extern dji_motor_t motor_wheel_lr; // 0x203 左后
|
|
extern dji_motor_t motor_wheel_rr; // 0x204 右后
|
|
extern dji_motor_t motor_yaw_follow; // Yaw GM6020,CAN2 0x205(跟随反馈)
|
|
|
|
extern void chassis_motor_init(void);
|
|
|
|
/* 判定任一轮电机掉线 */
|
|
extern uint8_t chassis_motor_offline(void);
|
|
|
|
/* 底盘运动控制(2ms 调用)
|
|
* vx:前进(+)/后退(-) vy:左(+)/右(-) w:逆时针(+)旋转
|
|
* power_scale:功率限制系数(0~1),直接缩放输出电流 */
|
|
extern void chassis_control(float vx, float vy, float w, float power_scale);
|
|
|
|
/* 底盘自检:小 w 脉冲+底盘 INS 测"w 正向=底盘 CCW/CW",与云台下发的
|
|
* 编码器方向综合出跟随符号(阻塞约 200ms,整车会轻转)。
|
|
* 返回 1-成功 0-失败 */
|
|
extern uint8_t chassis_detect_follow_sign(void);
|
|
|
|
/* 综合后的跟随符号(+1/-1;自检未完成时为参数回退值) */
|
|
extern float chassis_follow_sign(void);
|
|
|
|
/* 跟随一步(2ms,FOLLOW 模式调用;反馈为编码器相对角,零漂移) */
|
|
extern float chassis_follow_w(void);
|
|
|
|
/* 请求下个周期重锁基准并清积分 */
|
|
extern void chassis_follow_reset(void);
|
|
|
|
/* 底盘输出清零(停车) */
|
|
extern void chassis_output_zero(void);
|
|
|
|
/* 跟随环诊断导出(debug_task 打印) */
|
|
extern volatile float dbg_follow_err_deg;
|
|
extern volatile float dbg_follow_out;
|
|
extern volatile float dbg_follow_sign;
|
|
|
|
#endif
|