主要内容

uavMission

无人机飞行任务数据

自从R2022b

    描述

    uavMission对象存储UAV任务数据,可用于生成用于UAV场景模拟的飞行轨迹。

    创建

    描述

    = uavMission创建一个空任务,

    例子

    = uavMission (PlanFile =文件)从指定的任务计划文件创建任务文件

    例子

    = uavMission (___名称=值)指定使用一个或多个名称-值参数以及来自以前语法的输入参数的任何组合的属性。

    输入参数

    全部展开

    任务计划文件路径,指定为字符串标量或字符向量。您必须指定PX4任务JSON文件(.plan)或MAVLink路径点文件(.waypoints).

    例子:uavMission (PlanFile =“文件/ matlab / uavwpts.waypoints”)

    数据类型:字符|字符串

    属性

    全部展开

    主位置,指定为形式为[的三元素行向量纬度经度高度].前两个元素分别指定无人机起始位置的纬度和经度(以度为单位),第三个元素指定无人机起始高度(以米为单位)。

    例子:uavMission(HomeLocation=[4 2 10])

    初始偏航角,指定为数值标量。此属性指定x无人机的-轴和任务所在位置的本地NED框架中的北方向,以度为单位。

    例子:uavMission (InitialYaw = 45)

    无人机的参考速度,指定为以米每秒为单位的数字标量。

    例子:uavMission(速度= 5)

    数据类型:

    任务路点参考系,指定为以下值之一:

    • “全球”-全局参考系

    • “GlobalRelativeAlt”-全局参考框架,其高度相对于主位置

    • “LocalENU”-本地东北向上(ENU)参考系

    • “LocalNED”-本地东北向下(NED)参考系

    例子:uavMission(帧=“国际”)

    数据类型:字符|字符串

    存储为非负整数的任务项数。NumMissionItems每次将任务项添加到任务时递增。

    此属性是只读的。

    对象的功能

    addChangeSpeed 增加改变速度任务项目
    addHover 添加悬停任务项目
    addLand 增加着陆任务项目
    addLoiter 增加游荡者任务项目
    addTakeoff 增加起飞任务道具
    addWaypoint 添加航路点任务项目
    复制 复制无人机任务
    removeItem 移除指定索引处的任务项目
    显示 可视化无人机任务
    showdetails 无人机任务数据表

    例子

    全部折叠

    创建一个无人机任务使用飞行计划存储在.plan文件和显示任务。

    任务= uavMission(PlanFile=“flight.plan”);显示(任务);

    为多旋翼无人机和固定翼无人机创建解析器。

    mrmParser = multirotorMissionParser(TransitionRadius=2,TakeoffSpeed=2);fwmParser = fixedwingMissionParser(TransitionRadius=15,TakeoffPitch=10);

    使用每个解析器生成一个飞行轨迹。

    mrmTraj =解析(mrmParser,任务);fwmTraj =解析(fwmParser,任务);

    将任务和飞行轨迹分别形象化。

    图subplot(1,2,1) show(mrmTraj);标题(“Multirotor轨迹”)轴广场次要情节(1、2、2)显示(fwmTraj);标题(“固定翼轨迹”)轴广场

    绘制任务和飞行轨迹重叠图。

    图显示(任务);持有显示(mrmTraj);持有标题(“使用多旋翼弹道的任务”)轴广场

    显示(任务);持有显示(fwmTraj);持有标题(“使用固定翼弹道的任务”)轴广场

    创建一个UAV任务对象,其主位置位于本地ENU坐标框架的原点,初始速度为5米/秒。

    m = uavMission(帧=“LocalENU”,HomeLocation=[0 0 0],Speed=5)
    m = uavMission与属性:HomeLocation: [0 0 0] InitialYaw: 0帧:"LocalENU"速度:5 NumMissionItems: 0

    在任务中添加高度为的起飞任务项目25米,距15角度和偏航0度。

    addTakeoff (m 20 = 15,偏航= 0);

    在任务中添加两个航路点任务物品。在两个航路点之间,增加无人机的速度到20.米每秒。在第二个航路点之后,降低无人机的速度回到5米每秒。

    addWaypoint(m,[10 0 30]);addChangeSpeed(m,20) addWaypoint(m,[20 0 40]);addChangeSpeed(m,5) addWaypoint(m,[30 0 50])

    在任务中添加闲逛和悬停任务物品,指定无人机在半径为的第二航路点附近闲逛和悬停5020.每秒钟。

    addLoiter(m,[40 0 60],10,20);addHover(m,[50 0 70],10,20);

    在无人机着陆任务中添加一个着陆任务项目。

    addLand(m,[70 0 0],偏航=0);

    显示任务项目数据表。

    showdetails (m)

    删除在索引处的悬停动作7,然后在索引处添加另一个路点8在悬停项目移动到索引后7.再次显示任务详细信息表以查看更改。

    removeItem (m, 7);addWaypoint(m,[65 0 70],InsertAtRow=8);showdetails (m)

    想象任务。

    显示(m);轴平等的

    初始化用于覆盖计划器、覆盖空间和任务的设置。设置覆盖宽度为65米,区域为多边形顶点,起降位置,飞行时无人机高程为150米,地心。

    coverageWidth = 65;区域= [-210 130;10 130;10 20;110 20;110 -130;-140 -130;-140 -20;-210 -20);起飞= [-250 150 0]; landing = [0 -200 0]; uavElevation = 150; geocenter = [-45 71 0];

    使用UAV覆盖空间设置创建覆盖空间。

    cs = uavCoverageSpace(多边形=区域,...UnitWidth = coverageWidth,...ReferenceHeight = uavElevation,...ReferenceLocation = geocenter);cs.show;标题(“覆盖空间”)

    图中包含一个轴对象。标题为Coverage Space的坐标轴对象包含2个多边形、文本类型的对象。

    为覆盖空间创建一个覆盖计划器,并使用指定的起飞和降落位置规划覆盖路径。

    cp = uavCoveragePlanner(cs);[waypoints,solnInfo] = cp.plan(起飞,降落);

    绘制航路点,以及覆盖空间上的起飞和降落位置。

    持有情节(锚点(:1),锚点(:,2)散射(起飞起飞(1),(2),“填充”)散射(降落着陆(1),(2),“填充”)传说(""“路径”“起飞”“登陆”)举行

    图中包含一个轴对象。标题为Coverage Space的坐标轴对象包含多边形、文本、直线、散点类型的5个对象。这些对象代表路径、起飞、降落。

    导出路径点到a路点文件并根据该文件创建一个无人机任务,速度为10米每秒和初始偏航90度。

    exportWaypointsPlan (cp、solnInfo“customCoverage.waypoints”);任务= uavMission(PlanFile=“customCoverage.waypoints”速度= 10,InitialYaw = 90);

    使用exampleHelperSimulateUAVMission辅助功能以可视化无人机任务,模拟时间为60秒。

    geocenter exampleHelperSimulateUAVMission(任务)

    图中包含一个轴对象。标题为Survey Coverage Space Mission的坐标轴对象,xlabel East (m), ylabel North (m)包含435个类型为patch、line、text的对象。

    版本历史

    R2022b中引入

    Baidu
    map