本分支为底盘更改,更改后合并到主分支
This commit is contained in:
parent
7499e75a50
commit
0d7a931faf
@ -103,7 +103,7 @@
|
|||||||
<bEvRecOn>1</bEvRecOn>
|
<bEvRecOn>1</bEvRecOn>
|
||||||
<bSchkAxf>0</bSchkAxf>
|
<bSchkAxf>0</bSchkAxf>
|
||||||
<bTchkAxf>0</bTchkAxf>
|
<bTchkAxf>0</bTchkAxf>
|
||||||
<nTsel>6</nTsel>
|
<nTsel>3</nTsel>
|
||||||
<sDll></sDll>
|
<sDll></sDll>
|
||||||
<sDllPa></sDllPa>
|
<sDllPa></sDllPa>
|
||||||
<sDlgDll></sDlgDll>
|
<sDlgDll></sDlgDll>
|
||||||
@ -114,7 +114,7 @@
|
|||||||
<tDlgDll></tDlgDll>
|
<tDlgDll></tDlgDll>
|
||||||
<tDlgPa></tDlgPa>
|
<tDlgPa></tDlgPa>
|
||||||
<tIfile></tIfile>
|
<tIfile></tIfile>
|
||||||
<pMon>STLink\ST-LINKIII-KEIL_SWO.dll</pMon>
|
<pMon>BIN\CMSIS_AGDI.dll</pMon>
|
||||||
</DebugOpt>
|
</DebugOpt>
|
||||||
<TargetDriverDllRegistry>
|
<TargetDriverDllRegistry>
|
||||||
<SetRegEntry>
|
<SetRegEntry>
|
||||||
@ -140,7 +140,7 @@
|
|||||||
<SetRegEntry>
|
<SetRegEntry>
|
||||||
<Number>0</Number>
|
<Number>0</Number>
|
||||||
<Key>DLGUARM</Key>
|
<Key>DLGUARM</Key>
|
||||||
<Name>(105=-1,-1,-1,-1,0)</Name>
|
<Name></Name>
|
||||||
</SetRegEntry>
|
</SetRegEntry>
|
||||||
<SetRegEntry>
|
<SetRegEntry>
|
||||||
<Number>0</Number>
|
<Number>0</Number>
|
||||||
@ -158,27 +158,27 @@
|
|||||||
<Ww>
|
<Ww>
|
||||||
<count>0</count>
|
<count>0</count>
|
||||||
<WinNumber>1</WinNumber>
|
<WinNumber>1</WinNumber>
|
||||||
<ItemText>rc_ctrl,0x0A</ItemText>
|
<ItemText>Nor_Vx</ItemText>
|
||||||
</Ww>
|
</Ww>
|
||||||
<Ww>
|
<Ww>
|
||||||
<count>1</count>
|
<count>1</count>
|
||||||
<WinNumber>1</WinNumber>
|
<WinNumber>1</WinNumber>
|
||||||
<ItemText>LD_raw,0x0A</ItemText>
|
<ItemText>Nor_Vy</ItemText>
|
||||||
</Ww>
|
</Ww>
|
||||||
<Ww>
|
<Ww>
|
||||||
<count>2</count>
|
<count>2</count>
|
||||||
<WinNumber>1</WinNumber>
|
<WinNumber>1</WinNumber>
|
||||||
<ItemText>can,0x0A</ItemText>
|
<ItemText>count,0x0A</ItemText>
|
||||||
</Ww>
|
</Ww>
|
||||||
<Ww>
|
<Ww>
|
||||||
<count>3</count>
|
<count>3</count>
|
||||||
<WinNumber>1</WinNumber>
|
<WinNumber>1</WinNumber>
|
||||||
<ItemText>UP,0x0A</ItemText>
|
<ItemText>count</ItemText>
|
||||||
</Ww>
|
</Ww>
|
||||||
<Ww>
|
<Ww>
|
||||||
<count>4</count>
|
<count>4</count>
|
||||||
<WinNumber>1</WinNumber>
|
<WinNumber>1</WinNumber>
|
||||||
<ItemText>cmd_rc,0x0A</ItemText>
|
<ItemText>NUC_StartSending,0x0A</ItemText>
|
||||||
</Ww>
|
</Ww>
|
||||||
<Ww>
|
<Ww>
|
||||||
<count>5</count>
|
<count>5</count>
|
||||||
@ -188,127 +188,32 @@
|
|||||||
<Ww>
|
<Ww>
|
||||||
<count>6</count>
|
<count>6</count>
|
||||||
<WinNumber>1</WinNumber>
|
<WinNumber>1</WinNumber>
|
||||||
<ItemText>nuc_raw,0x0A</ItemText>
|
<ItemText>PIAN</ItemText>
|
||||||
</Ww>
|
</Ww>
|
||||||
<Ww>
|
<Ww>
|
||||||
<count>7</count>
|
<count>7</count>
|
||||||
<WinNumber>1</WinNumber>
|
<WinNumber>1</WinNumber>
|
||||||
<ItemText>nucbuf</ItemText>
|
<ItemText>shang_yaw</ItemText>
|
||||||
</Ww>
|
</Ww>
|
||||||
<Ww>
|
<Ww>
|
||||||
<count>8</count>
|
<count>8</count>
|
||||||
<WinNumber>1</WinNumber>
|
<WinNumber>1</WinNumber>
|
||||||
<ItemText>cmd_fromnuc</ItemText>
|
<ItemText>pian_yaw</ItemText>
|
||||||
</Ww>
|
</Ww>
|
||||||
<Ww>
|
<Ww>
|
||||||
<count>9</count>
|
<count>9</count>
|
||||||
<WinNumber>1</WinNumber>
|
<WinNumber>1</WinNumber>
|
||||||
<ItemText>up_cmd,0x0A</ItemText>
|
<ItemText>pid,0x0A</ItemText>
|
||||||
</Ww>
|
</Ww>
|
||||||
<Ww>
|
<Ww>
|
||||||
<count>10</count>
|
<count>10</count>
|
||||||
<WinNumber>1</WinNumber>
|
<WinNumber>1</WinNumber>
|
||||||
<ItemText>can_out</ItemText>
|
<ItemText>gyro_kp</ItemText>
|
||||||
</Ww>
|
</Ww>
|
||||||
<Ww>
|
<Ww>
|
||||||
<count>11</count>
|
<count>11</count>
|
||||||
<WinNumber>1</WinNumber>
|
<WinNumber>1</WinNumber>
|
||||||
<ItemText>Nor_Vx</ItemText>
|
<ItemText>rc_ctrl,0x0A</ItemText>
|
||||||
</Ww>
|
|
||||||
<Ww>
|
|
||||||
<count>12</count>
|
|
||||||
<WinNumber>1</WinNumber>
|
|
||||||
<ItemText>Nor_Vy</ItemText>
|
|
||||||
</Ww>
|
|
||||||
<Ww>
|
|
||||||
<count>13</count>
|
|
||||||
<WinNumber>1</WinNumber>
|
|
||||||
<ItemText>b</ItemText>
|
|
||||||
</Ww>
|
|
||||||
<Ww>
|
|
||||||
<count>14</count>
|
|
||||||
<WinNumber>1</WinNumber>
|
|
||||||
<ItemText>count,0x0A</ItemText>
|
|
||||||
</Ww>
|
|
||||||
<Ww>
|
|
||||||
<count>15</count>
|
|
||||||
<WinNumber>1</WinNumber>
|
|
||||||
<ItemText>count</ItemText>
|
|
||||||
</Ww>
|
|
||||||
<Ww>
|
|
||||||
<count>16</count>
|
|
||||||
<WinNumber>1</WinNumber>
|
|
||||||
<ItemText>raw_rx1,0x0A</ItemText>
|
|
||||||
</Ww>
|
|
||||||
<Ww>
|
|
||||||
<count>17</count>
|
|
||||||
<WinNumber>1</WinNumber>
|
|
||||||
<ItemText>gyro_kp,0x0A</ItemText>
|
|
||||||
</Ww>
|
|
||||||
<Ww>
|
|
||||||
<count>18</count>
|
|
||||||
<WinNumber>1</WinNumber>
|
|
||||||
<ItemText>nucbuf,0x0A</ItemText>
|
|
||||||
</Ww>
|
|
||||||
<Ww>
|
|
||||||
<count>19</count>
|
|
||||||
<WinNumber>1</WinNumber>
|
|
||||||
<ItemText>vofa_send,0x0A</ItemText>
|
|
||||||
</Ww>
|
|
||||||
<Ww>
|
|
||||||
<count>20</count>
|
|
||||||
<WinNumber>1</WinNumber>
|
|
||||||
<ItemText>SendBuffer,0x10</ItemText>
|
|
||||||
</Ww>
|
|
||||||
<Ww>
|
|
||||||
<count>21</count>
|
|
||||||
<WinNumber>1</WinNumber>
|
|
||||||
<ItemText>NUC_StartSending,0x0A</ItemText>
|
|
||||||
</Ww>
|
|
||||||
<Ww>
|
|
||||||
<count>22</count>
|
|
||||||
<WinNumber>1</WinNumber>
|
|
||||||
<ItemText>PIAN</ItemText>
|
|
||||||
</Ww>
|
|
||||||
<Ww>
|
|
||||||
<count>23</count>
|
|
||||||
<WinNumber>1</WinNumber>
|
|
||||||
<ItemText>pid</ItemText>
|
|
||||||
</Ww>
|
|
||||||
<Ww>
|
|
||||||
<count>24</count>
|
|
||||||
<WinNumber>1</WinNumber>
|
|
||||||
<ItemText>bmi088</ItemText>
|
|
||||||
</Ww>
|
|
||||||
<Ww>
|
|
||||||
<count>25</count>
|
|
||||||
<WinNumber>1</WinNumber>
|
|
||||||
<ItemText>ist8310</ItemText>
|
|
||||||
</Ww>
|
|
||||||
<Ww>
|
|
||||||
<count>26</count>
|
|
||||||
<WinNumber>1</WinNumber>
|
|
||||||
<ItemText>imu_eulr,0x0A</ItemText>
|
|
||||||
</Ww>
|
|
||||||
<Ww>
|
|
||||||
<count>27</count>
|
|
||||||
<WinNumber>1</WinNumber>
|
|
||||||
<ItemText>imu_temp,0x0A</ItemText>
|
|
||||||
</Ww>
|
|
||||||
<Ww>
|
|
||||||
<count>28</count>
|
|
||||||
<WinNumber>1</WinNumber>
|
|
||||||
<ItemText>htim10,0x0A</ItemText>
|
|
||||||
</Ww>
|
|
||||||
<Ww>
|
|
||||||
<count>29</count>
|
|
||||||
<WinNumber>1</WinNumber>
|
|
||||||
<ItemText>pulse</ItemText>
|
|
||||||
</Ww>
|
|
||||||
<Ww>
|
|
||||||
<count>30</count>
|
|
||||||
<WinNumber>1</WinNumber>
|
|
||||||
<ItemText>imu_temp</ItemText>
|
|
||||||
</Ww>
|
</Ww>
|
||||||
</WatchWindow1>
|
</WatchWindow1>
|
||||||
<Tracepoint>
|
<Tracepoint>
|
||||||
|
Binary file not shown.
@ -83,6 +83,9 @@ int8_t Chassis_init(Chassis_t *c,const Chassis_Param_t *param,float target_freq)
|
|||||||
|
|
||||||
fp32 gyro_kp=1.0f;
|
fp32 gyro_kp=1.0f;
|
||||||
fp32 PIAN=0;
|
fp32 PIAN=0;
|
||||||
|
fp32 shang_yaw=0;
|
||||||
|
fp32 pian_yaw=0;
|
||||||
|
|
||||||
void Chassis_speed_calculate(Chassis_t *c,fp32 Vx,fp32 Vy,fp32 Vw) //底盘逆运动学的解算,
|
void Chassis_speed_calculate(Chassis_t *c,fp32 Vx,fp32 Vy,fp32 Vw) //底盘逆运动学的解算,
|
||||||
{
|
{
|
||||||
fp64 Nor_Vx,Nor_Vy;//归一化后的数据
|
fp64 Nor_Vx,Nor_Vy;//归一化后的数据
|
||||||
@ -92,23 +95,41 @@ void Chassis_speed_calculate(Chassis_t *c,fp32 Vx,fp32 Vy,fp32 Vw) //底盘逆
|
|||||||
// c->hopemotorout.OmniSpeedOut[1] = -Vx-Vy+Vw;//右后
|
// c->hopemotorout.OmniSpeedOut[1] = -Vx-Vy+Vw;//右后
|
||||||
// c->hopemotorout.OmniSpeedOut[2] = Vx-Vy+Vw;//左后
|
// c->hopemotorout.OmniSpeedOut[2] = Vx-Vy+Vw;//左后
|
||||||
// c->hopemotorout.OmniSpeedOut[3] = Vx+Vy+Vw;//左前
|
// c->hopemotorout.OmniSpeedOut[3] = Vx+Vy+Vw;//左前
|
||||||
// c->hopemotorout.OmniSpeedOut[0] = -Nor_Vx+Nor_Vy+Vw + c->pos088 .bmi088.gyro.z;//右前
|
if(Vw)
|
||||||
// c->hopemotorout.OmniSpeedOut[1] = -Nor_Vx-Nor_Vy+Vw + c->pos088 .bmi088.gyro.z;//右后
|
{
|
||||||
// c->hopemotorout.OmniSpeedOut[2] = Nor_Vx-Nor_Vy+Vw + c->pos088 .bmi088.gyro.z;//左后
|
c->hopemotorout.OmniSpeedOut[0] = -Nor_Vx+Nor_Vy+Vw ;//右前
|
||||||
// c->hopemotorout.OmniSpeedOut[3] = Nor_Vx+Nor_Vy+Vw + c->pos088 .bmi088.gyro.z;//左前
|
|
||||||
c->hopemotorout.OmniSpeedOut[0] = -Nor_Vx+Nor_Vy+Vw ;//右前
|
|
||||||
c->hopemotorout.OmniSpeedOut[1] = -Nor_Vx-Nor_Vy+Vw ;//右后
|
c->hopemotorout.OmniSpeedOut[1] = -Nor_Vx-Nor_Vy+Vw ;//右后
|
||||||
c->hopemotorout.OmniSpeedOut[2] = Nor_Vx-Nor_Vy+Vw ;//左后
|
c->hopemotorout.OmniSpeedOut[2] = Nor_Vx-Nor_Vy+Vw ;//左后
|
||||||
c->hopemotorout.OmniSpeedOut[3] = Nor_Vx+Nor_Vy+Vw ;//左前
|
c->hopemotorout.OmniSpeedOut[3] = Nor_Vx+Nor_Vy+Vw ;//左前
|
||||||
|
}
|
||||||
// if(!Vw){
|
else {
|
||||||
// PIAN = jiuzheng(c->pos088 .imu_eulr .yaw );
|
c->hopemotorout.OmniSpeedOut[0] = -Nor_Vx+Nor_Vy+Vw + c->pos088 .bmi088.gyro.z*gyro_kp;//右前
|
||||||
|
c->hopemotorout.OmniSpeedOut[1] = -Nor_Vx-Nor_Vy+Vw + c->pos088 .bmi088.gyro.z*gyro_kp;//右后
|
||||||
|
c->hopemotorout.OmniSpeedOut[2] = Nor_Vx-Nor_Vy+Vw + c->pos088 .bmi088.gyro.z*gyro_kp;//左后
|
||||||
|
c->hopemotorout.OmniSpeedOut[3] = Nor_Vx+Nor_Vy+Vw + c->pos088 .bmi088.gyro.z*gyro_kp;//左前
|
||||||
|
}
|
||||||
|
//
|
||||||
|
// if(Vx || Vy){
|
||||||
|
// PIAN = jiuzheng(c->pos088 .imu_eulr .yaw );
|
||||||
|
// c->hopemotorout.OmniSpeedOut[0] -= PIAN ;//右前
|
||||||
|
// c->hopemotorout.OmniSpeedOut[1] -= PIAN ;//右后
|
||||||
|
// c->hopemotorout.OmniSpeedOut[2] -= PIAN ;//左后
|
||||||
|
// c->hopemotorout.OmniSpeedOut[3] -= PIAN ;//左前
|
||||||
|
// }
|
||||||
|
// else
|
||||||
|
// {
|
||||||
|
// PIAN = 0;
|
||||||
|
// shang_yaw=c->pos088 .imu_eulr .yaw ;
|
||||||
|
// pian_yaw=0;
|
||||||
// }
|
// }
|
||||||
// c->hopemotorout.OmniSpeedOut[0] += PIAN ;//右前
|
|
||||||
// c->hopemotorout.OmniSpeedOut[1] += PIAN ;//右后
|
|
||||||
// c->hopemotorout.OmniSpeedOut[2] += PIAN ;//左后
|
|
||||||
// c->hopemotorout.OmniSpeedOut[3] += PIAN ;//左前
|
|
||||||
|
|
||||||
|
//
|
||||||
|
c->vofa_send[0]=c->pos088.bmi088.gyro.z;
|
||||||
|
|
||||||
|
c->vofa_send[1]=PIAN;
|
||||||
|
c->vofa_send[2]=c->pos088.imu_eulr.yaw;
|
||||||
|
// c->vofa_send[3]=
|
||||||
|
// c->vofa_send[2]=c->motorfeedback .rotor_rpm3508 [1];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -278,8 +299,6 @@ int8_t Chassis_Control(Chassis_t *c,CMD_t *ctrl,CAN_Output_t *out)
|
|||||||
};
|
};
|
||||||
fp32 jiuzheng(fp32 yaw)
|
fp32 jiuzheng(fp32 yaw)
|
||||||
{
|
{
|
||||||
static fp32 pian_yaw=0;
|
|
||||||
static fp32 shang_yaw=0;
|
|
||||||
static int is=0;
|
static int is=0;
|
||||||
|
|
||||||
|
|
||||||
@ -289,9 +308,9 @@ fp32 jiuzheng(fp32 yaw)
|
|||||||
is=1;
|
is=1;
|
||||||
}
|
}
|
||||||
|
|
||||||
pian_yaw+= (yaw - shang_yaw);
|
pian_yaw+= (yaw - shang_yaw)*1000;
|
||||||
shang_yaw=yaw ;
|
shang_yaw=yaw ;
|
||||||
|
|
||||||
return PID_calc(&pid,pian_yaw,0);
|
return PID_calc (&pid,pian_yaw,0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
#include "config.h"
|
#include "config.h"
|
||||||
#include "flash.h"
|
#include "flash.h"
|
||||||
#include "string.h"
|
#include "string.h"
|
||||||
#define DEBUG
|
#define DEBUG
|
||||||
|
@ -5,15 +5,15 @@
|
|||||||
|
|
||||||
/* Includes ----------------------------------------------------------------- */
|
/* Includes ----------------------------------------------------------------- */
|
||||||
#include "rc.h"
|
#include "rc.h"
|
||||||
|
#include "cmd.h"
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
|
||||||
#include "bsp_usart.h"
|
#include "bsp_usart.h"
|
||||||
#include "error_detect.h"
|
#include "error_detect.h"
|
||||||
|
|
||||||
|
|
||||||
//#define DR16
|
#define DR16
|
||||||
#define LD_t
|
//#define LD_t
|
||||||
|
|
||||||
#ifdef DR16
|
#ifdef DR16
|
||||||
#define FRAME_LEN 36
|
#define FRAME_LEN 36
|
||||||
@ -100,15 +100,15 @@ int8_t LD_ParseRaw( LD_raw_t *raw, LD_Data_t *LD)
|
|||||||
|
|
||||||
|
|
||||||
if (raw->ch[0] < 0)
|
if (raw->ch[0] < 0)
|
||||||
raw->map_ch[0] = map_fp32(raw->ch[0], -696, 2, -1, 0);
|
raw->map_ch[0] = map_fp32(raw->ch[0], -700, -2, -1, 0);
|
||||||
else
|
else
|
||||||
raw->map_ch[0] = map_fp32(raw->ch[0], 2, 704, 0, 1);
|
raw->map_ch[0] = map_fp32(raw->ch[0], -2, 700, 0, 1);
|
||||||
|
|
||||||
// ch[1]
|
// ch[1]
|
||||||
if (raw->ch[1] < 0)
|
if (raw->ch[1] < 0)
|
||||||
raw->map_ch[1] = map_fp32(raw->ch[1], -638, 5, -1, 0);
|
raw->map_ch[1] = map_fp32(raw->ch[1], -700, 4, -1, 0);
|
||||||
else
|
else
|
||||||
raw->map_ch[1] = map_fp32(raw->ch[1], 5, 762, 0, 1);
|
raw->map_ch[1] = map_fp32(raw->ch[1], 4, 700, 0, 1);
|
||||||
|
|
||||||
raw->map_ch[2] = map_fp32(raw->ch[2], 2, 1377, 0, 1);
|
raw->map_ch[2] = map_fp32(raw->ch[2], 2, 1377, 0, 1);
|
||||||
|
|
||||||
@ -220,8 +220,10 @@ int8_t RC_ParseRC( DR16_t *dr16,LD_raw_t *LD_raw, LD_Data_t *LD, CMD_RC_t *rc) {
|
|||||||
rc->dr16.ch_l_x = 2 * ((float)dr16->data.ch_l_x - RC_CH_VALUE_MID) / full_range;
|
rc->dr16.ch_l_x = 2 * ((float)dr16->data.ch_l_x - RC_CH_VALUE_MID) / full_range;
|
||||||
rc->dr16.ch_l_y = 2 * ((float)dr16->data.ch_l_y - RC_CH_VALUE_MID) / full_range;
|
rc->dr16.ch_l_y = 2 * ((float)dr16->data.ch_l_y - RC_CH_VALUE_MID) / full_range;
|
||||||
|
|
||||||
rc->dr16.sw_l = (CMD_SwitchPos_DR16_t)dr16->data.sw_l;
|
// rc->dr16.sw_l = (CMD_SwitchPos_DR16_t)dr16->data.sw_l;
|
||||||
rc->dr16.sw_r = (CMD_SwitchPos_DR16_t)dr16->data.sw_r;
|
// rc->dr16.sw_r = (CMD_SwitchPos_DR16_t)dr16->data.sw_r;
|
||||||
|
rc->dr16.sw_l = (CMD_SwitchPos_t)dr16->data.sw_l;
|
||||||
|
rc->dr16.sw_r = (CMD_SwitchPos_t)dr16->data.sw_r;
|
||||||
|
|
||||||
rc->dr16.key = dr16->data.key;
|
rc->dr16.key = dr16->data.key;
|
||||||
|
|
||||||
|
@ -28,13 +28,11 @@ void vofa_tx_main(float *data)
|
|||||||
|
|
||||||
|
|
||||||
/*在下面使用对应的串口发送函数*/
|
/*在下面使用对应的串口发送函数*/
|
||||||
// CDC_Transmit_FS( ( uint8_t *)fdata, sizeof(fdata));
|
|
||||||
// osDelay(1);
|
HAL_UART_Transmit_DMA(&huart6, ( uint8_t *)fdata, sizeof(fdata));
|
||||||
// CDC_Transmit_FS( tail, 4);
|
osDelay(1);
|
||||||
// HAL_UART_Transmit_DMA(&huart1, ( uint8_t *)fdata, sizeof(fdata));
|
HAL_UART_Transmit_DMA(&huart6, tail, 4);
|
||||||
// osDelay(1);
|
osDelay(1);
|
||||||
// HAL_UART_Transmit_DMA(&huart1, tail, 4);
|
|
||||||
// osDelay(1);
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -29,7 +29,7 @@ void Task_nuc(void *argument){
|
|||||||
task_runtime.stack_water_mark.nuc= osThreadGetStackSpace(osThreadGetId());
|
task_runtime.stack_water_mark.nuc= osThreadGetStackSpace(osThreadGetId());
|
||||||
#endif
|
#endif
|
||||||
NUC_StartReceiving();
|
NUC_StartReceiving();
|
||||||
NUC_StartSending(send);
|
// NUC_StartSending(send);
|
||||||
if (NUC_WaitDmaCplt()){
|
if (NUC_WaitDmaCplt()){
|
||||||
NUC_RawParse(&cmd_fromnuc);
|
NUC_RawParse(&cmd_fromnuc);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user