参数修改
This commit is contained in:
parent
de7321138f
commit
c4bc8288c7
@ -135,7 +135,7 @@
|
|||||||
<SetRegEntry>
|
<SetRegEntry>
|
||||||
<Number>0</Number>
|
<Number>0</Number>
|
||||||
<Key>CMSIS_AGDI</Key>
|
<Key>CMSIS_AGDI</Key>
|
||||||
<Name>-X"" -O206 -S8 -C0 -P00000000 -N00("") -D00(00000000) -L00(0) -TO65554 -TC10000000 -TT10000000 -TP20 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO15 -FD20000000 -FC1000 -FN1 -FF0STM32F4xx_1024.FLM -FS08000000 -FL0100000 -FP0($$Device:STM32F407IGHx$CMSIS\Flash\STM32F4xx_1024.FLM)</Name>
|
<Name>-X"Any" -UAny -O206 -S8 -C0 -P00000000 -N00("ARM CoreSight SW-DP") -D00(2BA01477) -L00(0) -TO65554 -TC10000000 -TT10000000 -TP20 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO15 -FD20000000 -FC1000 -FN1 -FF0STM32F4xx_1024.FLM -FS08000000 -FL0100000 -FP0($$Device:STM32F407IGHx$CMSIS\Flash\STM32F4xx_1024.FLM)</Name>
|
||||||
</SetRegEntry>
|
</SetRegEntry>
|
||||||
<SetRegEntry>
|
<SetRegEntry>
|
||||||
<Number>0</Number>
|
<Number>0</Number>
|
||||||
@ -200,6 +200,16 @@
|
|||||||
<WinNumber>1</WinNumber>
|
<WinNumber>1</WinNumber>
|
||||||
<ItemText>\\R2\../User/task/up_task.c\UP.MID360Context.IsLaunch</ItemText>
|
<ItemText>\\R2\../User/task/up_task.c\UP.MID360Context.IsLaunch</ItemText>
|
||||||
</Ww>
|
</Ww>
|
||||||
|
<Ww>
|
||||||
|
<count>10</count>
|
||||||
|
<WinNumber>1</WinNumber>
|
||||||
|
<ItemText>ang_58,0x0A</ItemText>
|
||||||
|
</Ww>
|
||||||
|
<Ww>
|
||||||
|
<count>11</count>
|
||||||
|
<WinNumber>1</WinNumber>
|
||||||
|
<ItemText>ang_66,0x0A</ItemText>
|
||||||
|
</Ww>
|
||||||
</WatchWindow1>
|
</WatchWindow1>
|
||||||
<Tracepoint>
|
<Tracepoint>
|
||||||
<THDelay>0</THDelay>
|
<THDelay>0</THDelay>
|
||||||
@ -207,7 +217,7 @@
|
|||||||
<DebugFlag>
|
<DebugFlag>
|
||||||
<trace>0</trace>
|
<trace>0</trace>
|
||||||
<periodic>1</periodic>
|
<periodic>1</periodic>
|
||||||
<aLwin>0</aLwin>
|
<aLwin>1</aLwin>
|
||||||
<aCover>0</aCover>
|
<aCover>0</aCover>
|
||||||
<aSer1>0</aSer1>
|
<aSer1>0</aSer1>
|
||||||
<aSer2>0</aSer2>
|
<aSer2>0</aSer2>
|
||||||
|
Binary file not shown.
@ -75,11 +75,11 @@ static const ConfigParam_t param ={
|
|||||||
|
|
||||||
/*投球*/
|
/*投球*/
|
||||||
.LaunchCfg = {
|
.LaunchCfg = {
|
||||||
.m2006_init = -130.0f, // M2006初始角度
|
.m2006_init = -125.0f, // M2006初始角度
|
||||||
.m2006_trig = 0.0f, // M2006触发角度
|
.m2006_trig = 0.0f, // M2006触发角度
|
||||||
.go_pull_pos = -214.0f, // go上升去合并扳机,扳机位置
|
.go_pull_pos = -210.0f, // go上升去合并扳机,扳机位置
|
||||||
.go_up_speed = 12.0f, // 上升速度
|
.go_up_speed = 12.0f, // 上升速度
|
||||||
.go_down_speed = 6.0f, // 下降速度
|
.go_down_speed = 10.0f, // 下降速度
|
||||||
.Pitch_angle = 58, //俯仰角
|
.Pitch_angle = 58, //俯仰角
|
||||||
.go_init = -50
|
.go_init = -50
|
||||||
},
|
},
|
||||||
@ -89,14 +89,14 @@ static const ConfigParam_t param ={
|
|||||||
.go_release_pos=-200,
|
.go_release_pos=-200,
|
||||||
.Pitch_angle =66,
|
.Pitch_angle =66,
|
||||||
.go_up_speed =12,
|
.go_up_speed =12,
|
||||||
.go_down_speed =6,
|
.go_down_speed =10,
|
||||||
},
|
},
|
||||||
.PassCfg={
|
.PassCfg={
|
||||||
.go_wait =-10,
|
.go_wait =-10,
|
||||||
.go_release_pos =-150,
|
.go_release_pos =-150,
|
||||||
.Pitch_angle=66,
|
.Pitch_angle=66,
|
||||||
.go_up_speed =12,
|
.go_up_speed =12,
|
||||||
.go_down_speed =6,
|
.go_down_speed =10,
|
||||||
},
|
},
|
||||||
.MID360Cfg={
|
.MID360Cfg={
|
||||||
|
|
||||||
|
@ -199,7 +199,7 @@ int8_t UP_control(UP_t *u,CAN_Output_t *out,CMD_t *c)
|
|||||||
is_pitch=0;
|
is_pitch=0;
|
||||||
} //初始上电
|
} //初始上电
|
||||||
//LaunchCfg->go_up_speed=15;
|
//LaunchCfg->go_up_speed=15;
|
||||||
target->Pitch_angle =LaunchCfg->Pitch_angle;
|
// target->Pitch_angle =LaunchCfg->Pitch_angle;
|
||||||
target->go_pull_speed=LaunchCfg->go_up_speed;
|
target->go_pull_speed=LaunchCfg->go_up_speed;
|
||||||
target->Shoot_M2006_angle=LaunchCfg->m2006_init;
|
target->Shoot_M2006_angle=LaunchCfg->m2006_init;
|
||||||
u->PitchContext .PitchState = PITCH_PREPARE; //状态更新
|
u->PitchContext .PitchState = PITCH_PREPARE; //状态更新
|
||||||
@ -260,7 +260,7 @@ int8_t Pitch_Launch_Sequence(UP_t *u, LaunchContext_t *LaunchContext,fp32 StartP
|
|||||||
bool is_GoStartReach=is_reached(u->motorfeedback.go_data.Pos,StartPos,1.0f); //go开始位置
|
bool is_GoStartReach=is_reached(u->motorfeedback.go_data.Pos,StartPos,1.0f); //go开始位置
|
||||||
bool is_GoSpeedReach=is_reached(u->motorfeedback.go_data.W,0,1.0f) ; //go速度归零判断
|
bool is_GoSpeedReach=is_reached(u->motorfeedback.go_data.W,0,1.0f) ; //go速度归零判断
|
||||||
bool is_GoEndReach =(u->motorfeedback .go_data .Pos < -209); //go去上拉钩子位置,判断到达
|
bool is_GoEndReach =(u->motorfeedback .go_data .Pos < -209); //go去上拉钩子位置,判断到达
|
||||||
bool is_HookDone=(u->motorfeedback .DJmotor_feedback [4].total_angle>-10); //2006钩子放下判断
|
bool is_HookDone=(u->motorfeedback .DJmotor_feedback [4].total_angle>-5.0f); //2006钩子放下判断
|
||||||
bool is_Shoot=(u->motorfeedback.DJmotor_feedback[4].total_angle<-10);//是否发射判断
|
bool is_Shoot=(u->motorfeedback.DJmotor_feedback[4].total_angle<-10);//是否发射判断
|
||||||
|
|
||||||
|
|
||||||
@ -400,13 +400,20 @@ int8_t UP_AUTO_Control(UP_t *u,CAN_Output_t *out,CMD_t *c){
|
|||||||
LaunchContext_t *LaunchContext = &u->LaunchContext;
|
LaunchContext_t *LaunchContext = &u->LaunchContext;
|
||||||
MID360Context_t *MID360Context=&u->MID360Context;
|
MID360Context_t *MID360Context=&u->MID360Context;
|
||||||
MID360Cfg_t *MID360Cfg = &u->MID360Context.MID360Cfg;
|
MID360Cfg_t *MID360Cfg = &u->MID360Context.MID360Cfg;
|
||||||
MID360Cfg->go_release_pos=CurveChange(LowPassFilter2p_Apply(&u->filled[0],c->cmd_MID360.dis),3.2,4.3,&u->MID360Context.Curve);
|
// MID360Cfg->go_release_pos=CurveChange(LowPassFilter2p_Apply(&u->filled[0],c->cmd_MID360.dis),3.2,4.3,&u->MID360Context.Curve);
|
||||||
|
|
||||||
|
if(u->MID360Context.Curve==CURVE_58){
|
||||||
|
MID360Cfg->go_release_pos=CurveChange(LowPassFilter2p_Apply(&u->filled[0],c->cmd_MID360.dis),3.3,4.3,&u->MID360Context.Curve);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
MID360Cfg->go_release_pos=CurveChange(LowPassFilter2p_Apply(&u->filled[0],c->cmd_MID360.dis)-0.05f,3.3,4.3,&u->MID360Context.Curve);
|
||||||
|
|
||||||
|
}
|
||||||
if (u->MID360Context.Curve == CURVE_58) {
|
if (u->MID360Context.Curve == CURVE_58) {
|
||||||
target->Pitch_angle = 58;
|
target->Pitch_angle = 58;
|
||||||
} else {
|
} else {
|
||||||
target->Pitch_angle = 66;
|
target->Pitch_angle = 66;
|
||||||
}
|
}
|
||||||
|
|
||||||
LaunchContext->LaunchCfg.go_up_speed=MID360Cfg->go_up_speed;
|
LaunchContext->LaunchCfg.go_up_speed=MID360Cfg->go_up_speed;
|
||||||
LaunchContext->LaunchCfg.go_down_speed=MID360Cfg->go_down_speed;
|
LaunchContext->LaunchCfg.go_down_speed=MID360Cfg->go_down_speed;
|
||||||
|
|
||||||
|
@ -68,12 +68,12 @@ int8_t GO_SendData( GO_MotorData_t *go_data,GO_MotorCmd_t *go_cmd,float pos, flo
|
|||||||
|
|
||||||
// 计算66度曲线(偏上)
|
// 计算66度曲线(偏上)
|
||||||
static float curve_66(float d) {
|
static float curve_66(float d) {
|
||||||
return 3.7028f * d * d + 11.2126f * d -142.9446f;
|
return 2.9851104*pow(d,4) -36.164382*pow(d,3) + 159.54844*pow(d,2) -273.62856*d + 43.092452; }
|
||||||
}
|
|
||||||
// 计算58度曲线(偏下)
|
// 计算58度曲线(偏下)
|
||||||
// 计算58度曲线(偏下)
|
// 计算58度曲线(偏下)
|
||||||
static float curve_58(float d) {
|
static float curve_58(float d) {
|
||||||
return 0.9242f * d * d + 19.4246f * d - 154.9055f;
|
// return 0.9242f * d * d + 19.4246f * d - 154.9055f;
|
||||||
|
return 2.638517*pow(d,4) -47.996138*pow(d,3) + 325.38515*pow(d,2) -950.18155*d + 919.86543;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -81,12 +81,15 @@ static float curve_58(float d) {
|
|||||||
迟滞区x-y
|
迟滞区x-y
|
||||||
曲线x重合区,根据当前函数和变化方向切换
|
曲线x重合区,根据当前函数和变化方向切换
|
||||||
*/
|
*/
|
||||||
|
fp32 ang_58;
|
||||||
|
fp32 ang_66;
|
||||||
|
|
||||||
float CurveChange(float d, float x, float y, CurveType *cs)
|
float CurveChange(float d, float x, float y, CurveType *cs)
|
||||||
{
|
{
|
||||||
|
|
||||||
if (*cs == CURVE_66) {
|
if (*cs == CURVE_66) {
|
||||||
if (d > y) {
|
if (d > y) {
|
||||||
|
*cs = CURVE_58;
|
||||||
*cs = CURVE_58;
|
|
||||||
}
|
}
|
||||||
} else { // CURVE_58
|
} else { // CURVE_58
|
||||||
if (d < x) {
|
if (d < x) {
|
||||||
@ -96,8 +99,10 @@ float CurveChange(float d, float x, float y, CurveType *cs)
|
|||||||
|
|
||||||
// 根据当前曲线返回结果
|
// 根据当前曲线返回结果
|
||||||
if (*cs == CURVE_58) {
|
if (*cs == CURVE_58) {
|
||||||
|
ang_58=d;
|
||||||
return curve_58(d);
|
return curve_58(d);
|
||||||
} else {
|
} else {
|
||||||
|
ang_66=d;
|
||||||
return curve_66(d);
|
return curve_66(d);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -40,10 +40,15 @@ void Task_cmd(void *argument){
|
|||||||
/*将各任务接收到的原始数据解析为通用的控制命令*/
|
/*将各任务接收到的原始数据解析为通用的控制命令*/
|
||||||
|
|
||||||
|
|
||||||
/*注意,不能将nuc和码盘导航一块使用*/
|
|
||||||
|
|
||||||
if(osMessageQueueGet(task_runtime.msgq.cmd.raw.nuc, &Nuc,0 ,0) ==osOK) //nuc
|
|
||||||
CMD_ParseNuc(&cmd,&Nuc);
|
if((osMessageQueueGet(task_runtime.msgq.cmd.raw.nuc, &Nuc,0 ,0) ==osOK)){ //nuc
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
memset(&Nuc, 0, sizeof(CMD_NUC_t));
|
||||||
|
}
|
||||||
|
CMD_ParseNuc(&cmd,&Nuc);
|
||||||
|
|
||||||
|
|
||||||
if(osMessageQueueGet(task_runtime.msgq.cmd.raw.rc, &rc_ctrl, 0, 0) == osOK)//遥控器
|
if(osMessageQueueGet(task_runtime.msgq.cmd.raw.rc, &rc_ctrl, 0, 0) == osOK)//遥控器
|
||||||
|
@ -17,7 +17,7 @@
|
|||||||
#define TASK_FREQ_CHASSIS (900u)
|
#define TASK_FREQ_CHASSIS (900u)
|
||||||
#define TASK_FREQ_UP (900u)
|
#define TASK_FREQ_UP (900u)
|
||||||
|
|
||||||
#define TASK_FREQ_CTRL_CMD (500u)
|
#define TASK_FREQ_CTRL_CMD (100u)
|
||||||
#define TASK_FREQ_NUC (100u)
|
#define TASK_FREQ_NUC (100u)
|
||||||
#define TASK_FREQ_CAN (1000u)
|
#define TASK_FREQ_CAN (1000u)
|
||||||
#define TASK_FREQ_RC (100u)
|
#define TASK_FREQ_RC (100u)
|
||||||
|
Loading…
Reference in New Issue
Block a user