Files
Simba-OmniInfantry/底盘/modules/chassis/chassis.h
T
LSMushui a4da5ad17c chore: 导入 Simba-OmniInfantry 基线(云台/底盘双工程)
- 云台(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,避免固件源码在检出时被改动换行符
2026-09-12 10:28:21 +08:00

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