平面 SITL/MAVProxy 教程

本教程简要介绍了如何使用 SITLMAVProxy 对于 固定翼飞行器 测试。

概述

这篇文章主要面向希望使用 SITL 测试新 Plane 版本和错误修复的开发人员。 MAVProxy.它展示了如何起飞、执行任务、在 指导 模式、设置地理围栏以及执行其他一些基本测试任务。

该教程是对主题的补充 使用 SITL 进行 ArduPilot 测试.

备注

先决条件

本教程假定您已经设置了 Windows操作系统上的 SITLLinux操作系统 并使用 --地图--控制台 选项:

CD ~/ardupilot/ArduPlane
模拟载具.py --地图 --游戏机

备注

如果您希望在不同的地图位置开始模拟,或使用与标准副翼/升降舵/方向舵/油门飞机不同的框架类型(-f 选项用于垂直起降固定翼飞行器、萤火虫飞机等),请参阅 SITL 高级测试.使用 -help 选项可以找到模拟器启动选项的完整列表:

模拟载具.py --帮助

"这款" MAVProxy 命令提示符, 控制台地图 应方便安排,以便同时观察状态和发送命令。

../_images/mavproxy_sitl_console_and_map.jpg

起飞

要使用 Plane 起飞,您可以使用一个任务(自动模式),其中包含 mav_cmd_nav_takeoff 命令,或使用 "起飞 "模式。如果是垂直起降固定翼飞行器,您还可以使用 QLOITER、QHOVER 或 QSTABILIZE 等 VTOL 模式起飞,方法是将油门提高到中杆以上(使用正常默认值,例如 RC 3 1600 命令)。在空中飞行后,您可以切换到其他 飞行模式 (请确保您的节流阀设置为该模式的适当值)。

首先加载 CMAC-circuit.txt 使用 wp 负荷 如下图所示(该任务包含起飞指令):

wp 负荷 ..\工具\自动测试\通用任务\CMAC-线路.文本
wp 清单

任务加载完成后,您就可以启动油门起飞,并将模式设置为 自动 (这些操作的顺序并不重要):

模式 载具
上膛 throttle

飞机起飞高度应为 40 米,然后飞过其他任务航点(大部分航点的高度为 100 米)。您可以随时通过更改模式来停止/暂停任务。

监测

在起飞过程中,您可以通过控制台上的 Alt field.

开发人员可能会发现 示意图 起飞时,首先输入 起飞 指挥。

./_images/MAVProxyGraphPlane_gtakeoff_40.png

MAVProxy:飞机起飞图(gtakeoff)

故障排除

造成起飞困难的最常见原因是

  1. 使用不包含起飞指令的飞行任务!

  2. 载具未上膛时试图起飞。如果载具未能通过预上膛检查,就可能发生这种情况。

您可以列出所有 启用 使用命令 上膛 清单:

土地>; 上膛 清单
土地>; 一应俱全
参数
电压
指北针
电池
保险
rc
巴罗
全球定位系统

您可以使用 上膛 查看 n上膛 取消勾选 n n 分别是检查的名称。使用 n 的价值 一应俱全 来启用/禁用所有检查。

飞行任务

您可以随时使用 wp 负荷 命令。一旦载具上膛完毕,任务就会立即开始,而你也会在 自动 模式。

下面的示例展示了如何加载并启动其中一个测试任务,然后跳到第二个航点。 wp 设置 n 任务:

wp 负荷 ..\工具\自动测试\通用任务\CMAC-线路.文本
模式 载具
wp 设置 2
wp 

"这款" MAVProxy 航点文档 列出了全部可用命令(也可以在命令行输入 "wp",使用自动完成功能获取)。

如果您想创建一个航点任务,这在地图上最容易实现:

  1. 右键单击地图,然后选择 任务 | 绘制.

    ./_images/MAVProxyCopter_Mission_Draw.jpg

    MAVProxy:绘制任务菜单

  2. 在地图上左键单击要显示点的位置。

    备注

    第一次点击时,不会出现任何可见的情况。第二次点击后,线条将连接您的点,显示路径。

  3. 完成后,右键单击地图,选择 任务环路.

