在Windows环境下搭建无人机模拟器

最近要开发无人机地面站,但是没有无人机,开发无人机对我来说也是大姑娘坐花轿——头一回。我们要用 MAVLink 和无人机之间通信,看了几天 MAVLink,还是不得劲儿,没有实物实在是不好弄,所以想先装一个无人机模拟器来试试。

基本概念

首先要明确一些概念,将它们与具体事务之间建立起联系,明白这些名词是什么,干什么的。

  • 载具

    无人机,无人车,无人船,这些都叫做载具。

  • 载荷

    载具上安装的传感器,摄像头等都叫做载荷。

  • 地面站

    载具与地面站之前进行通信,地面站可以显示载具和载荷信息,并发送指令控制载具。

  • MAVLink

    载具与地面站之间进行通信的协议,它针对资源受限平台进行了优化,开源,轻量。

  • Pixhawk 和 PX4

    Pixhawk 是开源飞控硬件平台,PX4 是专为 Pixhawk 开发的固件。

  • ArduPilotMega 和 ArduPilot

    ArduPilotMega 也是飞控硬件平台,ArduPilot 是 ArduPilotMega 的固件,但是由于 ArduPilotMega 性能较低,所以 ArduPilot 也对 Pixhawk 做了兼容,可以运行在 Pixhawk 上。它们都叫 APM,所以看到 APM 的时候要明白它既是硬件平台,也是软件平台。

  • QGC 和 MP:

    QGC 是 QGroundControl,MP 是 Mission Planner,它们都是地面站。QGC 是 PX4 用的地面站,MP 是 APM 的地面站。当然,地面站没有什么专用的,APM 也可以用 QGC 作为地面站。

  • SITL

    全称 Software In The Loop,是一种用于测试和开发无人机的仿真环境,可以在没有硬件的情况下通过软件模拟无人机的飞行和传感器数据。

参考:

PX4(Pixhawk)和Audupilot(APM)的区别与联系_px4和pixhawk的区别-CSDN博客

搭建SITL仿真环境模拟APM

我选择了 APM 进行模拟仿真,因为它安装配置起来比较简单,目前只是用它来学习和试验。

SITL 是在 Linux 上开发的,但是也可以在 Windows 上编译运行。我现在没有时间来折腾 Ubuntu 系统了,所以直接在 Windows 上开搞,虽然官方并不推荐。

第一步:下载 ardupilot 源码

$ git clone https://github.com/ArduPilot/ardupilot
$ cd ardupilot/
$ git submodule update --init --recursiv

第1行是下载 ardupilot 源码,然后进入 ardupilot 目录,第3行是下载子模块。其实这里我感觉只需要执行第1行就可以了,因为我们最终要用到的其实是这个仓库下的一个脚本,后面的步骤我们会看到。所以这里应该不需要下载子模块,但是在之前的尝试中我已经下载了子模块,所以没去亲测不下载子模块是否也可以。而且后面还是要重新下载源码的。

第二步:安装运行环境

这里环境配置其实还是挺麻烦的,需要 Cygwin,GCC,MAVProxy,python等,我看了很多博客,没人讲清楚环境究竟该怎么配置好,实在是有点生气,浪费了不少时间,还是官网比较靠谱。

完整的环境配置步骤在官网有详细说明,我是在 Windows 上安装,所以参考👉这里👈。打开官方文档,我们看到有一个注意:

翻译过来就是:在 ardupilot 源码的 Tools/environment_install 目录下有一个 install-prereqs-windows.ps1 脚本可以自动帮我们自动执行下面的全部步骤,也就是自动帮我们配置好所有环境依赖。 .ps1 是 Windows 的 PowerShell 脚本,可以直接在 PowerShell 中执行。原来可以一键配置环境,这简直是太让人激动了。

不过大家先别急着执行这个脚本,我们可以先看一下这个脚本的内容:

#Powershell script to download and configure the APM SITL environment

Import-Module BitsTransfer

Write-Output "Starting Downloads"

Write-Output "Downloading MAVProxy (1/7)"
Start-BitsTransfer -Source "https://firmware.ardupilot.org/Tools/MAVProxy/MAVProxySetup-latest.exe"<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值