使用 Vagrant 设置 SITL¶
警告
这些说明已经过时。我们建议 Windows 10 或更高版本的用户按照以下说明进行操作 使用 WSL 设置构建环境 和 在 WSL 上设置 SITL
本文将介绍如何设置 SITL ArduPilot 模拟器 在虚拟机环境中使用 无人车UGV并将其连接到主机上运行的地面控制站。这种方法比 人工 设置虚拟机,在 Mac OSX 或 Windows(或 Linux)上运行 SITL。
这些说明已在 Windows 8.1 上进行了测试。
概述¶
SITL(Software In The Loop,循环软件)模拟器允许您在没有任何硬件的情况下运行飞机、旋翼飞行器或漫游车。模拟器在 Linux PC 上以本地可执行文件的形式运行正常的 ArduPilot 代码。SITL 也可在 Windows、Mac OSX 或 Linux 上的虚拟机中运行。
Vagrant 是一款用于自动设置和配置在虚拟机中运行的开发环境的工具。虽然可以 手动设置 SITL 在 Windows 上的虚拟机中运行 (或 Mac OSX),它是 容易得多 (而且可重复性更高)。
备注
由于子模块目前在构建系统中的处理方式,不可能在主机和虚拟机上同时构建一个版本库。运行 Vagrant 虚拟机时应使用专用的版本库。
先决条件¶
Git (1.8.x 或更高版本) 必须安装在主机上。
Git for Windows (1.9.5) 的建议。
备注
- 当前的 Windows px4 工具链(v14)不含
足够新的 GIT 版本
警告
第一步必须使用较新版本的 git 子模块(git 1.8.x 或更高版本)。之后可以使用旧版本。
确保 git 设置为不触及行尾。点击新的 "Git Shell(或 Bash)"图标(该终端已在安装 git 时安装),然后在 Git "MINGW32″ 终端窗口中输入以下内容:
git 配置 --全球 核心.专权 错误
SSH 必须安装在主机上,并添加到系统 PATH 中。SSH 与 GIT 一起安装,也可以根据自己的平台单独安装。
设置 Vagrant 和虚拟机¶
下载并安装 Vagrant 您的平台。支持 Windows、OS-X 和 Linux。
克隆 ArduPilot 您可以在电脑上的任何地方访问 Github 仓库:
git 复制 https://github.网/ArduPilot/ardupilot.git CD ardupilot
启动 vagrant 实例
在 ardupilot 文件夹中运行命令:
流浪汉 向上
开始运行一个虚拟机,该虚拟机基于 Vagrant 配置文件 在源代码树中。该目录树中的所有文件都会 "神奇地 "出现在运行中的实例中,位于 /vagrant.
备注
第一次运行 vagrant up 命令需要一些时间。该命令需要获取一个 Vagrant 基本虚拟机,并将其配置为开发环境。
备注
在旧版本的 Ubuntu 中,Vagrant 附带的 CA 证书存储空间可能已经过时。你可能需要在运行 Vagrant 前设置一个环境变量:
出口 CURL_CA_BUNDLE=/等等/ssl/证书/ca-证书.ct
初始化 git 子模块
ArduPilot 源代码树引用了其他软件源,如 子模块.这些必须通过在虚拟机上运行来初始化:
流浪汉 ssh CD /流浪汉 git 子模组 更新 --启动 --递归 出口
开始运行 SITL¶
在你的 vagrant shell 中输入以下内容,运行 Copter 模拟器。这将首先构建代码(如果之前未构建),然后运行模拟器:
流浪汉 ssh -c "sim_vehicle.py -j 2 -v ArduCopter";
模拟运行后,您将开始从 MAVLink 提示中获得有关载具状态的信息。例如
全球定位系统 水闸 于 0 米数
APM: 前臂: RC 不 校准
APM: 旋翼飞行器 V3.3-设计 (999710d0)
APM: 框架: QUAD
APM: 前臂: RC 不 校准
本例中构建了旋翼飞行器模拟器,但您也可以通过更改 -v
选择:
流浪汉 ssh -c "sim_vehicle.py -j 2 -v ArduPlane";
流浪汉 ssh -c "sim_vehicle.py -j 2 -v Rover";
提示
sim_vehicle.py
有许多有用的构建选项,从设置模拟速度到选择初始载具位置。使用 -h
标志(其中一些在 使用 SITL 进行 ArduPilot 测试).
在主操作系统中运行Mission Planner地面站或 MAVProxy¶
现在可以从主操作系统连接到运行中的模拟器。只需连接到 UDP 14550 端口,从 Mission Planner地面站 或 MAVProxy.......。 MAVProxy 命令是
mavproxy.py --师=127.0.0.0.1:14550
关闭模拟器¶
完成模拟后
新闻 ctrl-d 在 Vagrant SSH 窗口中退出特殊的 MAVProxy 将一切粘合在一起。
在命令提示符中输入以下内容,暂停正在运行的虚拟机:
流浪汉 吊销
重启模拟器¶
再次需要模拟器时,可以恢复虚拟机并重新启动模拟器,如图所示:
流浪汉 向上
流浪汉 ssh -c "sim_vehicle.py -j 2";
备注
重新启动环境通常只需要几秒钟,因为虚拟机只是暂停,载具的模拟代码已经构建完成。
更新模拟器¶
模拟器由主机和虚拟机共享的源代码树构建,任何更改都会在下次启动模拟器时触发重建。要更新模拟器,只需修改源代码树(或从 Github 获取新版本)。
下一步工作¶
要充分利用 SITL,我们建议您阅读 MAVProxy 文档.
主题 使用 SITL 进行 ArduPilot 测试 介绍了如何使用模拟器,并涵盖了如何将 SITL 与Mission Planner地面站和 MAVProxy 以外的地面站一起使用等主题。