这种方法只允许您创建 mav_cmd_nav_waypoint 命令。您可以在 Linux 上使用 未接 模块模块 负荷 未接).目前在 Windows 上这一功能已被破坏。也可以从文件加载其他类型的命令。

更改飞行模式

平面支持 飞行模式数您可以在 MAVProxy 使用 模式 指挥:

自动>; 模式
(自动>; ''土地', '自动飞行稳定调整', '稳定', '自动', '指导', '莱特', '手册', 'FBWA', 'FBWB', '巡航', '初始化', '圆圈', 'ACRO'])

输入 模式 MODENAMEMAVProxy 命令提示符.

例如,下面的命令显示了如何将 Plane 放入 环形模式 (这与 "着陆"(Loiter)类似,只是飞机不会试图保持位置)。

模式 圆形

引导载具

起飞后,您可以在地图上移动载具。 指导 模式。飞机将飞到指定点,然后绕其飞行。

首先更改模式:

模式 导游

设置目标点的最简单方法是右键单击地图上您想去的地方,选择 飞往然后输入目标高度。

./_images/MAVProxyCopter_flyto.jpg

MAVProxy:飞往位置

您也可以使用以下两种格式在命令行中手动输入目标位置。如果只指定了高度,则将使用上次指定的 LAT/LON 格式。

导游 纬度
导游 LAT 伦敦 纬度

备注

与 Copter 不同,您不能用 Plane 做太多事情。 指导 模式,因为该模式不支持很多命令。该模式主要用于简单地飞到某个点。

设置地理围栏

地理栅栏(GeoFence)是 Plane 用来限制飞行器移动(并在失去控制时将其移动到安全位置)的虚拟屏障。Plane 允许您在地图上指定一个任意形状的区域作为栅栏,并指定上下高度。如果栅栏被突破,Plane 会飞向栅栏中心并绕圈(或集结点)。 平面地理围栏 更详细地介绍了栅栏。

使用 平面围栏参数.您可以使用 停止 展览:

指导>; 停止 展览 篱笆*
指导>; 栅栏行动     1.000000
围栏自动启用 0.000000
栅栏    0.000000
FENCE_MAXALT     0.000000
栅栏_MINALT     0.000000
FENCE_RETALT     0.000000
栅栏_ret_rally  0.000000
栅栏总计      7.000000

创建栅栏与创建航点任务非常相似:

  1. 右键单击地图,然后选择 栅栏.

    ../_images/mavproxy_plane_select_draw_fence.jpg

    MAVProxy:绘制栅栏菜单

  2. 左键单击地图上您希望出现栅栏 "柱子 "的位置。

    备注

    第一次点击时,不会出现任何可见的情况。第二次点击后,线条将连接您的点,显示路径。

  3. 完成后,您可以在地图上单击右键,环绕栅栏。

    ../_images/mavproxy_plane_draw_geofence_points.jpg

    MAVProxy:绘制栅栏点

  4. 栅栏最初是禁用的。要将其打开,请将数值设为 1:

    指导>; 篱笆 以便
    
  5. 现在让飞机穿越障碍。假设您已经在飞行,您可以使用下面的方法让飞机笔直地飞向栅栏:

    指导>; 模式 巡航
    
  6. 当栅栏被越过时,飞机将飞到栅栏区域的中心,然后绕圈。控制台显示已发生突破。

    ../_images/MAVProxyPlane_Fence_Breach.jpg

    MAVProxy:控制台和地图上显示栅栏缺口

与其飞到栅栏中心,不如在栅栏上添加一个 号召力 并通过启用参数 栅栏_ret_rally.

测试载具

MAVProxy 可以列出影响载具和模拟的所有参数,使用 停止 展览 *并使用 停止 设置 参数名称 价值.除了影响载具本身外,一些参数还模拟特定硬件组件和环境(如风)的性能/故障。这些参数可通过以下方式列出 停止 展览 模拟*.主题 使用 SITL 进行 ArduPilot 测试 详细介绍了如何使用 SITL 进行测试。