主要内容

uavScenario

生成无人机仿真场景

    描述

    uavScenario对象在三维环境中生成由静态网格、无人机平台和传感器组成的仿真场景。

    创建

    scene = uavScenario使用默认属性值创建空无人机场景。默认惯性系是东北-下(NED)和东-北-上(ENU)系。

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

    使用此语法,可以指定UpdateRateStopTimeHistoryBufferSizeReferenceLocation,MaxNumFrames属性。属性的其他属性uavScenario对象,它们是只读的。

    属性

    全部展开

    模拟更新速率,指定为正标量,单位为Hz。时场景的步长推进对象函数等于更新速率的倒数。

    例子:2

    数据类型:

    模拟的停止时间,指定为非负标量。场景在到达停止时间后停止前进。

    例子:60.0

    数据类型:

    场景中存储的最大步数,指定为大于1的正整数。此属性决定了场景中存储的平台姿势的最大帧数。如果模拟的步骤数超过此属性的值,则该场景仅存储最新的步骤。

    例子:60

    数据类型:

    大地坐标中的场景原点,指定为3元素标量向量,形式为[纬度经度高度].纬度而且经度是以度为单位的大地坐标。高度为WGS84参考椭球上方的高度,单位为米。

    数据类型:

    场景中的最大帧数,指定为正整数。添加到场景中的惯性系、平台和传感器的总数必须小于或等于此属性的值。

    例子:15

    数据类型:

    此属性是只读的。

    当前模拟时间,指定为非负标量。

    数据类型:

    此属性是只读的。

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

    数据类型:逻辑

    此属性是只读的。

    场景中所有帧之间的转换信息,指定为transformTree对象。此属性包含与场景关联的惯性、平台和传感器框架之间的转换信息。

    数据类型:对象

    此属性是只读的。

    场景中的惯性系名称,指定为字符串向量。

    数据类型:字符串

    此属性是只读的。

    场景中的无人机平台,指定为数组uavPlatform对象。

    对象的功能

    设置 准备无人机场景进行仿真
    addCustomTerrain 添加自定义地形数据
    addMesh 为无人机场景添加新的静态网格
    addInertialFrame 定义无人机场景下新的惯性系
    推进 一阶时间步先进的无人机场景模拟
    复制 复制无人机场景
    updateSensors 更新无人机场景下的传感器读数
    removeCustomTerrain 删除自定义地形数据
    重新启动 无人机场景复位仿真
    显示 在2-D中可视化无人机场景
    show3D 三维可视化无人机场景
    terrainHeight 返回UAV场景中的地形高度

    例子

    全部折叠

    创建一个UAV场景并设置其本地原点。

    scene = 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 10]);scene.addMesh (“气缸”, {[46 42 5],[0 20]}, [0 1 0],“UseLatLon”,真正的);

    在场景中创建具有指定航路点轨迹的无人机平台。定义无人机平台的网格。

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

    将INS传感器连接到无人机平台的前部。

    insModel = insSensor();ins =无人机传感器(“英寸”uavPlat insModel,“MountingLocation”,[4 0 0]);

    用3-D来想象这个场景。

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

    模拟场景。

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

    图中包含一个轴对象。axis对象包含4个patch类型的对象。

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

    添加地形面

    中基于地形高程数据添加地形面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(场景);

    图中包含一个轴对象。axis对象包含一个patch类型的对象。

    增加建筑

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

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

    图中包含一个轴对象。axis对象包含3个patch类型的对象。

    
                         

    移除自定义地形

    删除已导入的自定义地形。

    removeCustomTerrain (“CustomTerrain”

    版本历史

    R2020b中介绍

    Baidu
    map