航线规划参数(固定翼)
PathPlanningParameter
描述: 固定翼飞机航线规划参数
class PathPlanningParameter {
/**
* 航线规划参数 基本信息
*/
private IntroInfo introInfo;
/**
* 航线规划参数 进场及离场航线的相关信息
*/
private LaunchInfo launchInfo;
/**
* 航线规划参数 进场降落航线的相关信息
*/
private LandInfo landInfo;
/**
* 航线规划参数 强制降落航线的相关信息,暂时未使用
*/
private ArrayList<ForceLandInfo> forceLandInfo;
/**
* 航线规划参数 任务航线的相关信息
*/
private ArrayList<MissionInfo> missionInfo;
/**
* 算法返回的错误码
*/
private ErrorCode errorCode;
}
IntroInfo
描述: 航线基本信息
class IntroInfo {
/**
* 按位取值进行表示该结构体的有效性:
* bit1: LAUNCH;
* bit2: LANDING;
* bit3: FORCELAND;
* bit4: MISSION;
* 如航线包含起飞降落和任务则为:
* MISSION LANDING LAUNCH
* -----------------------------
* 1 << 3 | 1 << 2 | 1 = 11
*/
private int planningType;
/**
* 作业任务部分有效的子作业任务的个数
*/
private int subMisNum;
/**
* 有效的迫降点个数
*/
private int forceLandNum;
/**
* 初始位置的纬度
*/
private double initLat;
/**
* 初始位置的经度
*/
private double initLon;
/**
* 初始位置的海拔高度
*/
private float initAlt;
/**
* 最小转弯半径
*/
private float MinRadius = 100;
/**
* 最大垂直速度
*/
private float MaxVz = 3;
/**
* 航线循环方式:-1: 无限循环;0: 不循环;n: 循环n次;
*/
private int CycleMode;
/**
* 航线循环起始子任务
*/
private int StartSubID = 1;
/**
* 航线循环起始航点
*/
private float StartWPID = 1;
/**
* 航线循环结束子任务
*/
private int EndSubID = 1;
/**
* 航线循环结束航点
*/
private float EndWPID = 1;
}
LaunchInfo
描述: 离场起飞点的相关信息
class LaunchInfo {
/**
* 起飞点纬度
*/
private double launchLat;//
/**
* 起飞点经度
*/
private double launchLon;//
/**
* 起飞点绝对高度(海拔高度)
*/
private float launchAlt;//
/**
* 离场盘旋点纬度
*/
private double departureLat;//
/**
* 离场盘旋点经度
*/
private double departureLon;//
/**
* 离场盘旋点高度
*/
private float departureAlt;//
/**
* 离场盘旋点高度类型 1:绝对高度(海拔);2:相对高度;
*/
private int altType;//
/**
* 离场盘旋半径
*/
private float departureR;//
/**
* 离场飞行速度
*/
private float departureVel;//
/**
* 垂直起飞相对高度
*/
private float transAlt;
}
LandInfo
描述: 进场降落点的相关信息
class LandInfo {
/**
* 进场点纬度
*/
private double approachLat;
/**
* 进场点经度
*/
private double approachLon;
/**
* 进场点高度
*/
private float approachAlt;
/**
* 进场点高度类型 1:绝对高度(海拔);2:相对高度;
*/
private int altType = 2;
/**
* 进场盘旋半径
*/
private float approachR;
/**
* 进场飞行速度
*/
private float approachVel = 20;
/**
* 降落点纬度
*/
private double homeLat;
/**
* 降落点经度
*/
private double homeLon;
/**
* 降落点高度
*/
private float homeAlt;
/**
* 降落点高度类型 1:绝对高度(海拔);2:相对高度;
*/
private int homeAltType = 2;
/**
* 降落切换相对高度
*/
private float transAlt;
}
ErrorCode
描述: 错误码
emun class ErrorCode {
/**
* 测绘区域多边形角点个数超限
*/
CODE_10001(CodeType.NEW_ROUTE, 1),
/**
* 由普通航点生成的Mission Item个数超限
*/
CODE_10002(CodeType.NEW_ROUTE, 2),
/**
* 由子任务生成的Mission Item个数超限
*/
CODE_10003(CodeType.NEW_ROUTE, 4),
/**
* 构造降落模块时Mission Item个数超限
*/
CODE_10004(CodeType.NEW_ROUTE, 8),
/**
* 由子任务生成的Mission Item个数超限
*/
CODE_10005(CodeType.NEW_ROUTE, 16),
/**
* 构造降落模块时Mission Item个数超限
*/
CODE_10006(CodeType.NEW_ROUTE, 32),
/**
* 不支持的任务类型PlanningType
*/
CODE_10007(CodeType.NEW_ROUTE, 64),
/**
* 不支持的子任务类型SubMissionType
*/
CODE_10008(CodeType.NEW_ROUTE, 128),
/**
* 二维片段twoD_block个数超限
*/
CODE_10009(CodeType.NEW_ROUTE, 256),
/**
* 三维片段threeD_block个数超限
*/
CODE_10010(CodeType.NEW_ROUTE, 512),
/**
* SampleNum航线采样点个数超限(航线超过100公里)
*/
CODE_10011(CodeType.NEW_ROUTE, 1024),
/**
* 前后两个采样点的经度纬度一模一样
*/
CODE_10012(CodeType.NEW_ROUTE, 2048),
/**
* 相邻两点无效的组合,如返航落地后再加一个航点,或者无线盘旋后再加一个航点
*/
CODE_10013(CodeType.NEW_ROUTE, 4096),
/**
* 观察动线的锚点数量小于2
*/
CODE_20001(CodeType.INSPECTION, 1),
/**
* 观察动线的锚点数量大于1000
*/
CODE_20002(CodeType.INSPECTION, 2),
/**
* 航带宽度较宽且大幅弯折,生成的航点数量比锚点少,不能一一对应
*/
CODE_20003(CodeType.INSPECTION, 4),
/**
* 观察动线反向转折,无法生成航线
*/
CODE_20004(CodeType.INSPECTION, 8),
/**
* 对航线采样查地形时,采样点数量大于10000。采样间隔10米,共100公里
*/
CODE_20005(CodeType.INSPECTION, 16),
/**
* 算法内部的航点分组超过1000个
*/
CODE_20006(CodeType.INSPECTION, 32),
/**
* 算法分组内部的航点个数超过100个
*/
CODE_20007(CodeType.INSPECTION, 64),
/**
* 非法的相机视场角,负数或超过180度
*/
CODE_20008(CodeType.INSPECTION, 128),
/**
* 目标幅宽多边形生成失败,因为有环形
*/
CODE_20009(CodeType.INSPECTION, 256),
/**
* 折线偏移无法计算,航线生成失败
*/
CODE_20010(CodeType.INSPECTION, 512),
/**
* home点坐标或上下盘旋点非法
*/
CODE_90001(CodeType.COMMON, 90001),
/**
* 航点任务为null
*/
CODE_90002(CodeType.COMMON, 90002),
/**
* 矩形或多边形任务为null
*/
CODE_90003(CodeType.COMMON, 90003),
/**
* 巡检任务为null
*/
CODE_90004(CodeType.COMMON, 90004),
UNKNOWN(CodeType.UNKNOWN, -1);
}
MissionInfo
描述: 进场降落点的相关信息
class MissionInfo {
/**
* 任务结束动作: 1.LOITER; 2.GOHOME;
*/
private int FinishMove;
/**
* 任务丢失动作: 1.LOITER; 2.GOHOME;
*/
private int LinkLostMove;
/**
* 任务类型1:自由航点航线 2:区域测绘航线 3:八字盘旋航线
*/
private int subMissionType;
/**
* 子任务航线信息
*/
private SubMissionInfo subMissionInfo;
/**
* 子任务航点信息
*/
private ArrayList<WPInfo> wpInfo;
/**
* 子任务航点数量
*/
private int WPNum;
/**
* 兴趣区域
*/
private ArrayList<InterestArea> InterestArea;
/**
* 兴趣区域数量
*/
private int IANum;
}
WPInfo
描述: 航点相关信息
class WPInfo {
/**
* 航点序号
*/
private short wpIndex;
/**
* 航点纬度
*/
private double wpLat;
/**
* 航点经度
*/
private double wpLon;
/**
* 航点高度
*/
private float wpAlt;
/**
* 1:海拔高度 2:相对高度
*/
private int wpAltType = 2;
/**
* 航点类型4:普通航点 5:测绘角点
*/
private int wpType = 4;
/**
* 航点速度
*/
private float wpVel = 20;
/**
* 航点转弯半径
*/
private float wpRadius = 200 ;// MissionConstant.MIN_HOVER_RADIUS;
/**
* 转弯模式 1:提前转弯 2:过点转弯 3:定时盘旋 4:定圈盘旋 5:8字环绕 6:无限环绕 7:阿尔法转弯 8:条带巡检调头
*/
private int wpTurnMode = 2;
/**
* 环绕参数 八字盘旋参考航向[-180°,180°]
*/
private float wpTurnParam1;
/**
* 爬升模式 1:正常 2:快速
*/
private int wpClimbMode = 1;
/**
* 载荷动作 0:无动作 1:拍照 2:定时拍照 3:定距拍照 4:录像
*/
private int payloadAction = 1;
/**
* 载荷参数
*/
private float actionParam1;
/**
* 云台俯仰角[-120, 20]
*/
private float gimbalPitch;
/**
* 云台相对航向角[-180, 180]
*/
private float gimbalYaw;
/**
* 预留参数 八字盘旋参考距离,单位m,[205,10000]
*/
private float wpReserved1;
}
InterestArea
描述: 兴趣区信息
class InterestArea {
/**
* 兴趣区域纬度
*/
private double ip_lat_deg;
/**
* 兴趣区域经度
*/
private double ip_lon_deg;
/**
* 兴趣区域海拔高度
*/
private float ip_alt_m;
/**
* 兴趣区域半径
*/
private float ip_radius_m;
/**
* 兴趣区域类型
*/
private int ip_type;
/**
* 有效关联点数量
*/
private int valid_cpt_num;
/**
* 关联点的序号
*/
private int[] ip_connectPt;
}
SubMissionInfo
描述: 子任务航线信息
class SubMissionInfo {
/**
* 镜头焦距,单位mm
*/
private float focalLength;
/**
* 传感器尺寸X,单位mm
*/
private float sensorSizeX;
/**
* 传感器尺寸X,单位mm
*/
private float sensorSizeY;
/**
* 像素X
*/
private int pixNumX;
/**
* 像素Y
*/
private int pixNumY;
/**
* 相机安装方向 1:横向 2:纵向
*/
private int sensorOrient=1;
/**
* 航线角度[0°,360°]
*/
private float airLineDir;
/**
* 基准面海拔高度
*/
private float baseAlt;
/**
* 地面分辨率,单位cm/pix
*/
private float resolution;
/**
* 旁向重叠率[0, 100]
*/
private int overlapSide;
/**
* 航向重叠率[0, 100]
*/
private int overlapAlong;
}
ForceLandInfo
描述: 迫降点信息
class ForceLandInfo {
/**
* 迫降进场点纬度
*/
private double approachLat;
/**
* 迫降进场点经度
*/
private double approachLon;
/**
* 迫降进场点高度
*/
private float approachAlt;
/**
* 迫降进场点高度类型 1:绝对高度(海拔);2:相对高度;
*/
private int altType;
/**
* 迫降进场点盘旋半径
*/
private float approachR;
/**
* 迫降进场速度
*/
private float approachVel;
/**
* 迫降点经度
*/
private double landLat;
/**
* 迫降点经度
*/
private double landLon;
/**
* 迫降点高度
*/
private float landAlt;
/**
* 迫降点高度类型 1:绝对高度(海拔);2:相对高度;
*/
private int landAltType;
/**
* 迫降点换相对高度
*/
private float transAlt;
}