109 lines
2.0 KiB
C
109 lines
2.0 KiB
C
#ifndef NAVI_H
|
||
#define NAVI_H
|
||
|
||
|
||
#include "Action.h"
|
||
#include "pid.h"
|
||
#include "ahrs.h"
|
||
#include "bmi088.h"
|
||
#include "map.h"
|
||
|
||
typedef enum {
|
||
AUTO_MODE, // 自动跑点模式
|
||
MANUAL_MODE , // 控制模式
|
||
NO_MODE
|
||
} Navi_Mode_t;
|
||
|
||
typedef struct {
|
||
|
||
Navi_Mode_t mode;
|
||
|
||
int Trig_flag;//触发沿,初始值为零,两种控制模式下,这个值变为1,会使cnt+1,为-1,使cnt-1
|
||
|
||
} Navi_COT_MODE_t;
|
||
|
||
|
||
typedef struct{
|
||
float pos_x;
|
||
float pos_y;
|
||
float last_pos_x;
|
||
float last_pos_y;
|
||
}chassis_position_t;
|
||
|
||
typedef enum{
|
||
YES,
|
||
NO,
|
||
NEXT1,
|
||
NEXT2
|
||
}is_cpt_e;
|
||
typedef struct{
|
||
pid_param_t pid_PosSpeed_x_param;
|
||
pid_param_t pid_PosSpeed_y_param;
|
||
pid_param_t pid_pos_x_out_param;
|
||
pid_param_t pid_pos_x_inner_param;
|
||
pid_param_t pid_pos_y_out_param;
|
||
pid_param_t pid_pos_y_inner_param;
|
||
pid_param_t pid_OutAngle_param;
|
||
pid_param_t pid_InnerAngle_param;
|
||
pid_param_t path_speed_pid_param;
|
||
|
||
}ops_pid_param_t;
|
||
|
||
typedef struct {
|
||
ops_pid_param_t ops_pid;
|
||
const point_t *path;
|
||
int8_t path_num;
|
||
}ops_param_t;
|
||
|
||
/**
|
||
* @brief
|
||
*
|
||
*/
|
||
typedef struct {
|
||
Action_POS_t *chassis_pos;
|
||
fp32 current_x;
|
||
fp32 current_y;
|
||
|
||
fp32 next_mapx;
|
||
fp32 next_mapy;
|
||
const point_t *chassis_map;
|
||
const ops_param_t *param;
|
||
PathState_t state;
|
||
Navi_COT_MODE_t Navi_Mode;
|
||
|
||
AHRS_Eulr_t ops_imu_pos;
|
||
AHRS_Gyro_t ops_gyro;
|
||
|
||
|
||
|
||
pid_type_def pid_PosSpeed_x;
|
||
pid_type_def pid_PosSpeed_y;
|
||
pid_type_def pid_pos_x_out;
|
||
pid_type_def pid_pos_x_inner;
|
||
pid_type_def pid_pos_y_out;
|
||
pid_type_def pid_pos_y_inner;
|
||
pid_type_def pid_OutAngle;
|
||
pid_type_def pid_InnerAngle;
|
||
pid_type_def path_speed_pid;
|
||
|
||
|
||
is_cpt_e POS_IS_CPT;
|
||
|
||
struct
|
||
{
|
||
fp32 vx;
|
||
fp32 vy;
|
||
fp32 yaw_angle;
|
||
}final_out;
|
||
|
||
}ops_t;
|
||
|
||
|
||
|
||
|
||
int8_t Action_init(ops_t *o,const ops_param_t *param,Action_POS_t *pos);
|
||
|
||
int8_t go_path(ops_t *o,CMD_ACTION_t *ops_out);
|
||
#endif
|
||
|