82 lines
1.6 KiB
C++
82 lines
1.6 KiB
C++
#include "module/chassis.hpp"
|
|
#include "module/dr16.h"
|
|
|
|
Chassis::Chassis() {
|
|
motors_param[0] = {
|
|
.can = BSP_CAN_2,
|
|
.id = 0x201,
|
|
.module = MOTOR_M3508,
|
|
.reverse = false,
|
|
.gear = true
|
|
};
|
|
motors_param[1] = {
|
|
.can = BSP_CAN_2,
|
|
.id = 0x202,
|
|
.module = MOTOR_M3508,
|
|
.reverse = false,
|
|
.gear = true
|
|
};
|
|
motors_param[2] = {
|
|
.can = BSP_CAN_2,
|
|
.id = 0x203,
|
|
.module = MOTOR_M3508,
|
|
.reverse = false,
|
|
.gear = true
|
|
};
|
|
motors_param[3] = {
|
|
.can = BSP_CAN_2,
|
|
.id = 0x204,
|
|
.module = MOTOR_M3508,
|
|
.reverse = false,
|
|
.gear = true
|
|
};
|
|
}
|
|
|
|
void Chassis::init() {
|
|
MOTOR_RM_Register(&motors_param[0]);
|
|
MOTOR_RM_Register(&motors_param[1]);
|
|
MOTOR_RM_Register(&motors_param[2]);
|
|
MOTOR_RM_Register(&motors_param[3]);
|
|
}
|
|
|
|
void Chassis::operator()() {
|
|
//更新数据
|
|
update_motors();
|
|
//解算底盘数据
|
|
|
|
//计算pid
|
|
//发送控制
|
|
// MOTOR_RM_SetOutput(&motors_param[0], 0.1f);
|
|
// MOTOR_RM_Ctrl(&motors_param[0]);
|
|
|
|
|
|
}
|
|
|
|
void Chassis::update_motors(){
|
|
MOTOR_RM_UpdateAll();
|
|
|
|
MOTOR_RM_t *motor = NULL;
|
|
motor = MOTOR_RM_GetMotor(&motors_param[0]);
|
|
chassis_motors[0] = *motor;
|
|
motor = MOTOR_RM_GetMotor(&motors_param[1]);
|
|
chassis_motors[1] = *motor;
|
|
motor = MOTOR_RM_GetMotor(&motors_param[2]);
|
|
chassis_motors[2] = *motor;
|
|
motor = MOTOR_RM_GetMotor(&motors_param[3]);
|
|
chassis_motors[3] = *motor;
|
|
}
|
|
|
|
void Chassis::calc_chassis(){
|
|
if(dr16.data.sw_r == DR16_SW_DOWN){
|
|
|
|
}
|
|
}
|
|
|
|
void Chassis::calc_pid(){
|
|
|
|
}
|
|
|
|
void Chassis::send_control(){
|
|
|
|
}
|