主要内容

无人机包裹递送

这个例子展示了通过增量设计迭代,学习如何实现一个小型多直升机模拟在城市环境中的不同位置起飞、飞行和降落。

打开项目

首先,打开示例活动脚本并通过单击访问支持文件打开实时脚本在文档中或使用openExample函数。

openExample (“无人机/ UAVPackageDeliveryExample”);

然后,打开Simulink™项目文件。

prj = openProject(“uavPackageDelivery.prj”);

模型体系结构和约定

顶层模型由以下子系统和模型引用组成:

  1. 地面控制站:用于在飞行中控制和监视飞机。

  2. 外部传感器-激光雷达和摄像头:用于连接到先前设计的场景或逼真的模拟环境。当飞机飞过环境时,这些设备会产生激光雷达读数。

  3. 车载计算机:用于实现在独立于自动驾驶仪的车载计算机中运行的算法。

  4. Multirotor:包括一个低保真度和中保真度的多直升机模式,一个包括其制导逻辑的飞行控制器。

中的Simulink™数据字典中包含模型的设计数据数据文件夹(uavPackageDeliveryDataDict.sldd).此外,模型使用使用可变子系统在单独的层次结构中实现可变(模型)管理模型的不同配置。放置在基本工作区中的变量可以配置这些变量,而不需要修改数据字典。

以下步骤

使用项目的快捷方式逐步完成这个示例。每个快捷方式都会为项目设置所需的变量。

1.开始

单击开始项目快捷方式,它使用低保真多转子工厂模型为四路点任务建立模型。运行uavPackageDelivery模型,该模型显示了多旋翼飞机的起飞、飞行和降落。

UAVPackageDeliveryBasicMissionAnimation.png

该模型使用无人机路径管理器块,以确定在整个飞行过程中哪个是活动路径点。活动路径点被传递到引导模式选择器Stateflow™图表来生成必要的内环控制命令。

2.连接GCS

一旦你能够执行基本的飞行任务,你就准备好将你的模拟与地面站软件集成,这样你就可以更好地控制飞机的任务。为此,您需要下载并安装QGroundControl地面控制站软件。

该模型使用无人机工具箱™mavlinkio在Simulink和QGroundControl之间建立连接。连接是作为MATLAB®系统块实现的,位于uavpackagdelivery /地面控制站/获取飞行任务/QGC/MAVLink接口

要测试Simulink和QGroundControl之间的连通性,请遵循以下步骤:

  1. 单击连接GCS项目的快捷方式。

  2. QGroundControl发射。

  3. 在QGroundControl中,加载命名的任务计划shortMission.plan位于/工具/ qgc

  4. 运行仿真。

  5. 当QGroundControl显示已接入系统时,上传任务。

一旦飞机起飞,你应该看到无人机飞行它的任务,由QGC发送如下所示。

UAVPackageDeliveryQGCShortMissionResized.png

你可以通过添加路径点或移动任务中已经存在的路径点来修改任务。上传任务,飞机应该对这些变化做出反应。

3.设置长方体场景

现在飞机的模型可以从地面控制站流动,考虑飞机飞行的环境。方法在长方体场景中对几个城市街区进行建模uavScenario对象。该场景基于下图中所示的城市街区。

Scenario.png

为了在这种情况下安全地驾驶飞机,你需要一个传感器来提供有关环境的信息,例如激光雷达传感器。本例使用uavLidarPointCloudGenerator对象添加到无人机场景uavSensor对象。激光雷达传感器模型根据传感器的姿态和环境中的障碍物生成读数。

单击设置长方体场景快捷方式,运行该模型。随着模型的运行,当飞机飞过长方体环境时,激光雷达点云图像会显示出来:

4.避障

为了避免环境中的障碍,模型必须使用无人机在环境中执行任务时可用的传感器数据。若要修改模型配置,请单击避障3D避障快捷方式。将出现一个范围,显示长方体环境中离建筑物最近的点。避障快捷配置模型使用平面激光雷达信息和向量场直方图(导航工具箱)通过改变无人机在当前x-y平面上的方向来避开障碍物。3D避障shortcut配置模型使用3D激光雷达点和避障通过改变无人机在三维空间中的方向来避开障碍物。

运行该模型。在避障模式,当模型运行时,飞机试图在建筑物之间沿直线飞行到降落地点,但会偏离以避开沿途的障碍物。观察障碍物距离随时间的变化,并观察相似的行为3D避障模式,无人机现在也可以调整高度飞越障碍。

5.逼真的模拟

到目前为止,环境一直是一个简单的长方体场景。要增加环境的逼真度,请单击逼真的模拟捷径,它把飞机放在一个更现实的世界飞行。photorealistic四旋翼变体位于uavPackageDelivery / photorealisticSimulationEngi / SimulationEnvironmentVariant变得活跃。该变体包含配置模拟环境和安装在飞机上的传感器所需的块:

运行该模型。飞机被设置为执行步骤1和步骤2中相同的任务。注意,当飞机执行任务时,激光雷达点云更新,并显示来自前置摄像头的图像。

UAVPackageDeliveryUnrealBasicMissionResize.png

6.在逼真的模拟环境中飞行完整的任务

下一步,单击完成全部任务快捷方式,设置连接到QGroundControl从步骤2上传任务在逼真的环境。按照以下步骤运行模拟:

  1. QGroundControl发射。

  2. 在QGroundControl中,加载命名的任务计划shortMission.plan位于/工具/ qgc

  3. 运行仿真。

  4. 当QGroundControl显示已连接系统时,上传任务。

当飞机开始飞行时,你可以在QGroundControl中通过添加航路点或移动那些已经在任务中的航路点来修改任务。上传任务,飞机应该对这些变化做出反应。在整个飞行过程中,你会看到飞机在这个场景中飞行。

UAVPackageDeliveryUnrealQGCResize.png

7.在一个逼真的模拟环境飞行避障

接下来,目标是通过在QGroundControl中指定起飞和降落点,并使用障碍物规避绕过路径上的障碍物来执行飞行任务。单击飞行全程避障飞行全3D避障快捷键并按照以下步骤运行模拟:

  1. QGroundControl发射。

  2. 在QGroundControl中,加载命名的任务计划oaMission.plan位于/工具/ qgc

  3. 运行仿真。

  4. 当QGroundControl显示已连接系统时,上传任务。

在整个飞行过程中,观察飞机试图遵循QGroundControl中的命令路径,同时试图避免与环境中的建筑物相撞。如果飞行全3D避障使用时,你可以观察到无人机飞过较低的建筑物,而不是围绕它飞行。

UAVPackageDelivery3DObstacleAvoidanceResize.png

在飞行过程中的某个时刻,你会看到无人机在建筑物的角落飞行。

UAVPackageDeliveryUnrealAroundCorner400.gif

8.为更高保真度的仿真增加一个6自由度的植物模型

作为最后一步,单击添加高保真植物快捷方式,激活位于的无人机模型的高保真变种uavpackagdelivery /MultirotorModel/内环和植物模型/高保真模型.这种变体包含一个内环控制器和一个高保真的工厂模型。

运行该模型。由于高保真模型,行为有微小的变化,但无人机执行相同的任务。

当您完成对模型的探索时,关闭项目文件。

关闭(撮合下);
Baidu
map