主要内容

uavPlatform

无人机平台传感器场景

自从R2020b

描述

uavPlatform对象代表了一个无人机(UAV)平台在一个给定的无人机的场景。使用这个平台来定义和跟踪的轨迹的无人机的场景。模拟传感器读数为平台,安装传感器等gpsSensor,insSensor,uavLidarPointCloudGenerator系统对象™平台uavSensor对象。添加一个身体网格可视化平台使用updateMesh对象的功能。设置地理围墙的限制使用addGeoFence对象和检查这些限制使用checkPermission对象的功能。

创建

描述

平台= uavPlatform (的名字,场景)创建一个平台指定名称的名字,并将其添加到场景中,指定为一个uavScenario对象。指定名称参数为字符串标量。参数设置的名称的名字财产。

例子

平台= uavPlatform (的名字,场景,名称,值)使用一个或多个名称-值对参数指定选项。您可以指定属性名称-值对参数。例如,uavPlatform (“UAV1”场景,“开始时间”,10)平台的初始时间轨迹设置为10秒。在报价附上每个属性的名字

名称-值参数

指定可选的双参数作为Name1 = Value1,…,以=家,在那里的名字参数名称和吗价值相应的价值。名称-值参数必须出现在其他参数,但对的顺序无关紧要。

R2021a之前,用逗号来分隔每一个名称和值,并附上的名字在报价。

例子:“开始时间”,10平台的初始时间轨迹设置为10秒。

平台的初始时间轨迹,指定为逗号分隔组成的“开始时间”和一个标量秒。无人机平台启动后,轨迹中的第一个航点轨迹的时候加上这个平台的开始时间。

数据类型:

最初的无人机平台位置,指定为逗号分隔组成的“InitialPosition”和一个向量的形式[x y z]。如果不指定唯一指定这个名称-值对轨迹财产。

数据类型:

最初为无人机平台定位,指定为逗号分隔组成的“InitialOrientation”和一个向量的形式[w x y z]代表一个四元数。如果不指定唯一指定这个名称-值对轨迹财产。

数据类型:

无人机初始平台速度,指定为逗号分隔组成的“InitialVelocity”和一个向量的形式(vx v vz)。如果不指定唯一指定这个名称-值对轨迹财产。

数据类型:

最初为无人机平台加速度,指定为逗号分隔组成的“InitialAcceleration”和一个向量的形式(ax ay az)。如果不指定唯一指定这个名称-值对轨迹财产。

数据类型:

初始角速度为无人机平台,指定为逗号分隔组成的“InitialAngularVelocity”和一个三元素的向量形式[x y z]。矢量的大小定义了角弧度/秒的速度。的xyz坐标定义轴顺时针旋转。如果不指定唯一指定这个名称-值对轨迹财产。

数据类型:

无人机平台的轨迹运动,作为一个指定waypointTrajectorypolynomialTrajectory对象。默认情况下,平台被认为是静止的,在原点。移动平台在每个场景的模拟步骤,使用移动对象的功能。

请注意

uavPlatform对象必须指定相同的ReferenceFrame属性指定的轨迹对象。

参考帧计算无人机平台运动,指定为字符串标量,匹配任何参考系uavScenario。计算所有平台运动相对于惯性坐标系。

数据类型:字符串

属性

全部展开

标识符指定的无人机平台,作为一个字符串标量或特征向量。

例子:“uav1”

数据类型:字符串|字符

无人机平台的轨迹运动,作为一个指定waypointTrajectorypolynomialTrajectory对象。当指定为一个waypointTrajectorypolynomialTrajectory对象,沿着轨迹移动平台在场景模拟。移动平台在每个场景的模拟步骤,使用移动对象的功能。

请注意

uavPlatform对象必须指定相同的ReferenceFrame属性指定的轨迹对象。

参考帧计算无人机平台运动,指定为字符串标量或矢量的人物,这匹配任何参考系uavScenario。计算所有对象平台运动相对于惯性坐标系。

