Commit Graph

8 Commits

Author SHA1 Message Date
SkyLiCoder da6acdcc89 refactor: manual mode from absolute setpoint to velocity control, remove auto-enable at motor init
Manual mode now receives angular velocity (degrees/s) via 0xA6 frame instead of
absolute angle reference. The firmware integrates velocity * dt into gimbal angle ref.
Motors are no longer auto-enabled at DMMotorInit — they stay disabled until a mode
switch out of DEBUG. Extract ROBOT_CMD_DELAY macro to replace magic number.
Fix "volity" typo → "velocity" and update docs/protocol comments accordingly.
2026-06-02 16:27:07 +08:00
SkyLiCoder 9b8e204ff7 feat: add DEBUG mode with host-side PID tuning, motor enable/disable protection
- Add DEBUG mode (parallel to AUTO/MANUAL) for real-time PID parameter tuning
- New 0xA8 debug frame: 12 floats for vision/motor angle PID tuning params
- DMMotorSetMode: send zero-velocity before disable, clear PID to prevent jumps
- motor_enable topic: pub from robot_cmd, sub in gimbal, controls motor on/off
- motor_pid topic: pub from robot_cmd, sub in gimbal, updates motor angle PID
- Rename DM motor enums (DM_CMD_ENABLE_MODE/DISABLE_MODE, DM_Motor_Ctrl_Mode_e)
- SwitchToAuto/Manual: re-enable motors when switching back from DEBUG mode
- Static-allocate enable_msg/pid_tune in GimbalTask to avoid stack churn
- Add docs/host_comm_guide.md with Python Tkinter tuning GUI example
- Remove ARCHITECTURE.md
2026-05-31 03:49:41 +08:00
SkyLiCoder 77a3aeb25c fix: set txconf.Identifier from tx_id before CANTransmit, enable motor task
- DM motor send functions now fill txconf.Identifier from tx_id before CANTransmit
  (MIT=tid, PosVel=tid+0x100, Velocity=tid+0x200, SetMode=tid)
- Enable motor task with stack size 1024 1000Hz
- Increase FDCAN1 StdFiltersNbr from 1 to 14
- Comment out INS temperature log, DM error handling and PID for testing
- Remove test_robot_cmd.c
2026-05-31 01:04:19 +08:00
SkyLiCoder 8763b25839 chore: upgrade FreeRTOS to v2 (CMSIS-RTOS_V2), update CubeMX project config
- Remove CMSIS-RTOS v1 (cmsis_os.h/cmsis_os.c), add CMSIS-RTOS v2 (cmsis_os2.c/freertos_os2.h/mpool.h)
- Update FreeRTOS kernel, port, and headers to match v2 integration
- Remove unused heap implementations, keep heap_4
- Update CubeMX project config (.mxproject, .ioc, CMakeLists.txt)
- Update FreeRTOSConfig.h, freertos.c, main.c, stm32h7xx_it.c
- Update application modules (master_machine, dmmotor)
- Add CMSIS-RTOS2 headers, mpu_syscall_numbers.h, newlib/picolibc support
2026-05-30 20:40:00 +08:00
SkyLiCoder 3e77eed2bb fix: remove duplicate pid_ref from DMMotorInstance
DMMotorInstance had its own pid_ref field while motor_controller already
has pid_ref. Use motor_controller.pid_ref uniformly.
2026-05-30 00:36:32 +08:00
SkyLiCoder 67a26a5ff6 cleanup: remove unused motor drivers and simplify motor_def.h
- Remove DJImotor, HTmotor, LKmotor, step_motor, servo_motor directories
- Remove Motor_Control_Setting_s and related enums (Closeloop_Type_e,
  Feedback_Source_e, Feedfoward_Type_e, MOTOR_SEND_MODE_e, Motor_Working_Type_e)
- Merge motor_reverse_flag and feedback_reverse_flag into output_reverse
- Hardcode DM motor control: IMU angle feedback → angle PID → velocity output
- Simplify Motor_Init_Config_s to only: PID params, output_reverse, motor_type, CAN config
2026-05-29 23:45:38 +08:00
SkyLiCoder 4d1702b577 refactor: migrate from DJI motors to DM motors, simplify to gimbal-only control
- Rewrite DM motor driver based on DM_6220 reference protocol (MIT/PosVel/Velocity modes)
- Use velocity control mode: MCU runs angle PID with IMU feedback, motor handles speed loop
- Rewrite vision protocol with 3 frame types (0xA5 auto data, 0xA6 manual data, 0xA7 command)
- Decouple serial parsing (opencv module) from mode switching (robot_cmd module)
- Implement dual-loop architecture: vision PID outer loop → angle ref → motor PID inner loop
- Add KF/PID reset on mode switch transitions
- Merge motor_reverse_flag and feedback_reverse_flag into single output_reverse flag
- Remove DMMotorEnable/DMMotorStop (motor always runs, controlled by angle ref)
- Remove unused modules: DJI/LK/HT/step/servo motors, chassis, shoot, referee
- Add ExitRun0Mode() for STM32H723 power supply configuration
- Clean up CMakeLists: 115 → 76 C source files
2026-05-29 23:37:36 +08:00
SkyLiCoder 5b3333125d 第一次提交 2026-05-29 17:36:34 +08:00