lyf
|
267a659242
|
feat(ui): 新增裁判系统自定义UI(0x0301)并打通键鼠→底盘链路
键鼠控制(此前 WASD 无反应):
- 云台 robot_cmd_task:0x0304 与 USART3 帧内键鼠合并为共享视图 keyboard_merged(0x0304 优先);
键鼠模式由帧内键鼠动作进入,动云台左摇杆退出
- c_comm_task/c_comm:键鼠在控时底盘摇杆由 WASD+鼠标合成,改读共享视图(此前只认 0x0304)
- dr16/调试输出:新增帧内键鼠原始字节诊断(key_lo/key_hi/mouse_*/s1/frames)
自定义UI(底盘板经裁判系统 USART6 绘制到选手端):
- 新增 底盘/modules/comms/referee_ui.c|h:15 字节图形组包(带编译期断言),
v5 卡片式 HUD = 俯仰梯(pitch) + 罗盘刻度带(底盘朝向) + 预估底盘功率 + 超级电容
+ 摩擦轮 L/R 转速 + 小陀螺状态,yaw 在刻度带右侧;5Hz 刷新,约 50 图元/8 包
- referee.c 新增 referee_send_frame()(cmd 0x0301 机器人交互数据,CRC8+CRC16,USART6 TX DMA)
- 新增 CToC 0x1B9:云台把 pitch 与摩擦轮转速带给底盘(底盘本地没有这两个量)
- 版式避开官方保留区:顶部比分条/左下小地图/右下战车模块/中部两块官方保留
验证:云台 Code=99540 RO=1764 RW=420 ZI=62572;底盘 Code=99452 RO=1928 RW=416 ZI=62584;均 0 错误 0 警告。
未做实机验证(当前无板/无图传);UI 协议常量(UI_RECEIVER_ID/UI_SEND_HZ)与版式坐标集中在 referee_ui.h 宏区,便于按协议 PDF 一处校正。
|
2026-10-16 04:24:32 +08:00 |
|
LSMushui
|
3c95bb0887
|
feat(debug): USB CDC 输出改为 QuaternionEKF 欧拉角
原 debug_task 每 500ms 经 CDC 打印一行混装诊断信息(芯片 ID/帧计数/空闲中断
计数/链路状态/电机掉线/跟随误差等 18 个字段),稳定后已无持续观察价值。
现改为直接输出姿态解算结果,便于上位机/串口助手直接看欧拉角与验证 EKF 收敛。
输出格式(单位: 度): yaw=<...> pitch=<...> roll=<...> cvg=<0|1>
yaw = att_deg_yaw (多圈连续偏航角,= INS.YawTotalAngle,云台 Yaw 环反馈)
pitch = att_deg_pitch (= QEKF_INS.Roll, 绕 y 轴角)
roll = att_deg_roll (= QEKF_INS.Pitch,绕 x 轴角,云台 Pitch 环反馈)
cvg = att_ready (0 表示 EKF 未收敛,此时角度不可信)
字段命名沿用工程侧语义,QEKF 内部 Pitch/Roll 与航空惯例互换的映射见
modules/attitude/attitude.c 文件头。
其他调整:
- 云台/底盘共用本文件,因两板 IMU_Task 都跑 attitude_update(),att_deg_*
均有效,故移除原 ROBOT_TYPE_GIMBAL / ROBOT_TYPE_CHASSIS 分支;
- 输出周期 500ms -> 100ms(10Hz,宏 DEBUG_OUT_PERIOD_MS 可调),2Hz 下无法
观察姿态动态响应;
- 清理因此不再需要的 include 与 dbg_* 外部声明(bmi088/ist8310/dr16/referee/
c_comm/bsp_can/bsp_usart/usart.h/dbg_imu_loop/dbg_can_loop);
- 同步更新两份 debug_task.h 的注释说明。
|
2026-09-12 10:33:29 +08:00 |
|