主要内容

uavScenario

生成无人机仿真场景

自从R2020b

    描述

    uavScenario组成的静态网格对象生成一个模拟场景,无人机平台和传感器在3 d环境中。

    创建

    现场= uavScenario创建一个空无人机场景中使用默认属性值。默认的惯性系是north-east-down (NED)和east-north-up ENU表示框架。

    现场= uavScenario (名称,值)配置一个uavScenario使用一个或多个对象的属性名称,值对参数。的名字是一个属性名称和价值相应的价值。的名字必须出现在引号。您可以指定几个名称-值对参数在任何顺序Name1, Value1,…,的家。任何未指定的属性默认值。

    使用这种语法,您可以指定UpdateRate,StopTime,HistoryBufferSize,ReferenceLocation,MaxNumFrames属性。你不能指定的其他属性uavScenario对象,该对象是只读的。

    属性

    全部展开

    模拟更新率,指定为一个积极的标量赫兹。当使用一个场景的步长推进目标函数等于更新率的倒数。

    例子:2

    数据类型:

    停止时间的模拟,指定为负的标量。一个场景停止推进当它到达停止时间。

    例子:60.0

    数据类型:

    最大数量的步骤保存在场景中,指定为一个大于1的正整数。这个属性决定了平台的最大帧数对存储在场景。如果模拟步骤的数目超过这个属性的值,那么这个场景只存储的最新步骤。

    例子:60

    数据类型:

    转换场景起源在大地坐标系中,指定为一个向量的标量形式(纬度经度高度]。纬度经度大地坐标在度。高度是WGS84参考椭球体的高度米。

    数据类型:

    最大帧数在该方案中,指定为一个正整数。惯性系的组合数量、平台和传感器添加到场景必须小于或等于这个属性的值。

    例子:15

    数据类型:

    这个属性是只读的。

    当前仿真时间,指定为负的标量。

    数据类型:

    这个属性是只读的。

    显示场景是否运行,指定为真正的。一个场景模拟启动后,它运行,直到它到达停止时间。

    数据类型:逻辑

    这个属性是只读的。

    转换所有的帧之间的信息的情况下,指定为一个transformTree对象。这个属性包含惯性之间的转换信息,平台和传感器与场景相关的框架。

    数据类型:对象

    这个属性是只读的。

    惯性系的名字在该方案中,指定为一个向量的字符串。

    数据类型:字符串

    这个属性是只读的。

    无人机平台在该方案中,指定为数组uavPlatform对象。

    对象的功能

    设置 无人机场景仿真做准备
    addCustomTerrain 添加自定义地形数据
    addMesh 添加新的静态网格无人机的场景
    addInertialFrame 无人机场景中定义新的惯性坐标系
    推进 推进无人机场景模拟时间步
    复制 复制无人机的场景
    updateSensors 更新在无人机传感器读数的场景
    removeCustomTerrain 删除自定义地形数据
    重新启动 重置模拟无人机的场景
    显示 在二维可视化无人机的情况
    show3D 可视化无人机在3 d场景
    terrainHeight 返回在无人机的场景中地形的高度

    例子

    全部折叠

    创建一个无人机场景并设置其当地的起源。

    现场= uavScenario (“UpdateRate”,200,“StopTime”2,“ReferenceLocation”,46岁,42岁,0);

    添加一个惯性坐标系地图的场景。

    scene.addInertialFrame (“ENU表示”,“地图”trvec2tform ((1 0 0)));

    添加一个地面网和两个圆柱形障碍网格的场景。

    scene.addMesh (“多边形”{[-100 0;100 0;100 100;-100 100]、[5 0]}[0.3 0.3 0.3]);scene.addMesh (“气缸”,{[20 10 10],[0 30]},[0 1 0]);scene.addMesh (“气缸”,{[46 42 5],[0 20]},(0 1 0),“UseLatLon”,真正的);

    创建一个无人机平台指定的路径轨迹的场景。定义的网格无人机平台。

    traj = waypointTrajectory (“锚点”-20年,[0 5;20 -20 5;20 0 5),“TimeOfArrival”[0 1 2]);uavPlat = uavPlatform (“无人机”场景,“轨迹”,traj);updateMesh (uavPlat“quadrotor”{4},(1 0 0),eul2tform([0 0π]));addGeoFence (uavPlat“多边形”{[-50 0;50 0;50 50;-50年50],[0 100]},真的,“ReferenceFrame”,“ENU表示”);

    附加一个INS传感器前面的无人机平台。

    insModel = insSensor ();ins = uavSensor (“英寸”uavPlat insModel,“MountingLocation”,4 0 0);

    在三维可视化场景。

    ax = show3D(现场);轴(ax,“平等”);

    模拟的场景。

    设置(现场);推进(场景)%更新传感器读数updateSensors(现场);%可视化的场景show3D(场景,“父”ax,“FastUpdate”,真正的);drawnowlimitrate结束

    图包含一个坐标轴对象。坐标轴对象包含东(m), ylabel北(m)包含4块类型的对象。

    这个例子展示了如何添加地形和自定义构建网格无人机的场景。

    加上地形表面

    加上地形表面基于地形高程数据n39_w106_3arc_v2.dt1DTED文件。

    addCustomTerrain (“CustomTerrain”,“n39_w106_3arc_v2.dt1”);场景= uavScenario (“ReferenceLocation”39.5 - -105.5 [0]);addMesh(场景中,“地形”,{“CustomTerrain”200年[-200],[-200 200]},(0.6 0.6 0.6));show3D(场景);

    图包含一个坐标轴对象。坐标轴对象包含东(m), ylabel北(m)包含一个补丁类型的对象。

    增加建筑

    添加一些自定义构建网格使用顶点和多边形网格的场景。使用terrainHeight函数来获得每个构建基地的地面高度。

    buildingCenters = [-50、-50;100 100);buildingHeights = (100);buildingBoundary = (-25 -25;-25 50;50 50;50 -25];idx = 1:尺寸(buildingCenters, 1) buildingVertices = buildingBoundary + buildingCenters (idx:);buildingBase = min (terrainHeight(场景,buildingVertices (: 1), buildingVertices (:, 2)));addMesh(场景中,“多边形”,{buildingVertices buildingBase + [0 buildingHeights (idx)]}, (0.3922 0.8314 0.0745));结束show3D(场景);视图(15 [0])

    图包含一个坐标轴对象。坐标轴对象包含东(m), ylabel北(m)包含3补丁类型的对象。

    
                         

    删除自定义地形

    删除自定义导入的地形。

    removeCustomTerrain (“CustomTerrain”)

    版本历史

    介绍了R2020b