ArduPilot 教程(1):在 Ubuntu 22.04 上安装与运行 SITL 仿真环境

发布于:2025-06-19 ⋅ 阅读:(12) ⋅ 点赞:(0)

目录

1. 克隆 ArduPilot 代码库

2. 安装 ArduPilot 依赖包

3. 了解 ArduPilot 目录结构

4. 编译安装 ArduPilot SITL 和 Copter 代码

5. 运行一个 ArduPilot SITL 仿真

6. 本讲小结


ArduPilot 是一个开源、全功能、可扩展的无人系统自动驾驶软件,支持多种载具类型,包括多旋翼无人机,固定翼无人机,水上无人船和水下无人机器设备。SITL(Software-In-The-Loop) 是 ArduPilot 提供的一种 软件级仿真系统,允许你在不使用真实硬件的情况下,在本地机器运行 ArduPilot 代码并测试其行为。这篇教程将讲解如何安装 AruduPilot 及其 SITL 仿真代码。在成功安装和构建程序后,将启动一个基于多旋翼无人机的仿真。

1. 克隆 ArduPilot 代码库

在 Ubuntu 22.04 中打开一个终端,输入如下命令:

git clone --recurse-submodules https://github.com/ArduPilot/ardupilot.git

注意这里的 --recurse-submodules 选项很重要,不然很多子模块不会被自动安装。整个下载克隆的过程会输出很多信息,这里只截取开头的一部分,给大家参考,如下图:

下载完成之后,我们会在目录下找到 “ardupilot” 这个文件夹。

2. 安装 ArduPilot 依赖包

克隆完代码库之后,我们需要安装 ArduPilot 在 Ubuntu 下运行所需要的依赖包,ArduPilot 为我们提供了一个 shell 工具来完成这个任务,在终端中输入如下命令:

cd ./ardupilot
Tools/environment_install/install-prereqs-ubuntu.sh -y

这里会要求我们输入 sudo 密码,否则安装无法进行。安装过程中会有很多输出,也可能会出现一些 warning, 如果脚本没有中止的话暂且不用理会。在安装过程的结尾会输出如下信息:

安装结束后,重新加载当前用户的 profile 文件,使其中的环境变量设置等配置立即生效,代码如下:

. ~/.profile

依赖包安装完成之后,我们已经完成了安装 ArduPilot 的所有准备。

3. 了解 ArduPilot 目录结构

在编译安装具体的 ArduPilot 代码之前,我们先简单了解一下 ArduPilot 代码库的目录结构,如下图所示:

这里对主要文件夹进行一下介绍:

ardupilot/
        ├── ArduCopter/             # 多旋翼无人机(Copter)飞控代码
        ├── ArduPlane/              # 固定翼无人机(Plane)飞控代码
        ├── Rover/                     # 无人车,无人船(Rover)飞控代码
        ├── ArduSub/                 # 水下机器人(Sub)飞控代码
        ├── AntennaTracker/     # 天线跟踪器模块
        ├── Tools/                      # 工具脚本和辅助程序
        ├── libraries/                  # 通用功能库(IMU、GPS、EKF、CAN 等)
        ├── modules/                 # 外部子模块(如 MAVLink, GCS scripts)
        ├── waf/                         # Waf 构建系统配置
        ├── wscript                    # Waf 构建配置文件
        ├── README.md          # 项目说明

另外多说一句,ArduPilot 是使用 waf 做为其主要构建系统。waf 是一个 Python 编写的轻量级构建工具,替代了传统的 make 或 cmake,适用于模块化项目如 ArduPilot。在使用 waf 构建代码之后,会产生一些额外的目录。

4. 编译安装 ArduPilot SITL 和 Copter 代码

进入 ardupilot 文件夹,准备编译安装 ArduPilot SITL 以及多旋翼无人机 (Copter) 的仿真代码,在终端中输入如下命令:

./waf configure --board SITL   
./waf copter

编译安装的过程会有很多输出,这里依然只截取最后一部分作为参考:

注意这里的 ./waf configure --board SITL 一般只需要执行一次,除非我们想要使用不同的配置。ArduPilot 支持很多不同的 board 配置,比如如果需要更换成其它支持的周边硬件而不是 SITL,可用如下代码:

./waf configure --board skyviper-v2450
./waf copter

如果代码库中一些子模块升级了,我们想要对程序进行重新构建,可以运行:

./waf clean

这个命令会删除已经编译好的库和文件,以便我们重新构建程序。在安装顺利完成之后,我们可以启动仿真程序进行测试了。

5. 运行一个 ArduPilot SITL 仿真

在 ardupilot 文件夹中输入以下命令,启动一个仿真程序:

sim_vehicle.py -v ArduCopter --console --map 

程序运行的结果如下图:

这里我们看到,程序启动了一个 map, 一个 console 和一个 ArduCopter 信息终端,证明我的代码已经安装成功了。sim_vehicle.py 是 ArduPilot SITL 的核心命令,我们将在下一讲中对这个命令进行介绍,并运行一个简单的仿真,操作无人机进行一些指定的任务。

6. 本讲小结

在这一教程中,我们简单介绍了如何下载 ArduPilot 的代码库,代码库的目录结构,如何安装依赖包和构建 ArduPilot SITL 仿真代码。最后我们成功运行了一个 ArduPilot SITL 的仿真程序。我们将在下一篇教程中,继续介绍 ArduPilot SITL 仿真。我们将会操纵一个模拟的无人机,进行具体任务,比如,起飞,降落以及飞到指定地点。

参考文献:

1. Setting up the Build Environment (Linux/Ubuntu) — Dev documentation

2. Using SITL — Dev documentation


网站公告

今日签到

点亮在社区的每一天
去签到