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

2023-05-16

目录

    • 0 环境
    • 1 环境概述
    • 2 配置 WSL
      • 2.1 安装 WSL2
      • 2.2 安装工具链
    • 3 配置VS Code

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 ↩︎

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

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

随机推荐

  • 京东2018笔试题 神奇数

    题目 东东在一本古籍上看到有一种神奇数 如果能够将一个数的数字分成两组 其中一组数字的和等于另一组数字的和 我们就将这个数称为神奇数 例如242就是一个神奇数 我们能够将这个数的数字分成两组 分别是 2 2 以及 4 而且这两组数的和都是4
  • 绑定mac地址与网卡驱动wlan

    按照之前博客https blog csdn net Lin QC article details 90717218的配置 xff0c 我们可以在树莓派上实现双网卡 xff0c 但是再多次试验中发现 xff0c 每次重启后 xff0c 网卡的
  • 在树莓派上ROS MAVROS的安装使用

    首先 xff0c 我购买的是树莓派3B 43 xff0c 比较新款 xff0c 所以装不了太老的树莓派系统 xff0c 安装的是树莓派官方提供的Raspbian Stretch系统 树莓派系统安装过程较为简单 xff0c 且官网教程详细 x
  • APP引导页UI设计素材模板|轻松留下完美的第一印象

    App首次引导页是当你第一次打开一款应用的时候你看到的引导页 xff0c 它们在你未使用产品之前提前告知产品的主要功能与特点 先来看看 像素精简版引导UI工具包 好的实际案例 xff0c 让初学者更友好 xff01 美丽的用户界面 xff0
  • px4 offboard外部控制仿真

    官网中http dev px4 io en ros mavros offboard html xff0c 只给示例代码 xff0c 却不告诉怎么用 xff0c 实在有点坑 xff0c 还好参照网上的一些博客 xff0c 找到了使用方法 首先
  • POST和GET方法的区别与联系

    错误的一个理论就是 xff0c get是从服务器拿数据 xff0c 而post是给服务器传数据 两者其实都是从服务器端拿数据 xff0c 只是一些细节不同罢了 历史 get和post是HTTP与服务器交互的方式 xff0c 说到方式 xff
  • Dronekit 搭配使用Ardupilot 和 PX4

    Dronekit是一个与无人机飞控搭配使用 xff0c 方便开发者使用代码控制无人机 个人认为它会比搭建ros来控制无人机更容易上手一些 对于Dronekit xff0c PX4被支持的较少 xff0c 不可以进行模式切换 xff0c 而对
  • 堆栈存放什么

    此乃转载别人发表 xff0c 作为知识点保存积累 一 xff1a 概念 1 栈 xff1a 当程序进入一个方法时 xff0c 会为这个方法单独分配一块私属存储空间 xff0c 用于存储这个方法内部的局部变量 xff0c 当这个方法结束时 x
  • 嵌入式实时操作系统ucosii原理及应用(任哲)-- --阅读笔记2

    本文是 嵌入式实时操作系统ucosii原理及应用 xff08 任哲 xff09 一书第三章的阅读笔记 xff0c 知识点多为摘录 xff0c 若希望深入了解 xff0c 请购买该书认真研读 由于一些知识比较零散 xff0c 记起来不大方便
  • 如何做项目总结与汇报

    在我们测试工作过程中 xff0c 由于公司业务发展 xff0c 快速迭代等原因 xff0c 我们遇到的项目以小项目居多 更新界面元素 xff0c 上个活动页 xff0c 优化一下原有的功能等等 xff0c 加上事情繁琐 xff0c 任务多
  • 手机安装linux deploy 安装和配置

    最近在淘了一款二手三星的sw 2014 正好最近正在研究智能家居 就想用它来搭建domoticz来管理 xff0c 虽然手头也有一块吃灰的树莓派3b 但是觉得用树莓派搭建有点浪费 xff0c 索性就用这款手机 为什么不用temux xff1
  • 国家分级保护规范要求解读

    仅就项目建设流程而言 xff0c 涉密信息系统建设使用单位应依据 涉及国家秘密的信息系统分级保护管理办法 国保发 2005 16号 确定系统等级 xff0c 结合本单位业务需求和涉密信息制定安全保密需求 xff0c 依据国家保密标准 BMB
  • PX4 编译分析之Airframe文档生成

    PX4 编译分析之Airframe文档生成 本文假设已经阅读了 PX4 的 1 Makefile分析 2 CMakeLists txt分析 这里要分析的是 make airframe metadata 的指令 在 Makefile 文件中找
  • PX4编译文件 Makefile 剖析

    PX4编译文件 Makefile 剖析 当我们执行 cd Firmware进入PX4源码目录 然后make 的时候 我们会看到一串输出基本如下 第一次编译会有更多的输出 2 Built target df driver framework
  • 如何使用vscode运行和调试c/c++程序

    众所周知 vscode是个万金油 xff0c 而且体型轻巧 xff0c 拓展插件多 xff0c 非常适合初学者编程 那么如何使用vscode进行c c 43 43 程序的运行 xff1f 首先必须确保mingw64正确安装 通过以下链接下载
  • PX4 CMakeLists.txt 文件剖析

    PX4 CMakeLists txt 文件剖析 前面对于 PX4 的 Makefile 已经做了比较详细的分析 见这里 这里进一步对 PX4 的 CMakeLists txt 文件结构进行进一步的分析 1 CMake 简述 CMake 是一
  • pymavlink 源码剖析(一)之XML文件的数据解析

    文章目录 1 引言2 pymavlink 的代码自动生成方法3 XML 文件的数据解析3 1 XML 文件预处理3 2 解析 XML 的数据3 2 1 依据协议版本初始化一些版本特征变量3 2 2 解析 XML 文件3 2 3 对解析后结果
  • MAVLink 协议解析之XML定义篇

    文章目录 1 MAVLink XML 文件的基本结构2 message3 enum 1 MAVLink XML 文件的基本结构 下面的代码块是 mavlink 消息定义的 xml 数据文档 代码块 1 span class token pr
  • pymavlink 源码剖析(二)之生成代码

    文章目录 1 引言2 C 代码生成3 generate one 函数分析4 MAVTemplate5 头文件生成 相关 xff1a pymavlink 源码剖析 一 xff09 之XML文件的数据解析MAVLink 协议解析之原理篇 MAV
  • Windows 10 下基于WSL的开源飞控开发环境配置(Ardupilot/PX4)

    目录 0 环境1 环境概述2 配置 WSL2 1 安装 WSL22 2 安装工具链 3 配置VS Code 0 环境 Windows 10 build version gt 61 18917 1 启动 cmd 后输出的第一行文字便是 Win