# RM2022-Sentry **Repository Path**: yuelinzhang/rm2022-sentry ## Basic Information - **Project Name**: RM2022-Sentry - **Description**: GKD战队RM2022哨兵,C板 - **Primary Language**: C - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2022-01-18 - **Last Updated**: 2024-08-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: RM, 电子 ## README # RM2022-Sentry **详细笔记见步兵README** **在步兵程序中进行的更改应及时同步至哨兵** **对于哨兵用不到的功能,不一定会从代码中删除** ## 介绍 GKD战队RoboMaster2022赛季,哨兵机器人,C板(STM32F407IGHx),FreeRTOS,在GKD步兵Standard v1.1基础上修改 ## 软件和固件库版本 CubeMX 6.4.0 STM32CubeF4 Firmware Package V1.26.0 ## 现有外设占用 #### 串口 1. USART3:遥控器 2. USART6(板上丝印UART1):裁判系统 3. USART1(板上丝印UART2):空闲 #### CAN 1. CAN1:chassis底盘(2个3508),gimbal云台(2个6020), trigger拨弹电机(1个2006),摩擦轮电机(2个3508) ## 开发记录 - 1.20 by 片哥 1. 从v1.1版的步兵程序基础上创建 2. 去掉了gimbal_feedback_update()中absolute_angle更新的程序,只使用relative_angle 3. 去掉了chassis_feedback_update()中读取底盘姿态的程序,以及读取x轴速度和z轴角速度的程序 4. 使chassis_set_contorl()中CHASSIS_VECTOR_NO_FOLLOW_YAW模式下的wz、vx输出始终为0,只保留vy输出 5. 修改了函数chassis_vector_to_mecanum_wheel_speed()的逻辑,使vy只输出到0号和1号3508上 6. #define GIMBAL_CAN改为can1 - 1.21 by 片哥 (**9ebac8f8e645a80bd4980748eb827a26fae8bb04**) 有很多遗留问题 1. 修改了gimbal_task.c中的set_cali_gimbal_hook(),不再从flash中读取6020最大最小中值相对角度,改为直接写入程序中 2. 调试了云台的PID参数 3. 由于摩擦轮电机的控制数据要和两个底盘电机同时发送,所以在chassis_move结构体中添加了摩擦轮,即motor_chassis[2]控制底盘,motor_fric[2]控制摩擦轮,分别使用motor_speed_pid[4]的前两位和后两位PID。在chassis_control_loop()中完成PID计算和电流赋值 4. 修改了bsp_fric.c中的相关函数,将PWM输出改为向结构体的speed_set赋值 5. 修改了shoot_control_loop()中的逻辑,使输出的转速在合理范围,将uint16_t变量改为fp32 6. 在chassis_feedback_update()中添加了更新摩擦轮信息 ## 笔记 ### 底盘和云台的协同控制 - 哨兵使用的控制方式(2022.1.19): 1. 右switch_up: CHASSIS_NO_MOVE + GIMBAL_ZERO_FORCE 2. 右switch_mid: CHASSIS_NO_FOLLOW_YAW(已更改) + GIMBAL_RELATIVE_ANGLE 3. 右switch_down: CHASSIS_NO_FOLLOW_YAW(已更改) + GIMBAL_CV(GIMBAL_RELATIVE_ANGLE) ## 参考资料 1. 官方2019步兵开源学习: https://bbs.robomaster.com/forum.php?mod=viewthread&tid=8361 2. C语言之如何输出uint32_t和uint64_t和16进制: https://blog.csdn.net/u011068702/article/details/77938756