Windows 10 下基于WSL的开源飞控开发环境配置(Ardupilot/PX4)

4 篇文章 0 订阅
1 篇文章 0 订阅

0 环境

  • Windows 10 build version >= 18917 1
    启动 cmd 后输出的第一行文字便是 Windows 的版本信息,或者更明确一点,在 cmd 中执行 ver 。如果不满足版本要求请更新系统到高版本。

1 环境概述

这里我们期望的是在不安装虚拟机的情况下,测试飞控代码在Linux 下的编译,同时希望Linux 下编译好的飞控程序可以和 Windows 下的仿真器进行协同仿真。由于 Microsoft 最近几年积极拥抱开源文化,不仅向社区开源了的 c# 语言,VSCode 编译器,powershell 系统管理 shell,还把开源系统集成到自己的产品中,其中就包括基于WSL 的各种Linux 系统。在Windows 中的Linux 子系统和 Windows 操作系统之间文件完全可以共享,同时二者之间通过网络进行通信,这就为本文下面的内容提供了基础。下面的图简要描述了这里所描述的开发设置的原理。
windows10 下飞控开发环境的功能示意图

2 配置 WSL

WSL (Windows Subsystem for Linux) 提供了在 Windows 10 中执行 Linux 命令的兼容层,即在 Windows10 中可以运行Linux 子系统,WSLWSLWSL2两个版本,WSL2WSL 的主要区别在于 WSL2 中真实的运行了一个 Linux 核。也就是说在 WSL2 在 Windows10 上提供了一个真实的 Linux 子系统,在这个子系统里面几乎可以执行任何 Linux 主机上可以执行的操作。同时 Windows 10 硬盘上的数据可以在 WSL 中直接访问到,这就给跨平台的测试和开发带来许多便利。

2.1 安装 WSL2

在以管理员身份运行的 powershell 中执行 2

dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart

重启之后,在 Microsoft Store 搜索 Ubuntu 18.04 找到 Ubuntu 系统,当然 WSL 也支持一些其他的 Linux 发行版本。
安装之后可能需要一些设置。首先检查一下当前的 linux 分发版本是运行在 WSL 还是 WSL2,在 cmd 或者powershell 中执行

wsl -l -v

确定版本号 VERSION 1。如果 VERSION1 ,则可以通过 wsl --set-version <distro> <version> 来设置,如wsl --set-version Ubuntu-18.04 2 可以设置 Ubuntu-18.04 使用 WSL2

2.2 安装工具链

上面安装了基于 WSL2 的 Ubuntu-18.04,但是还需要进一步安装用来开发的工具链。针对于 ArdupilotPX4开发而言,这里的工具链主要涉及到本地编译交叉编译的工具链。本地编译主要是用来编译仿真测试的代码,交叉编译主要是用来编译到嵌入式平台上,即编译到飞控硬件平台上。下面的步骤主要参考 Ardupilot 开发文档 3PX4 开发文档 4

  • 本地编译:gcc

  • 交叉编译:arm-none-eabi-gcc

这里可以分别用 ArdupilotPX4 官方配置来安装。

# Ardupilot
cd path/to/ardupilot/Tools/environment_install
./install-prereqs-ubuntu.sh
# PX4
cd path/to/Firmware/Tools/setup
chmod u+x ubuntu.sh --no-sim-tools
./ubuntu.sh

上面安装 PX4 编译依赖项时使用了--no-sim-tools 选项来避免安装仿真工具,对于 ArudpilotPX4 的安装依赖项还有一些可以自己设定,这里就不展开了。

3 配置VS Code

安装VS Code后,在 VS Code 安装Remote Development 插件,然后通过 ctrl + shift + p 执行命令remote-WSL 来打开 WSL 工作空间。这个时候就可以在 VSCode 里面进行 Linux 下的程序开发此时在VS Code 中的launch.json 文件中会自动生产对应于 Linux 环境下的编译设置。除此之外,由于 Ardupilot/PX4 代码的主要编程语言为 C/C++Python,所以顺便安装上一些相关插件

  • Python: Python (Microsoft)
  • C/C++: C/C++ (Microsoft)
  • CMake: CMake Tools (Microsoft)
    VS Code 与 WSL 的开发模型

  1. https://docs.microsoft.com/en-us/windows/wsl/wsl2-install ↩︎ ↩︎

  2. https://docs.microsoft.com/zh-cn/windows/wsl/install-win10 ↩︎

  3. https://ardupilot.org/dev/docs/building-the-code.html ↩︎

  4. http://dev.px4.io/master/en/setup/dev_env_linux_ubuntu.html ↩︎

  • 0
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值