修复上电云台正方向问题,以及初步调好了底盘跟随PID,以及小陀螺模式下的运动偏移问题。
This commit is contained in:
@@ -17,6 +17,7 @@
|
||||
#include "robot_typedef.h"
|
||||
#include "chassis.h"
|
||||
#include "attitude.h"
|
||||
#include "bmi088.h"
|
||||
#include "referee.h"
|
||||
#include "c_comm.h"
|
||||
#include "robot_param.h"
|
||||
@@ -120,6 +121,14 @@ void chassis_task(void const * argument)
|
||||
float vx = cmd_robot.vx * boost;
|
||||
float vy = cmd_robot.vy * boost;
|
||||
|
||||
/* 坐标系旋转投影:将以云台枪口为准的平移速度转换到底盘坐标系,并叠加 kw 前馈 */
|
||||
float chassis_vx = vx;
|
||||
float chassis_vy = vy;
|
||||
/* 跟随模式下无持续自旋,前馈量为0;小陀螺模式下代入实际自旋角速度 w */
|
||||
float w_feedforward = (cmd_robot.chassis_mode == CHASSIS_MODE_FOLLOW) ? 0.0f : bmi088_gyro[2];
|
||||
chassis_vector_to_body(vx, vy, w_feedforward, &chassis_vx, &chassis_vy);
|
||||
|
||||
|
||||
/* 简易功率限制:缓冲能量线性映射为缩放系数 */
|
||||
float scale = 1.0f;
|
||||
if (referee.buffer_energy < POWER_LIMIT_BUFFER_LOW)
|
||||
@@ -130,7 +139,7 @@ void chassis_task(void const * argument)
|
||||
else if (scale > 1.0f)
|
||||
scale = 1.0f;
|
||||
|
||||
chassis_control(vx, vy, w, scale);
|
||||
chassis_control(chassis_vx, chassis_vy, w, scale);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user