修改神秘小bug
This commit is contained in:
parent
1b237f9944
commit
0b74f21104
@ -336,13 +336,13 @@ void Chassis_Output(Chassis_t *c) {
|
|||||||
if (c == NULL) return;
|
if (c == NULL) return;
|
||||||
for (int i = 0; i < 4; i++) {
|
for (int i = 0; i < 4; i++) {
|
||||||
MOTOR_LZ_MotionParam_t param = {0};
|
MOTOR_LZ_MotionParam_t param = {0};
|
||||||
param.torque = c->output.joint[i].torque;
|
// param.torque = c->output.joint[i].torque;
|
||||||
MOTOR_LZ_MotionControl(&c->param->joint_motors[i], ¶m);
|
MOTOR_LZ_MotionControl(&c->param->joint_motors[i], ¶m);
|
||||||
}
|
}
|
||||||
BSP_TIME_Delay_us(400); // 等待CAN总线空闲,确保前面的命令发送完成
|
BSP_TIME_Delay_us(400); // 等待CAN总线空闲,确保前面的命令发送完成
|
||||||
for (int i = 0; i < 2; i++) {
|
for (int i = 0; i < 2; i++) {
|
||||||
MOTOR_LK_SetOutput(&c->param->wheel_motors[i], c->output.wheel[i]);
|
// MOTOR_LK_SetOutput(&c->param->wheel_motors[i], c->output.wheel[i]);
|
||||||
// MOTOR_LK_SetOutput(&c->param->wheel_motors[i], 0.0f);
|
MOTOR_LK_SetOutput(&c->param->wheel_motors[i], 0.0f);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -180,10 +180,10 @@ Config_RobotParam_t robot_config = {
|
|||||||
.rc_can_param = {
|
.rc_can_param = {
|
||||||
.can = BSP_CAN_2,
|
.can = BSP_CAN_2,
|
||||||
.mode = RC_CAN_MODE_SLAVE,
|
.mode = RC_CAN_MODE_SLAVE,
|
||||||
.joy_id = 0x250,
|
.joy_id = 0x30,
|
||||||
.sw_id = 0x251,
|
.sw_id = 0x31,
|
||||||
.mouse_id = 0x252,
|
.mouse_id = 0x32,
|
||||||
.keyboard_id = 0x253,
|
.keyboard_id = 0x33,
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@ -8,7 +8,7 @@
|
|||||||
- delay: 0
|
- delay: 0
|
||||||
description: ''
|
description: ''
|
||||||
freq_control: true
|
freq_control: true
|
||||||
frequency: 500.0
|
frequency: 120.0
|
||||||
function: Task_rc
|
function: Task_rc
|
||||||
name: rc
|
name: rc
|
||||||
stack: 256
|
stack: 256
|
||||||
|
|||||||
@ -7,7 +7,6 @@
|
|||||||
#include "task/user_task.h"
|
#include "task/user_task.h"
|
||||||
/* USER INCLUDE BEGIN */
|
/* USER INCLUDE BEGIN */
|
||||||
#include "bsp/can.h"
|
#include "bsp/can.h"
|
||||||
#include "device/dr16.h"
|
|
||||||
#include "device/rc_can.h"
|
#include "device/rc_can.h"
|
||||||
#include "module/balance_chassis.h"
|
#include "module/balance_chassis.h"
|
||||||
#include "module/config.h"
|
#include "module/config.h"
|
||||||
@ -18,10 +17,8 @@
|
|||||||
/* Private macro ------------------------------------------------------------ */
|
/* Private macro ------------------------------------------------------------ */
|
||||||
/* Private variables -------------------------------------------------------- */
|
/* Private variables -------------------------------------------------------- */
|
||||||
/* USER STRUCT BEGIN */
|
/* USER STRUCT BEGIN */
|
||||||
DR16_t dr16;
|
|
||||||
RC_CAN_t rc_can;
|
RC_CAN_t rc_can;
|
||||||
Chassis_CMD_t cmd_to_chassis;
|
Chassis_CMD_t cmd_to_chassis;
|
||||||
#define USE_RC_CAN
|
|
||||||
/* USER STRUCT END */
|
/* USER STRUCT END */
|
||||||
|
|
||||||
/* Private function --------------------------------------------------------- */
|
/* Private function --------------------------------------------------------- */
|
||||||
@ -38,40 +35,12 @@ void Task_rc(void *argument) {
|
|||||||
uint32_t tick = osKernelGetTickCount(); /* 控制任务运行频率的计时 */
|
uint32_t tick = osKernelGetTickCount(); /* 控制任务运行频率的计时 */
|
||||||
/* USER CODE INIT BEGIN */
|
/* USER CODE INIT BEGIN */
|
||||||
BSP_CAN_Init();
|
BSP_CAN_Init();
|
||||||
DR16_Init(&dr16);
|
|
||||||
RC_CAN_Init(&rc_can, &Config_GetRobotParam()->rc_can_param);
|
RC_CAN_Init(&rc_can, &Config_GetRobotParam()->rc_can_param);
|
||||||
/* USER CODE INIT END */
|
/* USER CODE INIT END */
|
||||||
|
|
||||||
while (1) {
|
while (1) {
|
||||||
tick += delay_tick; /* 计算下一个唤醒时刻 */
|
tick += delay_tick; /* 计算下一个唤醒时刻 */
|
||||||
/* USER CODE BEGIN */
|
/* USER CODE BEGIN */
|
||||||
#ifdef USE_DR16
|
|
||||||
DR16_StartDmaRecv(&dr16);
|
|
||||||
if (DR16_WaitDmaCplt(20)) {
|
|
||||||
DR16_ParseData(&dr16);
|
|
||||||
switch (dr16.data.sw_l) {
|
|
||||||
case CMD_SW_UP: // 上位
|
|
||||||
cmd_to_chassis.mode = CHASSIS_MODE_RELAX;
|
|
||||||
break;
|
|
||||||
case CMD_SW_MID: // 中位
|
|
||||||
cmd_to_chassis.mode = CHASSIS_MODE_RECOVER;
|
|
||||||
break;
|
|
||||||
case CMD_SW_DOWN: // 下位
|
|
||||||
cmd_to_chassis.mode = CHASSIS_MODE_WHELL_BALANCE;
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
cmd_to_chassis.mode = CHASSIS_MODE_RELAX;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
cmd_to_chassis.move_vec.vx = dr16.data.ch_l_y;
|
|
||||||
cmd_to_chassis.move_vec.vy = dr16.data.ch_l_x;
|
|
||||||
cmd_to_chassis.move_vec.wz = dr16.data.ch_r_x;
|
|
||||||
cmd_to_chassis.height = dr16.data.ch_res;
|
|
||||||
} else {
|
|
||||||
DR16_Offline(&dr16);
|
|
||||||
cmd_to_chassis.mode = CHASSIS_MODE_RELAX;
|
|
||||||
}
|
|
||||||
#elif defined USE_RC_CAN
|
|
||||||
RC_CAN_Update(&rc_can, RC_CAN_DATA_JOYSTICK);
|
RC_CAN_Update(&rc_can, RC_CAN_DATA_JOYSTICK);
|
||||||
RC_CAN_Update(&rc_can, RC_CAN_DATA_SWITCH);
|
RC_CAN_Update(&rc_can, RC_CAN_DATA_SWITCH);
|
||||||
if (rc_can.header.online) {
|
if (rc_can.header.online) {
|
||||||
@ -97,7 +66,6 @@ void Task_rc(void *argument) {
|
|||||||
RC_CAN_OFFLINE(&rc_can);
|
RC_CAN_OFFLINE(&rc_can);
|
||||||
cmd_to_chassis.mode = CHASSIS_MODE_RELAX;
|
cmd_to_chassis.mode = CHASSIS_MODE_RELAX;
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
osMessageQueuePut(task_runtime.msgq.Chassis_cmd, &cmd_to_chassis, 0, 0);
|
osMessageQueuePut(task_runtime.msgq.Chassis_cmd, &cmd_to_chassis, 0, 0);
|
||||||
|
|
||||||
/* USER CODE END */
|
/* USER CODE END */
|
||||||
|
|||||||
@ -14,7 +14,7 @@ extern "C" {
|
|||||||
/* Exported constants ------------------------------------------------------- */
|
/* Exported constants ------------------------------------------------------- */
|
||||||
/* 任务运行频率 */
|
/* 任务运行频率 */
|
||||||
#define BLINK_FREQ (100.0)
|
#define BLINK_FREQ (100.0)
|
||||||
#define RC_FREQ (500.0)
|
#define RC_FREQ (120.0)
|
||||||
#define ATTI_ESTI_FREQ (1000.0)
|
#define ATTI_ESTI_FREQ (1000.0)
|
||||||
#define CTRL_CHASSIS_FREQ (500.0)
|
#define CTRL_CHASSIS_FREQ (500.0)
|
||||||
#define CTRL_GIMBAL_FREQ (500.0)
|
#define CTRL_GIMBAL_FREQ (500.0)
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user