数据类型:字符串|字符

无人机平台体网格,指定为一个extendedObjectMesh对象。身体网描述了平台的三维模型可视化的目的。

无人机平台体网格颜色显示在场景时,指定为一个RGB值。

数据类型:

无人机平台之间的变换身体和网框,指定为一个4×4齐次变换矩阵映射点网格框架分身体框架平台。

数据类型:

传感器安装在无人机平台,指定为数组uavSensor对象。

Geofence无人机平台的限制,与这些字段指定为一个结构数组:

  • 几何——一个extendedObjectMesh对象代表的geofence场景的三维空间坐标系。

  • 许可——逻辑标量表示如果geofence(内部的平台是允许的真正的)或不允许的()。

数据类型:

对象的功能

移动 在场景中移动无人机平台
读无人机运动矢量
updateMesh 更新为无人机平台体网格
addGeoFence 加上地理围栏无人机平台
checkPermission 检查无人机平台允许基于地理围墙

例子

全部折叠

创建一个场景模拟无人机(UAV)的一组建筑之间的航班。开环仿真中的示例演示了无人机姿态更新。使用无人机场景可视化无人机飞行和生成模拟点云传感器读数。

介绍

测试自动算法,无人机的场景使您能够从环境中生成测试用例,并生成传感器数据。在工作区中您可以指定障碍,提供无人机在全球的轨迹坐标和坐标之间转换数据帧。无人机的场景使您能够想象这个信息环境的参考系。

用多边形构建网格创建场景

一个uavScenario对象是一个模型组成的一组静态障碍和可移动的物体称为平台。使用uavPlatform对象模型固定翼无人机、multirotors和场景中的其他对象。这个例子构建一个场景组成的地平面和11个建筑挤压的多边形。建筑的多边形数据加载和使用添加多边形网格。

%建立无人机的场景。现场= uavScenario (“UpdateRate”2,“ReferenceLocation”,(75 -46 0));%添加一个地平面。颜色。灰色的= 0.651 * (1、3);颜色。绿色= (0.3922 0.8314 0.0745);颜色。红色= (1 0 0);addMesh(场景,“多边形”,{(-250 -150;200 -150;200 180;-250 180],[4 0]},color.Gray)%负载建筑物多边形。负载(“buildingData.mat”);%添加组多边形从10 - 30挤压不同高度吻合。addMesh(场景,“多边形”,{buildingData {1} (1:4,:), 30 [0]}, color.Green) addMesh(场景,“多边形”,{buildingData {2} (2:5,:), 30 [0]}, color.Green) addMesh(场景,“多边形”,{buildingData {3} (2:10:), 30 [0]}, color.Green) addMesh(场景,“多边形”,{buildingData {4} (2:9,:), 30 [0]}, color.Green) addMesh(场景,“多边形”,{buildingData {5} (1: end-1,:), 30 [0]}, color.Green) addMesh(场景,“多边形”,{buildingData {6} (1: end-1,:), [0 15]}, color.Green) addMesh(场景,“多边形”,{buildingData {7} (1: end-1,:), 30 [0]}, color.Green) addMesh(场景,“多边形”,{buildingData {8} (2: end-1,:), [0 10]}, color.Green) addMesh(场景,“多边形”,{buildingData {9} (1: end-1,:), [0 15]}, color.Green) addMesh(场景,“多边形”,{buildingData {10} (1: end-1,:), 30 [0]}, color.Green) addMesh(场景,“多边形”,{buildingData {11} (1: end-2,:), 30 [0]}, color.Green)%显示的场景。show3D(现场);xlim(200年[-250])ylim (180 [-150]) zlim (50 [0])

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

定义无人机平台和传感器

您可以定义一个uavPlatform传感器模型的场景作为载体,使他们通过收集传感器数据模拟的场景。你可以把这个平台和不同的网格,如fixedwing,quadrotor,长方体网格。您可以定义一个自定义网格的定义由顶点和面孔。指定用于描述您平台的运动的参考系。

