2025-06-08 10:46:41 +08:00
|
|
|
|
#pragma once
|
|
|
|
|
|
|
|
|
|
|
|
#include <VZNL_Types.h>
|
|
|
|
|
|
#include <vector>
|
2025-07-15 21:39:09 +08:00
|
|
|
|
#include <SG_errCode.h>
|
2025-06-08 10:46:41 +08:00
|
|
|
|
|
|
|
|
|
|
#define PI 3.141592654
|
|
|
|
|
|
|
|
|
|
|
|
// <20><><EFBFBD><EFBFBD>ŷ<EFBFBD><C5B7><EFBFBD>ǽṹ<C7BD>壨<EFBFBD><E5A3A8>λ<EFBFBD><CEBB><EFBFBD>ȣ<EFBFBD>
|
|
|
|
|
|
typedef struct{
|
|
|
|
|
|
double roll; // <20><>X<EFBFBD><58><EFBFBD><EFBFBD>ת<EFBFBD><D7AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
double pitch; // <20><>Y<EFBFBD><59><EFBFBD><EFBFBD>ת<EFBFBD><D7AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
double yaw; // <20><>Z<EFBFBD><5A><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>ƫ<EFBFBD><C6AB><EFBFBD><EFBFBD>
|
|
|
|
|
|
}SSG_EulerAngles;
|
|
|
|
|
|
|
|
|
|
|
|
//<2F>Թ<EFBFBD><D4B9><EFBFBD><EFBFBD><EFBFBD>ΪX<CEAA><58>(ɨ<>跽<EFBFBD><EFBFBD>ƽ<EFBFBD>е<EFBFBD><D0B5><EFBFBD><EFBFBD><EFBFBD>Z<EFBFBD>ᴹֱ<E1B4B9><D6B1><EFBFBD><EFBFBD>ΪY<CEAA>ᣬ<EFBFBD><E1A3AC>ֱ<EFBFBD><D6B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ΪZ<CEAA><5A>
|
|
|
|
|
|
typedef struct
|
|
|
|
|
|
{
|
|
|
|
|
|
bool validFlag; //ָʾ<D6B8><CABE><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD>Ч
|
|
|
|
|
|
double x;
|
|
|
|
|
|
double y;
|
|
|
|
|
|
double z;
|
|
|
|
|
|
double pitchAngle; //<2F><><EFBFBD><EFBFBD><EFBFBD>ǣ<EFBFBD><C7A3><EFBFBD>Y<EFBFBD><59><EFBFBD><EFBFBD>ƫת, <20><><EFBFBD><EFBFBD>
|
|
|
|
|
|
double rollAngle; //<2F><>ת<EFBFBD>ǣ<EFBFBD><C7A3><EFBFBD>X<EFBFBD><58><EFBFBD><EFBFBD>ƫת, <20><><EFBFBD><EFBFBD>
|
|
|
|
|
|
double yawAngle; //ƫת<C6AB>ǣ<EFBFBD><C7A3><EFBFBD>Z<EFBFBD><5A><EFBFBD><EFBFBD>ƫת, <20><><EFBFBD><EFBFBD>
|
|
|
|
|
|
}SSG_6AxisAttitude;
|
|
|
|
|
|
|
|
|
|
|
|
typedef struct
|
|
|
|
|
|
{
|
|
|
|
|
|
bool validFlag; //ָʾ<D6B8><CABE><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD>Ч
|
|
|
|
|
|
double x;
|
|
|
|
|
|
double y;
|
|
|
|
|
|
double z;
|
|
|
|
|
|
}SSG_3AxisAttitude;
|
|
|
|
|
|
|
|
|
|
|
|
typedef enum
|
|
|
|
|
|
{
|
|
|
|
|
|
keSG_PoseSorting_Uknown = 0,
|
|
|
|
|
|
keSG_PoseSorting_ZMin2Max, ///<2F><>Z<EFBFBD><5A><EFBFBD><EFBFBD>
|
|
|
|
|
|
keSG_PoseSorting_L2R_T2B, ///<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ң<EFBFBD><D2A3><EFBFBD><EFBFBD>ϵ<EFBFBD><CFB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
keSG_PoseSorting_T2B_L2R, ///<2F><><EFBFBD>ϵ<EFBFBD><CFB5>£<EFBFBD><C2A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
} ESG_poseSortingMode;
|
|
|
|
|
|
|
|
|
|
|
|
typedef struct
|
|
|
|
|
|
{
|
|
|
|
|
|
int data_0;
|
|
|
|
|
|
int data_1;
|
|
|
|
|
|
int idx;
|
|
|
|
|
|
}SSG_intPair;
|
|
|
|
|
|
|
|
|
|
|
|
typedef struct
|
|
|
|
|
|
{
|
|
|
|
|
|
double left;
|
|
|
|
|
|
double right;
|
|
|
|
|
|
double top;
|
|
|
|
|
|
double bottom;
|
|
|
|
|
|
}SSG_ROIRectD;
|
|
|
|
|
|
|
2025-07-15 21:39:09 +08:00
|
|
|
|
struct HSV {
|
|
|
|
|
|
double h; // ɫ<><C9AB> (0-360)
|
|
|
|
|
|
double s; // <20><><EFBFBD>Ͷ<EFBFBD> (0-1)
|
|
|
|
|
|
double v; // <20><><EFBFBD><EFBFBD> (0-1)
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
struct RGB {
|
|
|
|
|
|
int r;
|
|
|
|
|
|
int g;
|
|
|
|
|
|
int b;
|
|
|
|
|
|
};
|
|
|
|
|
|
|
2025-06-08 10:46:41 +08:00
|
|
|
|
#define LINE_FEATURE_NUM 16
|
|
|
|
|
|
#define LINE_FEATURE_UNDEF 0
|
|
|
|
|
|
#define LINE_FEATURE_L_JUMP_H2L 1
|
|
|
|
|
|
#define LINE_FEATURE_L_JUMP_L2H 2
|
|
|
|
|
|
#define LINE_FEATURE_L_SLOPE_H2L 3
|
|
|
|
|
|
#define LINE_FEATURE_L_SLOPE_L2H 4
|
|
|
|
|
|
#define LINE_FEATURE_V_SLOPE 5
|
|
|
|
|
|
#define LINE_FEATURE_LINE_ENDING_0 6 //ending<6E><67><EFBFBD><EFBFBD>
|
|
|
|
|
|
#define LINE_FEATURE_LINE_ENDING_1 7 //ending<6E>յ<EFBFBD>
|
|
|
|
|
|
#define LINE_FEATURE_RGN_EDGE 8 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD>Ѿ<EFBFBD><D1BE>õ<EFBFBD><C3B5><EFBFBD>Ŀ<EFBFBD><C4BF><EFBFBD>ı<EFBFBD>Ե<EFBFBD><D4B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
#define LINE_FEATURE_RIGHT_ANGLE_HR 9 //ֱ<><D6B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:ˮƽ-<2D><><EFBFBD><EFBFBD>
|
|
|
|
|
|
#define LINE_FEATURE_RIGHT_ANGLE_HF 10 //ֱ<><D6B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:ˮƽ-<2D>½<EFBFBD>
|
|
|
|
|
|
#define LINE_FEATURE_RIGHT_ANGLE_RH 11 //ֱ<><D6B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:<3A><><EFBFBD><EFBFBD>-ˮƽ
|
|
|
|
|
|
#define LINE_FEATURE_RIGHT_ANGLE_FH 12 //ֱ<><D6B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:<3A>½<EFBFBD>-ˮƽ
|
|
|
|
|
|
#define LINE_FEATURE_PEAK_TOP 13
|
|
|
|
|
|
#define LINE_FEATURE_PEAK_BOTTOM 14
|
|
|
|
|
|
#define LINE_FEATURE_CORNER_V 15
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
typedef struct
|
|
|
|
|
|
{
|
|
|
|
|
|
int featureType;
|
|
|
|
|
|
SVzNL2DPoint jumpPos2D;
|
|
|
|
|
|
SVzNL3DPoint jumpPos;
|
|
|
|
|
|
}SSG_basicFeature1D;
|
|
|
|
|
|
|
|
|
|
|
|
typedef struct
|
|
|
|
|
|
{
|
|
|
|
|
|
int lineIdx;
|
|
|
|
|
|
double gap_start;
|
|
|
|
|
|
double gap_width;
|
|
|
|
|
|
double gap_depth;
|
|
|
|
|
|
SVzNL3DPosition gapPt_0; //gap<61>Ķ˵<C4B6>
|
|
|
|
|
|
SVzNL3DPosition gapPt_1; //gap<61>Ķ˵<C4B6>
|
|
|
|
|
|
SSG_ROIRectD roi;
|
|
|
|
|
|
}SSG_basicFeatureGap;
|
|
|
|
|
|
|
|
|
|
|
|
#define FEATURE_FLAG_UNDEF 0
|
|
|
|
|
|
#define FEATURE_FLAG_INVLD_START 1
|
|
|
|
|
|
#define FEATURE_FLAG_INVLD_END 2
|
|
|
|
|
|
#define FEATURE_FLAG_VALID_START 3
|
|
|
|
|
|
#define FEATURE_FLAG_VALID_END 4
|
2025-06-11 22:14:52 +08:00
|
|
|
|
#define FEATURE_FLAG_INVALID 5
|
2025-06-08 10:46:41 +08:00
|
|
|
|
typedef struct
|
|
|
|
|
|
{
|
|
|
|
|
|
int flag;
|
|
|
|
|
|
int lineIdx;
|
|
|
|
|
|
int startPtIdx;
|
|
|
|
|
|
int endPtIdx;
|
|
|
|
|
|
int midPtIdx;
|
2025-06-11 22:14:52 +08:00
|
|
|
|
SVzNL3DPoint midPt;
|
2025-06-08 10:46:41 +08:00
|
|
|
|
double width;
|
|
|
|
|
|
double pkHeight;
|
|
|
|
|
|
}SSG_featureSemiCircle;
|
|
|
|
|
|
|
|
|
|
|
|
typedef struct
|
|
|
|
|
|
{
|
|
|
|
|
|
int lineIdx;
|
|
|
|
|
|
std::vector<SSG_basicFeature1D> features;
|
|
|
|
|
|
std::vector<SSG_basicFeature1D> endings;
|
|
|
|
|
|
}SSG_lineFeature;
|
|
|
|
|
|
|
|
|
|
|
|
typedef struct
|
|
|
|
|
|
{
|
|
|
|
|
|
/* <20><><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ޣ<EFBFBD>С<EFBFBD>ڴ<EFBFBD><DAB4><EFBFBD><EFBFBD>ޣ<EFBFBD><DEA3><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
|
|
|
|
|
double continuityTh; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ޡ<EFBFBD><DEA1><EFBFBD>ʹ<EFBFBD><CAB9>z<EFBFBD><7A><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD><D0B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>Ϊz<CEAA><7A><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ޣ<EFBFBD><DEA3><EFBFBD>ʹ<EFBFBD>õ<EFBFBD><C3B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>ʱ<EFBFBD><CAB1>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
/* <20><><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD><D0B6><EFBFBD><EFBFBD>ޣ<EFBFBD><DEA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>εĵ<CEB5><C4B5><EFBFBD><EFBFBD><EFBFBD>С<EFBFBD>ڴ<EFBFBD><DAB4><EFBFBD><EFBFBD>ޣ<EFBFBD><DEA3><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD> */
|
|
|
|
|
|
double outlierTh;
|
|
|
|
|
|
}SSG_outlierFilterParam;
|
|
|
|
|
|
|
|
|
|
|
|
typedef struct
|
|
|
|
|
|
{
|
|
|
|
|
|
double LSlopeZWin; //<2F><>L<EFBFBD><4C>Slope<70><65><EFBFBD><EFBFBD><EFBFBD>¶ȼ<C2B6><C8BC><EFBFBD><EFBFBD>Ĵ<EFBFBD><C4B4>ڳ<EFBFBD><DAB3><EFBFBD>
|
|
|
|
|
|
double validSlopeH;
|
|
|
|
|
|
double minLJumpH;
|
|
|
|
|
|
double minEndingGap;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ޡ<EFBFBD><DEA1><EFBFBD><EFBFBD>ڴ<EFBFBD><DAB4><EFBFBD><EFBFBD>ޣ<EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
}SSG_slopeParam;
|
|
|
|
|
|
|
|
|
|
|
|
typedef struct
|
|
|
|
|
|
{
|
|
|
|
|
|
double minEndingGap; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ޡ<EFBFBD><DEA1><EFBFBD><EFBFBD>ڴ<EFBFBD><DAB4><EFBFBD><EFBFBD>ޣ<EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
double scale; //<2F><><EFBFBD>㷽<EFBFBD><E3B7BD><EFBFBD>ǵĴ<C7B5><C4B4>ڱ<EFBFBD><DAB1><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
double cornerTh; //<2F>ս<EFBFBD><D5BD><EFBFBD><EFBFBD>ޣ<EFBFBD><DEA3><EFBFBD><EFBFBD>ڴ<EFBFBD><DAB4><EFBFBD><EFBFBD>ޣ<EFBFBD>Ϊ<EFBFBD><CEAA>Ч<EFBFBD>յ<EFBFBD>
|
|
|
|
|
|
double jumpCornerTh_1; //<2F>жϹս<CFB9><D5BD>Ƿ<EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ޡ<EFBFBD><DEA1><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><DEB4><EFBFBD>jumpCornerTh_1<5F><31><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>С<EFBFBD><D0A1>jumpCornerTh_2ʱ<32><CAB1><EFBFBD><EFBFBD>
|
|
|
|
|
|
double jumpCornerTh_2;
|
|
|
|
|
|
}SSG_cornerParam;
|
|
|
|
|
|
|
|
|
|
|
|
typedef struct
|
|
|
|
|
|
{
|
|
|
|
|
|
double H_len; //ֱ<><D6B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ˮƽ<CBAE>εij<CEB5><C4B3><EFBFBD>
|
|
|
|
|
|
double V_len; //ֱ<><D6B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֱ<EFBFBD>εij<CEB5><C4B3><EFBFBD>
|
|
|
|
|
|
double maxDelta;
|
|
|
|
|
|
}SSG_lineRightAngleParam;
|
|
|
|
|
|
|
|
|
|
|
|
typedef struct
|
|
|
|
|
|
{
|
|
|
|
|
|
double valleyMinH;
|
|
|
|
|
|
double valleyMaxW;
|
|
|
|
|
|
}SSG_VFeatureParam;
|
|
|
|
|
|
|
|
|
|
|
|
typedef struct
|
|
|
|
|
|
{
|
|
|
|
|
|
double sameGapTh;
|
|
|
|
|
|
int gapChkWin;
|
|
|
|
|
|
}SSG_tearFeatureExtactPara;
|
|
|
|
|
|
typedef struct
|
|
|
|
|
|
{
|
|
|
|
|
|
double yDeviation_max;//<2F><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Yƫ<59><C6AB>
|
|
|
|
|
|
double zDeviation_max; //<2F><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Zƫ<5A><C6AB>
|
|
|
|
|
|
int maxLineSkipNum; //<2F><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><DFBC><EFBFBD><EFBFBD><EFBFBD> -1ʱʹ<CAB1><CAB9>maxDkipDistance
|
|
|
|
|
|
double maxSkipDistance; //<2F><>maxLineSkipNumΪ-1<><31> ʹ<>ô˲<C3B4><CBB2><EFBFBD>.<2E><>Ϊ-1ʱ<31><CAB1><EFBFBD>˲<EFBFBD><CBB2><EFBFBD><EFBFBD><EFBFBD>Ч
|
|
|
|
|
|
double minLTypeTreeLen; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ٵĽڵ<C4BD><DAB5><EFBFBD>Ŀ<EFBFBD><C4BF>С<EFBFBD>ڴ<EFBFBD><DAB4><EFBFBD>Ŀ<EFBFBD><C4BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƴ<EFBFBD>
|
|
|
|
|
|
double minVTypeTreeLen; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ٵĽڵ<C4BD><DAB5><EFBFBD>Ŀ<EFBFBD><C4BF>С<EFBFBD>ڴ<EFBFBD><DAB4><EFBFBD>Ŀ<EFBFBD><C4BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƴ<EFBFBD>
|
|
|
|
|
|
}SSG_treeGrowParam;
|
|
|
|
|
|
|
|
|
|
|
|
typedef struct
|
|
|
|
|
|
{
|
|
|
|
|
|
double bagL; //<2F><>
|
|
|
|
|
|
double bagW; //<2F><>
|
|
|
|
|
|
double bagH; //<2F><>
|
|
|
|
|
|
}SSG_bagParam;
|
|
|
|
|
|
|
|
|
|
|
|
typedef struct
|
|
|
|
|
|
{
|
|
|
|
|
|
ESG_poseSortingMode sortMode;
|
|
|
|
|
|
}SSG_objSortParam;
|
|
|
|
|
|
|
|
|
|
|
|
typedef struct
|
|
|
|
|
|
{
|
|
|
|
|
|
double angleStep;
|
|
|
|
|
|
double radiusStep;
|
|
|
|
|
|
}SSG_polarScanParam;
|
|
|
|
|
|
|
|
|
|
|
|
typedef struct
|
|
|
|
|
|
{
|
|
|
|
|
|
int treeState;
|
|
|
|
|
|
int treeType;
|
|
|
|
|
|
int sLineIdx;
|
|
|
|
|
|
int eLineIdx;
|
|
|
|
|
|
SSG_ROIRectD roi;
|
|
|
|
|
|
std::vector< SSG_basicFeature1D> treeNodes;
|
|
|
|
|
|
}SSG_featureTree;
|
|
|
|
|
|
|
|
|
|
|
|
typedef struct
|
|
|
|
|
|
{
|
|
|
|
|
|
int treeState;
|
|
|
|
|
|
int treeType;
|
|
|
|
|
|
int sLineIdx;
|
|
|
|
|
|
int eLineIdx;
|
|
|
|
|
|
SSG_ROIRectD roi;
|
2025-06-11 22:14:52 +08:00
|
|
|
|
SVzNL3DPoint centerPt;
|
|
|
|
|
|
SVzNL2DPoint centerPos;
|
|
|
|
|
|
int treeMidType; //1:<3A>Ѿ<EFBFBD><D1BE><EFBFBD><EFBFBD>ӹ<EFBFBD>
|
2025-06-08 10:46:41 +08:00
|
|
|
|
std::vector< SSG_featureSemiCircle> treeNodes;
|
|
|
|
|
|
}SSG_semiCircleFeatureTree;
|
|
|
|
|
|
|
|
|
|
|
|
typedef struct
|
|
|
|
|
|
{
|
|
|
|
|
|
int vTreeFlag;
|
|
|
|
|
|
int treeIdx;
|
|
|
|
|
|
int treeType;
|
|
|
|
|
|
int sLineIdx;
|
|
|
|
|
|
int eLineIdx;
|
|
|
|
|
|
SSG_ROIRectD roi;
|
|
|
|
|
|
}SSG_treeInfo;
|
|
|
|
|
|
|
|
|
|
|
|
typedef struct
|
|
|
|
|
|
{
|
|
|
|
|
|
int seachW_lines;
|
|
|
|
|
|
int searchW_pts;
|
|
|
|
|
|
}SSG_localPkParam;
|
|
|
|
|
|
|
|
|
|
|
|
typedef struct
|
|
|
|
|
|
{
|
|
|
|
|
|
int x;
|
|
|
|
|
|
int y;
|
|
|
|
|
|
int value;
|
|
|
|
|
|
double valueD;
|
|
|
|
|
|
int sideID; //1-T, 2-B, 3-L, 4-R
|
|
|
|
|
|
}SSG_2DValueI;
|
|
|
|
|
|
|
|
|
|
|
|
typedef struct
|
|
|
|
|
|
{
|
|
|
|
|
|
int start;
|
|
|
|
|
|
int len;
|
|
|
|
|
|
int value;
|
|
|
|
|
|
}SSG_RUN;
|
|
|
|
|
|
|
|
|
|
|
|
typedef struct
|
|
|
|
|
|
{
|
|
|
|
|
|
double mean;
|
|
|
|
|
|
double var;
|
|
|
|
|
|
}SSG_meanVar;
|
|
|
|
|
|
|
|
|
|
|
|
typedef struct
|
|
|
|
|
|
{
|
|
|
|
|
|
int x;
|
|
|
|
|
|
int y;
|
|
|
|
|
|
int type;
|
|
|
|
|
|
int edgeId;
|
|
|
|
|
|
int blockFlag;//<2F>ڵ<EFBFBD><DAB5><EFBFBD>־
|
|
|
|
|
|
double scanDist;
|
|
|
|
|
|
SVzNL3DPoint edgePt;
|
|
|
|
|
|
}SSG_contourPtInfo;
|
|
|
|
|
|
|
|
|
|
|
|
typedef struct
|
|
|
|
|
|
{
|
|
|
|
|
|
int lineIdx;
|
|
|
|
|
|
std::vector<SSG_contourPtInfo> contourPts;
|
|
|
|
|
|
}SSG_lineConotours;
|
|
|
|
|
|
|
|
|
|
|
|
typedef struct
|
|
|
|
|
|
{
|
|
|
|
|
|
int lineIdx;
|
|
|
|
|
|
int edgeId_0;
|
|
|
|
|
|
int edgeId_1;
|
|
|
|
|
|
double ptPairDist;
|
|
|
|
|
|
SSG_contourPtInfo contourPt_0;
|
|
|
|
|
|
SSG_contourPtInfo contourPt_1;
|
|
|
|
|
|
}SSG_conotourPair;
|
|
|
|
|
|
|
|
|
|
|
|
typedef struct
|
|
|
|
|
|
{
|
|
|
|
|
|
double x;
|
|
|
|
|
|
double y;
|
|
|
|
|
|
double z;
|
|
|
|
|
|
double x_roll;
|
|
|
|
|
|
double y_pitch;
|
|
|
|
|
|
double z_yaw;
|
|
|
|
|
|
}SSG_6DOF;
|
|
|
|
|
|
|
|
|
|
|
|
typedef struct
|
|
|
|
|
|
{
|
|
|
|
|
|
double L;
|
|
|
|
|
|
double W;
|
|
|
|
|
|
double H;
|
|
|
|
|
|
double angle;
|
|
|
|
|
|
SVzNL3DPoint endings[4];
|
|
|
|
|
|
} SSG_boxCarDimension;
|
|
|
|
|
|
|
|
|
|
|
|
typedef struct
|
|
|
|
|
|
{
|
|
|
|
|
|
SVzNL3DPoint opCenter; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB>
|
|
|
|
|
|
int neighbourNum; //<2F><><EFBFBD><EFBFBD>Ŀ<EFBFBD><C4BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
double opAngle; //<2F><><EFBFBD><EFBFBD><EFBFBD>ⲿ<EFBFBD><E2B2BF><EFBFBD><EFBFBD>120<32>Ȳ<EFBFBD><C8B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>IJ<EFBFBD><C4B2><EFBFBD><EFBFBD>Ƕȡ<C7B6><C8A1><EFBFBD>Y<EFBFBD><59>Ϊ<EFBFBD><CEAA><EFBFBD>Ƕȣ<C7B6>0<EFBFBD><30>)
|
|
|
|
|
|
double obstacleDist; //<2F><><EFBFBD><EFBFBD><EFBFBD>ܱ<EFBFBD><DCB1>ϰ<EFBFBD><CFB0>ľ<EFBFBD><C4BE><EFBFBD>
|
|
|
|
|
|
}SSG_motorStatorPosition;
|
|
|
|
|
|
|
|
|
|
|
|
typedef struct
|
|
|
|
|
|
{
|
|
|
|
|
|
int pkRgnIdx;
|
|
|
|
|
|
SVzNLSizeD objSize;
|
|
|
|
|
|
SVzNL2DPoint pos2D;
|
|
|
|
|
|
SSG_6DOF centerPos;
|
|
|
|
|
|
}SSG_peakRgnInfo;
|
|
|
|
|
|
|
2025-07-15 21:39:09 +08:00
|
|
|
|
typedef struct
|
|
|
|
|
|
{
|
|
|
|
|
|
int pkRgnIdx;
|
|
|
|
|
|
SVzNLSizeD objSize;
|
|
|
|
|
|
SVzNL2DPoint pos2D;
|
|
|
|
|
|
SSG_6DOF centerPos;
|
|
|
|
|
|
int orienFlag; //0-δ֪<CEB4><D6AA>1 - <20><><EFBFBD>棬 2-<2D><><EFBFBD><EFBFBD>
|
|
|
|
|
|
}SSG_peakOrienRgnInfo;
|
|
|
|
|
|
|
2025-06-08 10:46:41 +08:00
|
|
|
|
typedef struct
|
|
|
|
|
|
{
|
|
|
|
|
|
SVzNL3DPoint sPt;
|
|
|
|
|
|
SVzNL3DPoint ePt;
|
|
|
|
|
|
double scanDist;
|
|
|
|
|
|
int ptNum;
|
|
|
|
|
|
}SSG_contourEdgeInfo;
|
|
|
|
|
|
|
|
|
|
|
|
typedef struct
|
|
|
|
|
|
{
|
|
|
|
|
|
double meanDist;
|
|
|
|
|
|
double varDist;
|
|
|
|
|
|
double minDist;
|
|
|
|
|
|
double maxDist;
|
|
|
|
|
|
int matchNum;
|
|
|
|
|
|
int level2_num; //level2Ϊ<32>߿<EFBFBD><DFBF>Ŷ<EFBFBD>(<28><><EFBFBD><EFBFBD>ΪJump<6D><70>Ending;
|
|
|
|
|
|
int level1_num; //level1-Ϊ<>п<EFBFBD><D0BF>Ŷȣ<C5B6>һ<EFBFBD><D2BB>ΪJump<6D><70>Ending<6E><67>
|
|
|
|
|
|
SSG_ROIRectD roi;
|
|
|
|
|
|
}SSG_edgeMatchInfo;
|
|
|
|
|
|
|
|
|
|
|
|
typedef struct
|
|
|
|
|
|
{
|
|
|
|
|
|
int id1;
|
|
|
|
|
|
int id2;
|
|
|
|
|
|
int matchPts;
|
|
|
|
|
|
int matchType; //<2F><><EFBFBD>Ŷȣ<C5B6> 2Ϊ<32>߿<EFBFBD><DFBF>Ŷ<EFBFBD>(<28><><EFBFBD><EFBFBD>ΪJump<6D><70>Ending; 1-Ϊ<>п<EFBFBD><D0BF>Ŷȣ<C5B6>һ<EFBFBD><D2BB>ΪJump<6D><70>Ending<6E><67><EFBFBD><EFBFBD>0-Ϊ<>Ϳ<EFBFBD><CDBF>Ŷ<EFBFBD>
|
|
|
|
|
|
double matchValue;
|
|
|
|
|
|
double varValue;
|
|
|
|
|
|
double minMatchValue;
|
|
|
|
|
|
double maxMatchValue;
|
|
|
|
|
|
SSG_ROIRectD roi;
|
|
|
|
|
|
}SSG_matchPair;
|
|
|
|
|
|
|
|
|
|
|
|
typedef struct
|
|
|
|
|
|
{
|
|
|
|
|
|
int objIdx;
|
|
|
|
|
|
bool isValid; //<2F>Ƿ<EFBFBD>Ϊ<EFBFBD>ϸ<EFBFBD>Ŀ<EFBFBD>ꡣ<EFBFBD><EAA1A3><EFBFBD><EFBFBD>Ŀ<EFBFBD>꣬<EFBFBD><EAA3AC><EFBFBD><EFBFBD>֯<EFBFBD><D6AF><EFBFBD><EFBFBD><EFBFBD>ţ<EFBFBD>ɨ<EFBFBD>赽<EFBFBD><E8B5BD><EFBFBD>ߣ<EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD>ϸ<EFBFBD>Ŀ<EFBFBD><C4BF>
|
|
|
|
|
|
SSG_ROIRectD objROI;
|
|
|
|
|
|
SVzNL3DPoint objPos;
|
|
|
|
|
|
SSG_6DOF graspPos;
|
|
|
|
|
|
}SSG_sideBagInfo;
|
|
|
|
|
|
|
|
|
|
|
|
typedef struct
|
|
|
|
|
|
{
|
|
|
|
|
|
SVzNLRect roi;
|
|
|
|
|
|
int ptCounter;
|
|
|
|
|
|
int labelID;
|
|
|
|
|
|
}SSG_Region;
|
|
|
|
|
|
|
|
|
|
|
|
typedef struct
|
|
|
|
|
|
{
|
|
|
|
|
|
double planeCalib[9]; //<2F><>ת<EFBFBD><D7AA><EFBFBD><EFBFBD><F3A3ACBD><EFBFBD><EFBFBD>Ƶ<EFBFBD><C6B5><EFBFBD><EFBFBD><EFBFBD>ƽ
|
|
|
|
|
|
double planeHeight;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƽ<EFBFBD><C6BD><EFBFBD>ĸ߶ȣ<DFB6><C8A3><EFBFBD><EFBFBD><EFBFBD>ȥ<EFBFBD><C8A5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
double invRMatrix[9]; //<2F><>ת<EFBFBD><D7AA><EFBFBD>ص<F3A3ACBB>ԭ<EFBFBD><D4AD><EFBFBD><EFBFBD>ϵ
|
|
|
|
|
|
}SSG_planeCalibPara;
|