Slam.h 1.65 KB
#ifndef __SLAM_H
	#define __SLAM_H
	
	#include "sys.h"
	#include "my_data.h"
	#include "My_GetAdc.h"
	#include "math.h"

	void SlamPos_Ananlysis(CanRxMsg *Message);
	void Slam_Pro(void);


#define KXDPB_Slam 1  //在获取车中心位置换算上,屏蔽,不考虑置信度这个信息,可在具体使用信息上单独判断

extern u8 Tim4_Slam1Nums;//发送区域检测时间间隔计时
extern u8 Tim4_Slam2Nums;//获取雷达信息时间计时
extern u8 Tim5_Slam3Nums;//置信度丢失计时


typedef struct {
float X_Slam;
float Y_Slam;
short Ang;//此点期望的车身角度,其中目标角度(0<Ang<=360

}Str_SlamPoint;//

typedef struct {

	u16 Code;//虚拟码值
	Str_SlamPoint SP;//目标点位置
	u8 P_Type1;//点属性 1->行进普通点;2->拐点;3-充电点;4->工位料台;5->进工位料台前点;25->拐点+料台前点;	
	u8 P_AD_Type2;//对中精度属性 0->不调整; 1->此点到位后SLAM粗略调整 等级1;2->此点到位后SLAM精确调整 等级2;3->此点到位后SLAM精确调整 等级3;11->此点到位后CCD粗略调整 等级1;12->此点到位后CCD精确调整 等级2;11->此点到位后CCD精确调整 等级3;
	u8 P_AC_Type3;//0->无动作;1->行走;2->上升到最高位置;3->下降到底;4->升降到指定高度,且高度明确;5->升降到特定高度,但高度不明确,需要到指定位置后才可明确;6->充电;7->取消充电;

	u16 Dis;//0-5000,升降高度/充电距离   单位1mm
	u8 LaserNo;//防撞属性 0:AGV自行决定开启图形;其他 :PC指定图形	
	u8 P_ConveyDir;//相对地面坐标系1-x+;2-y+;3-x-;4-y-;
}Str_TaskPoint;//任务点结构体属性

#define LengTP sizeof(Str_TaskPoint)
extern float Ang_SlamLaser;
extern Str_SlamPoint  AgvSP;
extern double X_SlamAgv;
extern double Y_SlamAgv;
extern float Ang_SlamAgv;
extern u8 SlamMess_Fresh;
extern int Status_SlamLaser;//置信度


extern int F_Dx_AgvCToMap;
extern int F_Dy_AgvCToMap;
extern u16 F_DAng_AgvCToMap;



#endif