飞行数据加载到工作区,并创建一个quadrotor平台使用NED参考系。基于加载指定的初始位置和姿态飞行日志数据。无人机车身骨架的配置方向x设在转发正面,y设在right-positive,z设在downward-positive。

负载(“flightData.mat”)%建立平台平台= uavPlatform (“无人机”场景,“ReferenceFrame”,“内德”,“InitialPosition”位置(:,:1),“InitialOrientation”,eul2quat(取向(::1)));%设置网格平台。添加一个旋转东方无人机主体框架的网格。updateMesh(平台,“quadrotor”{10},颜色。红色,[0 0 0],eul2quat([0 0π]))

你可以选择不同的传感器,如insSensor,gpsSensor,或uavLidarPointCloudGenerator你的无人机系统对象。激光雷达点云发生器和山uavSensor对象包含激光雷达传感器模型。指定一个传感器的安装位置,相对于无人机主体框架。

lidarmodel = uavLidarPointCloudGenerator (“AzimuthResolution”,0.3324099,“ElevationLimits”20 [-20],“ElevationResolution”,1.25,“MaxRange”,90,“UpdateRate”2,“HasOrganizedOutput”,真正的);激光雷达= uavSensor (“激光雷达”、平台、lidarmodel“MountingLocation”[0,0,1]);

无人机飞行平台以及预定义轨迹和收集点云传感器读数

无人机在一个预定义的轨迹移动,并收集激光雷达传感器读数。这个数据可以用来测试lidar-based映射和定位算法。

Preallocate的traj散点图线情节,然后指定plot-specific数据源。在模拟的uavScenario,使用所提供的plotFrames从现场作为父轴输出可视化你的传感器数据正确的坐标框架。

可视化的场景。

[ax, plotFrames] = show3D(现场);

为更好的可见性更新绘制视图。

xlim(200年[-250])ylim (180 [-150]) zlim(50[0])视图([-110]30日)轴平等的持有

创建一条线轨迹图。首先创建的阴谋plot3,然后手动修改数据源属性的阴谋。这提高了绘制的性能。

traj = plot3(南南、南“颜色”(1 1 1),“线宽”2);traj。XDataSource =“位置(:2 1:idx + 1)”;traj。YDataSource =“位置(:,1,1:idx + 1)”;traj。ZDataSource =“-安置(:3 1:idx + 1)”;

创建一个点云的散点图。再次更新数据源属性。

colormap (“喷气机”)pt = pointCloud (nan (1, 1, 3));散点图= scatter3(南、南南,1 (0.3020 0.7451 0.9333),“父”,plotFrames.UAV.Lidar);散点图。XDataSource =“重塑(pt.Location (:,: 1), [], 1)”;散点图。YDataSource =“重塑(pt.Location (:,: 2), [], 1)”;散点图。ZDataSource =“重塑(pt.Location (:,:, 3), [], 1)”;散点图。CDataSource =“重塑(pt.Location (:,:, 3), [], 1) - min(重塑(pt.Location (:,:, 3), [], 1))”;

建立了模拟。然后,遍历的位置并显示现场每次激光雷达传感器更新。推进现场,将无人机平台,并更新传感器。

设置(场景)idx = 0:大小(位置,3)1 [isupdated lidarSampleTime, pt] =阅读(激光雷达);如果isupdated%使用快速更新移动平台的可视化框架。show3D(场景,“时间”lidarSampleTime,“FastUpdate”,真的,“父”、ax);%刷新所有情节数据和可视化。refreshdata drawnowlimitrate结束%推进现场模拟时间和移动平台。推进(现场);(移动平台,位置(:,:,idx + 1), 0 (1,6), eul2quat(取向(:,:,idx + 1)), 0 (1、3)))%更新场景中所有的传感器。updateSensors(场景)结束持有

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

版本历史

介绍了R2020b