95 lines
2.2 KiB
C
95 lines
2.2 KiB
C
#ifndef TURN_H
|
||
#define TURN_H
|
||
|
||
#ifdef __cplusplus
|
||
extern "C" {
|
||
#endif
|
||
|
||
#include "app_power.h"
|
||
|
||
|
||
|
||
|
||
|
||
#define LIMIT_SPEED_INDEX 0x7017//CSP的速度
|
||
#define LOC_REF_INDEX 0x7016//CSP的位置
|
||
#define RUM_MODE 0x7005//mode模式
|
||
|
||
|
||
|
||
|
||
#define OPERATION_MODE 0 // 运控模式
|
||
#define POSITION_MODE_PP 1 // 位置模式 (PP - Profile Position)
|
||
#define VELOCITY_MODE 2 // 速度模式
|
||
#define CURRENT_MODE 3 // 电流模式
|
||
#define POSITION_MODE_CSP 5 // 位置模式 (CSP - Cyclic Synchronous Position)
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
typedef struct TurnData
|
||
{
|
||
uint8_t mode ; // 控制模式
|
||
Timer turn_timer; // 定时器结构体
|
||
float desired_curvature; // 期望曲率
|
||
float curvature; // 当前曲率
|
||
uint32_t position; // 转动位置
|
||
uint8_t direction; // 转动方向
|
||
uint8_t old_direction; // 转动方向
|
||
float yaw_rate; // 转动角速度、
|
||
float inner_rad; //内轮角度
|
||
float outer_rad; //外轮角度
|
||
uint8_t motor_sleep; // 电机状态 0未上电,1已上电
|
||
uint8_t emergency_stop_switch; // 急停开关
|
||
uint8_t remote_emergency_stop; // 遥控器急停开关
|
||
uint8_t emergency_stop_state; // 急停状态
|
||
PowerState current_state; // 当前电源状态
|
||
|
||
float right_max_position; // 右边最大角度 rad
|
||
float right_zero_position; // 右边归零角度 rad
|
||
float right_speed; // 右边速度 rad/s
|
||
float left_max_position; // 左边最大角度 rad
|
||
float left_zero_position; // 左边归零角度 rad
|
||
float left_speed; // 左边速度 rad/s
|
||
|
||
float wheel_base; // 轴距 m
|
||
float track_width; // 轮距 m
|
||
|
||
} TurnData;
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
//外部函数
|
||
void turnAppInit(void);
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
#ifdef __cplusplus
|
||
}
|
||
#endif
|
||
|
||
#endif // TURN_H
|