1111
This commit is contained in:
parent
0f335cbc9e
commit
7ac32f55f9
File diff suppressed because one or more lines are too long
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -31,6 +31,9 @@ Note: source file '..\User\bsp\can.c' - object file renamed from 'gimbal\can.o'
|
|||||||
Note: source file '..\User\bsp\gpio.c' - object file renamed from 'gimbal\gpio.o' to 'gimbal\gpio_1.o'.
|
Note: source file '..\User\bsp\gpio.c' - object file renamed from 'gimbal\gpio.o' to 'gimbal\gpio_1.o'.
|
||||||
Note: source file '..\User\bsp\i2c.c' - object file renamed from 'gimbal\i2c.o' to 'gimbal\i2c_1.o'.
|
Note: source file '..\User\bsp\i2c.c' - object file renamed from 'gimbal\i2c.o' to 'gimbal\i2c_1.o'.
|
||||||
Note: source file '..\User\bsp\spi.c' - object file renamed from 'gimbal\spi.o' to 'gimbal\spi_1.o'.
|
Note: source file '..\User\bsp\spi.c' - object file renamed from 'gimbal\spi.o' to 'gimbal\spi_1.o'.
|
||||||
|
compiling gimbal.c...
|
||||||
|
linking...
|
||||||
|
Program Size: Code=84864 RO-data=996 RW-data=404 ZI-data=34268
|
||||||
"gimbal\gimbal.axf" - 0 Error(s), 0 Warning(s).
|
"gimbal\gimbal.axf" - 0 Error(s), 0 Warning(s).
|
||||||
|
|
||||||
<h2>Software Packages used:</h2>
|
<h2>Software Packages used:</h2>
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
Binary file not shown.
Binary file not shown.
@ -2126,7 +2126,7 @@ I (D:\Keil_v5\ARM\ARMCLANG\include\math.h)(0x6035A4A8)
|
|||||||
I (D:\Keil_v5\ARM\ARMCLANG\include\stdbool.h)(0x6035A4A8)
|
I (D:\Keil_v5\ARM\ARMCLANG\include\stdbool.h)(0x6035A4A8)
|
||||||
I (D:\Keil_v5\ARM\ARMCLANG\include\stdint.h)(0x6035A4A8)
|
I (D:\Keil_v5\ARM\ARMCLANG\include\stdint.h)(0x6035A4A8)
|
||||||
I (D:\Keil_v5\ARM\ARMCLANG\include\stddef.h)(0x6035A4A8)
|
I (D:\Keil_v5\ARM\ARMCLANG\include\stddef.h)(0x6035A4A8)
|
||||||
I (..\User\module\gimbal.h)(0x691491D4)
|
I (..\User\module\gimbal.h)(0x6917284C)
|
||||||
I (..\User\component\ahrs.h)(0x68F3410E)
|
I (..\User\component\ahrs.h)(0x68F3410E)
|
||||||
I (..\User\component\filter.h)(0x68F22FA9)
|
I (..\User\component\filter.h)(0x68F22FA9)
|
||||||
I (..\User\component\pid.h)(0x68F22FA9)
|
I (..\User\component\pid.h)(0x68F22FA9)
|
||||||
@ -2264,7 +2264,7 @@ I (..\Middlewares\Third_Party\FreeRTOS\Source\portable\RVDS\ARM_CM4F\portmacro.h
|
|||||||
I (..\Middlewares\Third_Party\FreeRTOS\Source\include\mpu_wrappers.h)(0x68B055DB)
|
I (..\Middlewares\Third_Party\FreeRTOS\Source\include\mpu_wrappers.h)(0x68B055DB)
|
||||||
I (..\Middlewares\Third_Party\FreeRTOS\Source\include\task.h)(0x68B055DB)
|
I (..\Middlewares\Third_Party\FreeRTOS\Source\include\task.h)(0x68B055DB)
|
||||||
I (..\Middlewares\Third_Party\FreeRTOS\Source\include\list.h)(0x68B055DB)
|
I (..\Middlewares\Third_Party\FreeRTOS\Source\include\list.h)(0x68B055DB)
|
||||||
I (..\User\module\gimbal.h)(0x691491D4)
|
I (..\User\module\gimbal.h)(0x6917284C)
|
||||||
I (..\User\component\ahrs.h)(0x68F3410E)
|
I (..\User\component\ahrs.h)(0x68F3410E)
|
||||||
I (..\User\component\user_math.h)(0x68F22FA9)
|
I (..\User\component\user_math.h)(0x68F22FA9)
|
||||||
I (D:\Keil_v5\ARM\ARMCLANG\include\float.h)(0x6035A4A0)
|
I (D:\Keil_v5\ARM\ARMCLANG\include\float.h)(0x6035A4A0)
|
||||||
@ -2376,7 +2376,7 @@ I (..\User\component\pid.h)(0x68F22FA9)
|
|||||||
I (..\User\component\filter.h)(0x68F22FA9)
|
I (..\User\component\filter.h)(0x68F22FA9)
|
||||||
I (..\User\device\bmi088.h)(0x68F22F87)
|
I (..\User\device\bmi088.h)(0x68F22F87)
|
||||||
I (..\User\device\device.h)(0x68F22FA9)
|
I (..\User\device\device.h)(0x68F22FA9)
|
||||||
I (..\User\module\gimbal.h)(0x691491D4)
|
I (..\User\module\gimbal.h)(0x6917284C)
|
||||||
I (..\User\device\motor.h)(0x68F22F87)
|
I (..\User\device\motor.h)(0x68F22F87)
|
||||||
I (..\User\device\motor_dm.h)(0x68F22F87)
|
I (..\User\device\motor_dm.h)(0x68F22F87)
|
||||||
I (..\User\bsp\can.h)(0x68F22FA9)
|
I (..\User\bsp\can.h)(0x68F22FA9)
|
||||||
@ -2407,7 +2407,7 @@ I (..\User\component\user_math.h)(0x68F22FA9)
|
|||||||
I (D:\Keil_v5\ARM\ARMCLANG\include\float.h)(0x6035A4A0)
|
I (D:\Keil_v5\ARM\ARMCLANG\include\float.h)(0x6035A4A0)
|
||||||
I (D:\Keil_v5\ARM\ARMCLANG\include\math.h)(0x6035A4A8)
|
I (D:\Keil_v5\ARM\ARMCLANG\include\math.h)(0x6035A4A8)
|
||||||
I (D:\Keil_v5\ARM\ARMCLANG\include\stdbool.h)(0x6035A4A8)
|
I (D:\Keil_v5\ARM\ARMCLANG\include\stdbool.h)(0x6035A4A8)
|
||||||
I (..\User\module\gimbal.h)(0x691491D4)
|
I (..\User\module\gimbal.h)(0x6917284C)
|
||||||
I (..\User\component\ahrs.h)(0x68F3410E)
|
I (..\User\component\ahrs.h)(0x68F3410E)
|
||||||
I (..\User\component\filter.h)(0x68F22FA9)
|
I (..\User\component\filter.h)(0x68F22FA9)
|
||||||
I (..\User\component\pid.h)(0x68F22FA9)
|
I (..\User\component\pid.h)(0x68F22FA9)
|
||||||
@ -2481,7 +2481,7 @@ I (..\Middlewares\Third_Party\FreeRTOS\Source\portable\RVDS\ARM_CM4F\portmacro.h
|
|||||||
I (..\Middlewares\Third_Party\FreeRTOS\Source\include\mpu_wrappers.h)(0x68B055DB)
|
I (..\Middlewares\Third_Party\FreeRTOS\Source\include\mpu_wrappers.h)(0x68B055DB)
|
||||||
I (..\Middlewares\Third_Party\FreeRTOS\Source\include\task.h)(0x68B055DB)
|
I (..\Middlewares\Third_Party\FreeRTOS\Source\include\task.h)(0x68B055DB)
|
||||||
I (..\Middlewares\Third_Party\FreeRTOS\Source\include\list.h)(0x68B055DB)
|
I (..\Middlewares\Third_Party\FreeRTOS\Source\include\list.h)(0x68B055DB)
|
||||||
I (..\User\module\gimbal.h)(0x691491D4)
|
I (..\User\module\gimbal.h)(0x6917284C)
|
||||||
I (..\User\component\ahrs.h)(0x68F3410E)
|
I (..\User\component\ahrs.h)(0x68F3410E)
|
||||||
I (..\User\component\user_math.h)(0x68F22FA9)
|
I (..\User\component\user_math.h)(0x68F22FA9)
|
||||||
I (D:\Keil_v5\ARM\ARMCLANG\include\float.h)(0x6035A4A0)
|
I (D:\Keil_v5\ARM\ARMCLANG\include\float.h)(0x6035A4A0)
|
||||||
@ -2534,8 +2534,8 @@ I (..\User\device\motor_rm.h)(0x68F22F87)
|
|||||||
I (..\User\module\config.h)(0x68DD3463)
|
I (..\User\module\config.h)(0x68DD3463)
|
||||||
I (..\User\device\motor_lz.h)(0x68F22F87)
|
I (..\User\device\motor_lz.h)(0x68F22F87)
|
||||||
I (..\User\device\motor_lk.h)(0x68F22F87)
|
I (..\User\device\motor_lk.h)(0x68F22F87)
|
||||||
F (..\User\module\gimbal.c)(0x691495F0)(-xc -std=c99 --target=arm-arm-none-eabi -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard -c
-fno-rtti -funsigned-char -fshort-enums -fshort-wchar
-gdwarf-3 -O0 -ffunction-sections -w -I ../Core/Inc -I ../Drivers/STM32F4xx_HAL_Driver/Inc -I ../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy -I ../Drivers/CMSIS/Device/ST/STM32F4xx/Include -I ../Drivers/CMSIS/Include -I ../User/bsp -I ../User/component -I ../User/device -I ../Middlewares/Third_Party/FreeRTOS/Source/include -I ../Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS_V2 -I ../Middlewares/Third_Party/FreeRTOS/Source/portable/RVDS/ARM_CM4F -I ../User/task -I ../User -I ../User/module
-I./RTE/_gimbal
-ID:/Keil_v5/Arm/Packs/ARM/CMSIS/5.7.0/CMSIS/Core/Include
-ID:/Keil_v5/Arm/Packs/Keil/STM32F4xx_DFP/2.17.1/Drivers/CMSIS/Device/ST/STM32F4xx/Include
-D__UVISION_VERSION="534" -D_RTE_ -DSTM32F407xx -D_RTE_ -DUSE_HAL_DRIVER -DSTM32F407xx
-o gimbal/gimbal.o -MD)
|
F (..\User\module\gimbal.c)(0x69172B7F)(-xc -std=c99 --target=arm-arm-none-eabi -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard -c
-fno-rtti -funsigned-char -fshort-enums -fshort-wchar
-gdwarf-3 -O0 -ffunction-sections -w -I ../Core/Inc -I ../Drivers/STM32F4xx_HAL_Driver/Inc -I ../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy -I ../Drivers/CMSIS/Device/ST/STM32F4xx/Include -I ../Drivers/CMSIS/Include -I ../User/bsp -I ../User/component -I ../User/device -I ../Middlewares/Third_Party/FreeRTOS/Source/include -I ../Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS_V2 -I ../Middlewares/Third_Party/FreeRTOS/Source/portable/RVDS/ARM_CM4F -I ../User/task -I ../User -I ../User/module
-I./RTE/_gimbal
-ID:/Keil_v5/Arm/Packs/ARM/CMSIS/5.7.0/CMSIS/Core/Include
-ID:/Keil_v5/Arm/Packs/Keil/STM32F4xx_DFP/2.17.1/Drivers/CMSIS/Device/ST/STM32F4xx/Include
-D__UVISION_VERSION="534" -D_RTE_ -DSTM32F407xx -D_RTE_ -DUSE_HAL_DRIVER -DSTM32F407xx
-o gimbal/gimbal.o -MD)
|
||||||
I (..\User\module\gimbal.h)(0x691491D4)
|
I (..\User\module\gimbal.h)(0x6917284C)
|
||||||
I (..\User\component\ahrs.h)(0x68F3410E)
|
I (..\User\component\ahrs.h)(0x68F3410E)
|
||||||
I (..\User\component\user_math.h)(0x68F22FA9)
|
I (..\User\component\user_math.h)(0x68F22FA9)
|
||||||
I (D:\Keil_v5\ARM\ARMCLANG\include\float.h)(0x6035A4A0)
|
I (D:\Keil_v5\ARM\ARMCLANG\include\float.h)(0x6035A4A0)
|
||||||
@ -2598,7 +2598,7 @@ I (..\Middlewares\Third_Party\FreeRTOS\Source\include\list.h)(0x68B055DB)
|
|||||||
I (..\Middlewares\Third_Party\FreeRTOS\Source\CMSIS_RTOS_V2\cmsis_os2.h)(0x68B055DB)
|
I (..\Middlewares\Third_Party\FreeRTOS\Source\CMSIS_RTOS_V2\cmsis_os2.h)(0x68B055DB)
|
||||||
I (..\User\device\motor_rm.h)(0x68F22F87)
|
I (..\User\device\motor_rm.h)(0x68F22F87)
|
||||||
I (..\User\bsp\time.h)(0x68F22FA9)
|
I (..\User\bsp\time.h)(0x68F22FA9)
|
||||||
F (..\User\module\config.c)(0x691493B1)(-xc -std=c99 --target=arm-arm-none-eabi -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard -c
-fno-rtti -funsigned-char -fshort-enums -fshort-wchar
-gdwarf-3 -O0 -ffunction-sections -w -I ../Core/Inc -I ../Drivers/STM32F4xx_HAL_Driver/Inc -I ../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy -I ../Drivers/CMSIS/Device/ST/STM32F4xx/Include -I ../Drivers/CMSIS/Include -I ../User/bsp -I ../User/component -I ../User/device -I ../Middlewares/Third_Party/FreeRTOS/Source/include -I ../Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS_V2 -I ../Middlewares/Third_Party/FreeRTOS/Source/portable/RVDS/ARM_CM4F -I ../User/task -I ../User -I ../User/module
-I./RTE/_gimbal
-ID:/Keil_v5/Arm/Packs/ARM/CMSIS/5.7.0/CMSIS/Core/Include
-ID:/Keil_v5/Arm/Packs/Keil/STM32F4xx_DFP/2.17.1/Drivers/CMSIS/Device/ST/STM32F4xx/Include
-D__UVISION_VERSION="534" -D_RTE_ -DSTM32F407xx -D_RTE_ -DUSE_HAL_DRIVER -DSTM32F407xx
-o gimbal/config.o -MD)
|
F (..\User\module\config.c)(0x691727B8)(-xc -std=c99 --target=arm-arm-none-eabi -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard -c
-fno-rtti -funsigned-char -fshort-enums -fshort-wchar
-gdwarf-3 -O0 -ffunction-sections -w -I ../Core/Inc -I ../Drivers/STM32F4xx_HAL_Driver/Inc -I ../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy -I ../Drivers/CMSIS/Device/ST/STM32F4xx/Include -I ../Drivers/CMSIS/Include -I ../User/bsp -I ../User/component -I ../User/device -I ../Middlewares/Third_Party/FreeRTOS/Source/include -I ../Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS_V2 -I ../Middlewares/Third_Party/FreeRTOS/Source/portable/RVDS/ARM_CM4F -I ../User/task -I ../User -I ../User/module
-I./RTE/_gimbal
-ID:/Keil_v5/Arm/Packs/ARM/CMSIS/5.7.0/CMSIS/Core/Include
-ID:/Keil_v5/Arm/Packs/Keil/STM32F4xx_DFP/2.17.1/Drivers/CMSIS/Device/ST/STM32F4xx/Include
-D__UVISION_VERSION="534" -D_RTE_ -DSTM32F407xx -D_RTE_ -DUSE_HAL_DRIVER -DSTM32F407xx
-o gimbal/config.o -MD)
|
||||||
I (..\User\component\user_math.h)(0x68F22FA9)
|
I (..\User\component\user_math.h)(0x68F22FA9)
|
||||||
I (D:\Keil_v5\ARM\ARMCLANG\include\float.h)(0x6035A4A0)
|
I (D:\Keil_v5\ARM\ARMCLANG\include\float.h)(0x6035A4A0)
|
||||||
I (D:\Keil_v5\ARM\ARMCLANG\include\math.h)(0x6035A4A8)
|
I (D:\Keil_v5\ARM\ARMCLANG\include\math.h)(0x6035A4A8)
|
||||||
@ -2658,7 +2658,7 @@ I (..\Middlewares\Third_Party\FreeRTOS\Source\include\task.h)(0x68B055DB)
|
|||||||
I (..\Middlewares\Third_Party\FreeRTOS\Source\include\list.h)(0x68B055DB)
|
I (..\Middlewares\Third_Party\FreeRTOS\Source\include\list.h)(0x68B055DB)
|
||||||
I (..\Middlewares\Third_Party\FreeRTOS\Source\CMSIS_RTOS_V2\cmsis_os2.h)(0x68B055DB)
|
I (..\Middlewares\Third_Party\FreeRTOS\Source\CMSIS_RTOS_V2\cmsis_os2.h)(0x68B055DB)
|
||||||
I (..\User\device\motor_lk.h)(0x68F22F87)
|
I (..\User\device\motor_lk.h)(0x68F22F87)
|
||||||
I (..\User\module\gimbal.h)(0x691491D4)
|
I (..\User\module\gimbal.h)(0x6917284C)
|
||||||
I (..\User\component\ahrs.h)(0x68F3410E)
|
I (..\User\component\ahrs.h)(0x68F3410E)
|
||||||
I (..\User\component\filter.h)(0x68F22FA9)
|
I (..\User\component\filter.h)(0x68F22FA9)
|
||||||
I (..\User\component\pid.h)(0x68F22FA9)
|
I (..\User\component\pid.h)(0x68F22FA9)
|
||||||
|
|||||||
Binary file not shown.
@ -42,11 +42,6 @@ Config_RobotParam_t robot_config = {
|
|||||||
.zero={
|
.zero={
|
||||||
.pit_encoder=0,
|
.pit_encoder=0,
|
||||||
.yaw_encoder=0,
|
.yaw_encoder=0,
|
||||||
/*零点行程*/
|
|
||||||
.travel={
|
|
||||||
.yaw=0,
|
|
||||||
.pit=0,
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
|
|
||||||
.motor={
|
.motor={
|
||||||
|
|||||||
@ -33,6 +33,26 @@
|
|||||||
/* Private macro ------------------------------------------------------------ */
|
/* Private macro ------------------------------------------------------------ */
|
||||||
/* Private variables -------------------------------------------------------- */
|
/* Private variables -------------------------------------------------------- */
|
||||||
/* Private function -------------------------------------------------------- */
|
/* Private function -------------------------------------------------------- */
|
||||||
|
/**
|
||||||
|
* \brief 计算角度偏差
|
||||||
|
*
|
||||||
|
* \param
|
||||||
|
* \param
|
||||||
|
*
|
||||||
|
* \return 函数运行结果
|
||||||
|
*/
|
||||||
|
static float motor_imu_offset(float* motor, float* imu){
|
||||||
|
|
||||||
|
float motor_imu_offset = motor - imu;
|
||||||
|
/* 处理跨越±π的情况 */
|
||||||
|
if (motor_imu_offset > M_PI) motor_imu_offset -= M_2PI;
|
||||||
|
if (motor_imu_offset < -M_PI) motor_imu_offset += M_2PI;
|
||||||
|
|
||||||
|
return motor_imu_offset;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief 设置云台模式
|
* \brief 设置云台模式
|
||||||
@ -61,8 +81,7 @@ static int8_t Gimbal_SetMode(Gimbal_t *g, Gimbal_Mode_t mode) {
|
|||||||
|
|
||||||
g->setpoint.eulr.pit = g->feedback.imu.eulr.pit;
|
g->setpoint.eulr.pit = g->feedback.imu.eulr.pit;
|
||||||
g->setpoint.eulr.yaw = g->feedback.imu.eulr.yaw;
|
g->setpoint.eulr.yaw = g->feedback.imu.eulr.yaw;
|
||||||
g->setpoint.ecd.pit=g->feedback.motor.pit.rotor_abs_angle;
|
|
||||||
g->setpoint.ecd.yaw=g->feedback.motor.yaw.rotor_abs_angle;
|
|
||||||
|
|
||||||
g->mode = mode;
|
g->mode = mode;
|
||||||
return 0;
|
return 0;
|
||||||
@ -229,17 +248,14 @@ int8_t Gimbal_Control(Gimbal_t *g, Gimbal_CMD_t *g_cmd) {
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
// if((g->feedback.motor.yaw.rotor_abs_angle)>M_PI)g->feedback.motor.yaw.rotor_abs_angle-M_2PI;
|
|
||||||
|
|
||||||
float motor_imu_offset = g->feedback.motor.yaw.rotor_abs_angle - g->feedback.imu.eulr.yaw;
|
float yaw_motor_imu_offset=motor_imu_offset(&g->feedback.motor.yaw.rotor_abs_angle,
|
||||||
/* 处理跨越±π的情况 */
|
&g->feedback.imu.eulr.yaw);
|
||||||
if (motor_imu_offset > M_PI) motor_imu_offset -= M_2PI;
|
|
||||||
if (motor_imu_offset < -M_PI) motor_imu_offset += M_2PI;
|
|
||||||
/* 计算到限位边界的距离 (这个限位给yaw)*/
|
|
||||||
float delta_max = CircleError(g->limit.yaw.max,
|
float delta_max = CircleError(g->limit.yaw.max,
|
||||||
(g->setpoint.eulr.yaw + motor_imu_offset + delta_yaw), M_2PI);
|
(g->setpoint.eulr.yaw + yaw_motor_imu_offset + delta_yaw), M_2PI);
|
||||||
float delta_min = CircleError(g->limit.yaw.min,
|
float delta_min = CircleError(g->limit.yaw.min,
|
||||||
(g->setpoint.eulr.yaw + motor_imu_offset + delta_yaw), M_2PI);
|
(g->setpoint.eulr.yaw + yaw_motor_imu_offset + delta_yaw), M_2PI);
|
||||||
|
|
||||||
switch (g->mode) {
|
switch (g->mode) {
|
||||||
case GIMBAL_MODE_RELAX:/*放松模式*/
|
case GIMBAL_MODE_RELAX:/*放松模式*/
|
||||||
@ -281,14 +297,19 @@ int8_t Gimbal_Control(Gimbal_t *g, Gimbal_CMD_t *g_cmd) {
|
|||||||
break;
|
break;
|
||||||
case GIMBAL_MODE_RELATIVE:
|
case GIMBAL_MODE_RELATIVE:
|
||||||
/*计算零点*/
|
/*计算零点*/
|
||||||
g->zero.yaw = g->param->zero.yaw_encoder - g->param->zero.travel.yaw;
|
g->zero.travel.yaw=motor_imu_offset(&g->param->zero.yaw_encoder,&g->feedback.imu.eulr.yaw);
|
||||||
g->zero.pit = g->param->zero.pit_encoder - g->param->zero.travel.pit;
|
g->zero.travel.yaw=motor_imu_offset(&g->param->zero.pit_encoder,&g->feedback.imu.eulr.pit);
|
||||||
|
|
||||||
|
g->zero.yaw = g->param->zero.yaw_encoder - g->zero.travel.yaw;
|
||||||
|
g->zero.pit = g->param->zero.pit_encoder - g->zero.travel.pit;
|
||||||
/*基于零点的设定角度*/
|
/*基于零点的设定角度*/
|
||||||
/*加的相对角度应该限制在3.14~-3.14*/
|
/*加的相对角度应该限制在3.14~-3.14*/
|
||||||
CircleAdd(&(g->relative_angle.yaw),delta_yaw,M_2PI);
|
CircleAdd(&(g->relative_angle.yaw),delta_yaw,M_2PI);
|
||||||
if((g->relative_angle.yaw)>=M_2PI)g->relative_angle.yaw-=M_2PI;
|
if((g->relative_angle.yaw)>=M_2PI)g->relative_angle.yaw-=M_2PI;
|
||||||
|
/*限制pit的累加角度*/
|
||||||
g->relative_angle.pit=+delta_pit;
|
g->relative_angle.pit=+delta_pit;
|
||||||
|
Clip(&(g->relative_angle.pit),(g->param->Limit_t.pit_min+g->zero.pit),
|
||||||
|
(g->param->Limit_t.pit_max-g->zero.pit));
|
||||||
|
|
||||||
g->setpoint.eulr.yaw=g->zero.yaw + g->relative_angle.yaw;
|
g->setpoint.eulr.yaw=g->zero.yaw + g->relative_angle.yaw;
|
||||||
g->setpoint.eulr.pit=g->zero.pit + g->relative_angle.pit;
|
g->setpoint.eulr.pit=g->zero.pit + g->relative_angle.pit;
|
||||||
@ -321,11 +342,12 @@ int8_t Gimbal_Control(Gimbal_t *g, Gimbal_CMD_t *g_cmd) {
|
|||||||
g->out.pit+=g->param->feedforward.imu.coefficient_pit*(pit_omega_set_point - g->feedback.imu.gyro.x);
|
g->out.pit+=g->param->feedforward.imu.coefficient_pit*(pit_omega_set_point - g->feedback.imu.gyro.x);
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
/* 输出滤波 */
|
/* 输出滤波 */
|
||||||
g->out.yaw = LowPassFilter2p_Apply(&g->filter_out.yaw, g->out.yaw);
|
g->out.yaw = LowPassFilter2p_Apply(&g->filter_out.yaw, g->out.yaw);
|
||||||
g->out.pit = LowPassFilter2p_Apply(&g->filter_out.pit, g->out.pit);
|
g->out.pit = LowPassFilter2p_Apply(&g->filter_out.pit, g->out.pit);
|
||||||
|
|
||||||
}
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -54,8 +54,7 @@ typedef struct{
|
|||||||
}travel;
|
}travel;
|
||||||
float pit; /*零点*/
|
float pit; /*零点*/
|
||||||
float yaw;
|
float yaw;
|
||||||
float pit_encoder; /*零点*/
|
|
||||||
float yaw_encoder;
|
|
||||||
} Gimbal_zero_t;
|
} Gimbal_zero_t;
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
@ -75,7 +74,7 @@ typedef struct {
|
|||||||
typedef struct {
|
typedef struct {
|
||||||
|
|
||||||
Gimbal_MOTOR_Param_t motor;
|
Gimbal_MOTOR_Param_t motor;
|
||||||
Gimbal_zero_t zero;
|
|
||||||
|
|
||||||
struct {
|
struct {
|
||||||
KPID_Params_t yaw_omega; /* yaw轴角速度环PID参数 */
|
KPID_Params_t yaw_omega; /* yaw轴角速度环PID参数 */
|
||||||
@ -90,6 +89,11 @@ typedef struct {
|
|||||||
|
|
||||||
} pid;
|
} pid;
|
||||||
|
|
||||||
|
struct {
|
||||||
|
float pit_encoder; /*零点*/
|
||||||
|
float yaw_encoder;
|
||||||
|
|
||||||
|
}zero;
|
||||||
/* 前馈系数 */
|
/* 前馈系数 */
|
||||||
struct {
|
struct {
|
||||||
struct{
|
struct{
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user