主要内容

uavSensor

传感器对于无人机场景

描述

uavSensor对象创建一个传感器,严格附加到无人机平台,作为一个指定uavPlatform对象。您可以指定不同的安装位置和方向。配置这个对象自动生成数据从一个传感器作为一个指定insSensor,gpsSensor,uavLidarPointCloudGenerator系统对象™或uav.SensorAdaptor类。

创建

描述

传感器= uavSensor (的名字,平台,sensormodel)创建一个传感器与指定名称的名字和传感器模型sensormodel,设置的名字SensorModel属性分别。传感器被添加到平台平台指定为一个uavPlatform对象。

例子

传感器= uavSensor (___,名称,值)属性使用一个或多个名称-值对参数除了输入参数在前面的语法。您可以指定MountingLocation,MountingAngles,或UpdateRate属性名称-值对。例如,lidarmodel uavSensor (“uavLidar”平台,“MountingLocation”, [1 0 0])”传感器1米的地方x方向相对于车身骨架的平台。在报价附上每个属性的名字。

属性

全部展开

标量传感器名称指定为一个字符串。选择一个名字来标识这个特定的传感器。

例子:“uavLidar”

数据类型:字符串|字符

传感器位置平台,指定为一个向量的形式[x y z]在平台框架。单位是米。

例子:(1 0 0)是1米的吗x方向。

数据类型:

传感器方向旋转角度,指定为一个向量的形式[z y x]在哪里z,y,x是旋转的z设在,y设在,x设在顺序,在度。方向是相对于车身骨架的平台。

例子:(90 0)

数据类型:

更新的速度传感器,指定为一个积极的标量赫兹。默认情况下,对象使用UpdateRate指定的传感器模型对象的属性。

传感器更新时间间隔(1 / UpdateRate)必须相关的更新间隔的倍数uavScenario对象。

数据类型:

传感器模型生成数据,指定为一个insSensor,gpsSensor,或uavLidarPointCloudGenerator系统对象。

对象的功能

从无人机传感器收集最新的阅读

例子

全部折叠

创建一个场景模拟无人机(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])

图包含一个坐标轴对象。坐标轴对象包含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(场景)结束持有

图包含一个坐标轴对象。坐标轴对象包含15块类型的对象,散点、线。

介绍了R2020b