下载并构建PX4

2023-05-16

根据官方的文档,PX4下载和构建的方式有两种:Linux系列的Console模式(当然也支持Windows下的MINGW32)和Windows模式。

在Windows平台下,我们习惯于通过GUI进行各种操作,就算安装了Git,也要外加一个GUI版的工具,像GitExtensions。Git是Linus开发的,继承Linux的文化,虽然GitExtensions这类的GUI工具比较好上手,但是功能过于简单,不能体现Git的强大功能,甚至也会影响对Git的认识。

PX4不建议使用GUI版本的Git工具,若习惯用Git,就直接用命令,否则推荐使用PX4 Toolchain 下的 PX4 Software Download批处理文件(开始菜单中的一个快捷方式)。PX4的代码都托管在GitHub上面,所以需要电脑联网,若公司里面设置了网络代理,就需要为Git设置代理。

1、Console模式:

PX4下分好几个项目,例如:Bootloader,Firmware,Nuttx,px4esc等。Firmware是固件(嵌入式软件),对其他项目有依赖,所以若是分别下拉代码到独立的文件夹下,Firmware就不能编译成功。按官网上的建议,需要先通过如下命令(若使用Windows操作系统,请打开【开始】-》【所有程序】-》【PX4 Toolchain】-》【PX4 Console】)下来Firmware项目:

 

cd ~/src
git clone https://github.com/PX4/Firmware

 

等下拉完成,再把其依赖项目当成子模块,下拉到Firmware目录下:

 

cd Firmware
git submodule init
git submodule update

下拉代码需要几十分钟。等下拉完成,就可以构建项目了。构建命令如下:

 

 

cd ~/src/Firmware
make distclean
make archives
make -j8


构建完成后,就会在Farmware/Images文件夹下生成FMU和IO的二进制文件。

 

注:命令中 -j8 的意思是同时运行8个实例,这样编译速度会快很多。

通过UBS刷固件(使用PX4 Bootloader)

这是官方推荐的更新固件的方式。

若是使用Linux操作系统,需要通过以下命令设置当前用户归属于用户组【dialout】:

 

sudo usermod -a -G dialout $USER

命令执行成功后,需要重新登录,以使设置生效。

 

接下来更新固件。在确定【firmware】固件构建成功后,在【Firmware】目录下执行以下命令:

 

make upload px4fmu-v2_default -j8

执行结果应该如下:

 

 

working in [...]/Firmware/Images
Attempting to flash PX4FMU board via USB
Loaded firmware for 5,0, waiting for the bootloader...


当你看到【waiting for the bootloader】时,按下在Pixhawk侧边的【reset】按钮。当硬件连接成功,并重置成功,新的固件就开始更新了。命令行会出险如下提示:

 

 

Found board 5,0 on /dev/tty[...]
erase...
program...
verify...
done, rebooting.

 

 

 

 

 

 

 

 

 

2、Windows模式

Windows模式就相对简单些。

首先,打开请打开【开始】-》【所有程序】-》【PX4 Toolchain】-》【PX4 Software Download】 工具下拉代码,此工具会一次下载Firmware项目和其子模块。其实此工具也是一个批处理文件。

然后,打开【PX4 Toolchain】下的【PX4 Eclipse】,此快捷方式会打开Eclipse。Eclipse是安装在PX4 Toolchain时,一起安装的。然后,在Eclipse中价值Firmware项目。在Eclipse中选择 File -> Import -> C/C++ -> Existing Makefile project ,然后选择Cross GCC,在弹出的文件夹对话框中选择Firmware目录,然后点击完成。

添加make tagets。

在Eclipse右边面板中,选择【make targets】面板,展开Firmware文件夹。右键点击Firmware,选择【Add make target】,给target命名,并勾选【Save as target】,依次创建如下几个target:archives,all,distclean,clean, upload px4fmu-v2_default。他们都是构建命令,含义如下:

archives:构建NuttX OS;

all:构建无人机软件(依赖于archives);

distclean:清除所有构建文件,包括Nuttx OS构建文件;

clean:仅清除应用程序部分即:Firmware;

upload px4fmu-v2_default:更新固件到PX4FMU v2版上。

编译代码并上传到硬件

首先,双击all target 一次构建Firmware和所有依赖项目,然后双击 upload target。通过USB连接PX4FUM硬件。开始上传固件。


参考官方文档:https://pixhawk.org/dev/nuttx/building_and_flashing_console

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

下载并构建PX4 的相关文章

  • PX4+QGC+jmavsim软件在环仿真

    一 环境修改 参考官方手册jMAVSim 仿真模拟 PX4 Developer Guide xff0c 以上环境基于上一篇内容 xff0c 未完成ROS 43 jmavsim 43 QGC环境搭建的请移步Ubuntu18 04下px4 43
  • PX4 Offboard Control with MAVROS--Takeoff(一键起飞)

    警告 xff1a 请先在仿真环境下进行测试 xff0c 能达到预期效果后在进行实际飞行测试 xff0c 以免发生意外 本篇文章只是用作学习交流 xff0c 实际飞行时如出现意外情况作者不予以负责 所需材料 1 PIXhawk或者Pixrac
  • PX4/Pixhawk---uORB深入理解和应用

    The Instructions of uORB PX4 Pixhawk 软件体系结构 uORB 主题发布 主题订阅 1 简介 1 1 PX4 Pixhawk的软件体系结构 PX4 Pixhawk的软件体系结构主要被分为四个层次 xff0c
  • 飞行机器人(七)仿真平台XTDrone + PX4编译

    0 编译PX4固件 参考仿真平台基础配置教程 xff08 中文详细教程 xff09 仿真平台基础配置 语雀 yuque com https www yuque com xtdrone manual cn basic config 按照教程
  • 关于PX4中的高度若干问题

    飞行的高度是如何测量的 xff1f 地面的高度和海平面的高度差别很大 xff0c 飞控又是如何有效判别进行降落的 xff1f 这是我脑子里的疑问 搜索的一圈发现很少有人讨论这方面的问题 xff0c 于是本次我就直接看一下源代码 xff0c
  • Ubuntu20.04+MAVROS+PX4+Gazebo保姆级安装教程

    Ubuntu20 04 43 MAVROS 43 PX4 43 Gazebo 安装PX4步骤安装MAVROS安装QGCPX4仿真 安装PX4步骤 从github上clone源码 span class token function git s
  • PX4无人机 - 键盘控制飞行代码

    PX4无人机 键盘控制飞行代码 仿真效果 实机效果 由于图片限制5M以内 xff0c 只能上传一小段了 xff0c 整段视频请点击链接 Pixhawk 6c 无人机 键盘控制无人机 Offboard模式 核心 xff1a 发布 mavros
  • 基于F4/F7/H7飞控硬件和px4飞控固件的廉价自主无人机系统(1)-飞控

    前言 穿越机F4 F7 H7飞控是一系列采用stm32系列F4xx和F7xx处理器的飞控的统称 xff0c 是目前穿越机爱好者非常喜欢使用的飞控硬件 xff0c 其价格也非常便宜180 xff5e 410 而px4则是一款常见的开源飞控固件
  • PX4代码学习系列博客(5)——在px4中添加自己的模块

    怎么在px4中添加自己的模块 在 px4固件目录结构和代码风格 这一节 xff0c 曾经说过NuttX是一个实时的嵌入式系统 xff0c 上面可以像windows那样运行程序 那既然是应用程序 xff0c 那我们应该也能写一些可以在Nutt
  • PX4代码学习系列博客(6)——offboard模式位置控制代码分析

    分析offboard模式的代码需要用到以下几个模块 local position estimator mavlink mc pos control mc att control mixer 程序数据走向 mavlink 一般的offboar
  • px4源码编译指南

    px4源码编译指南 强烈推荐大家去看官网的英文文档 xff0c 国内的博客杂七杂八 xff0c 官网的中文也很久没有更新 xff0c 这几天自己踩了很多坑 xff0c 写个教程希望能帮助到大家 xff08 本文选用平台是pixhawk1 1
  • px4 avoidance笔记

    最近在用px4官方的avoidance代码跑硬件避障 xff0c 官方介绍了只要生成符合sensor msgs PointCloud2点云信息就能使用 xff0c 因此为了应用长基线双目 xff0c 没有使用realsense的相机 xff
  • PX4模块设计之三:自定义uORB消息

    PX4模块设计之三 xff1a 自定义uORB消息 1 新增自定义uORB消息步骤2 应用ext hello world消息示例3 编译执行结果4 参考资料 基于PX4开源软件框架简明简介和PX4模块设计之二 xff1a uORB消息代理
  • PX4模块设计之十八:Logger模块

    PX4模块设计之十八 xff1a Logger模块 1 Logger模块简介2 模块入口函数2 1 主入口logger main2 2 自定义子命令Logger custom command2 3 日志主题uORB注册 3 重要实现函数3
  • PX4模块设计之二十一:uORB消息管理模块

    PX4模块设计之二十一 xff1a uORB消息管理模块 1 uORB模块构建模式2 uORB消息管理函数2 1 状态查询2 2 资源利用2 3 模块启动2 4 模块停止3 uORB消息接口3 1 消息主题注册3 2 消息主题去注册3 3
  • 关于github px4 gps 驱动的开发的总结

    源码编译上边已经写过文章了 遇到的几个问题 1 解决虚拟机不能共享文件夹的问题 一开始虚拟机的更新 vmware tools 是灰色的 xff0c 不能点 xff0c 然后通过关掉虚拟机 xff0c 然后再开启的时候 xff0c 在没有启动
  • Px4源码框架结构图

    此篇blog的目的是对px4工程有一个整体认识 xff0c 对各个信号的流向有个了解 xff0c 以及控制算法采用的控制框架 PX4自动驾驶仪软件 可分为三大部分 xff1a 实时操作系统 中间件和飞行控制栈 1 NuttX实时操作系统 提
  • px4下载指定版本的固件、git用法

    https hub fastgit org PX4 PX4 Autopilot git describe tag 查看当前版本号 git tag l 查看所有版本 xff0c 也就是打个tag git checkout v1 9 1 跳转到
  • PX4 OffBoard Control

    终于还是走上了这一步 xff0c 对飞控下手 xff0c 可以说是一张白纸了 记录一下学习的过程方便以后的查阅 目录 一 ubuntu18 04配置px4编译环境及mavros环境 二 PX4的OffBoard控制 1 搭建功能包 2 编写
  • PX4之常用函数解读

    PX4Firmware 经常有人将Pixhawk PX4 APM还有ArduPilot弄混 这里首先还是简要说明一下 xff1a Pixhawk是飞控硬件平台 xff0c PX4和ArduPilot都是开源的可以烧写到Pixhawk飞控中的

随机推荐

  • 从零开始学习UCOSII操作系统15--总结篇

    从零开始学习UCOSII操作系统15 总结篇 前言 xff1a 在大学的时候 xff0c 我们班级上面都有很多人觉得学习UCOSII 包括UCOSIII 是没什么厉害的 xff0c 因为很多人都喜欢去学习Linux操作系统 xff0c 但是
  • 手把手教你搭建TFTP服务器

    手把手教你搭建TFTP服务器 前言 xff0c 东西来自于网络 xff0c 但是根据自己的理解写了一下建议 xff0c 记录下来 xff0c 让下次不要在网络上面浪费时间搜索 1 保证自己的虚拟机能够上网 测试方法 xff1a 里面一般都有
  • 从零开始写一个单向不循环链表

    从零开始写一个单向不循环链表 总结 xff1a 郝斌数据结构与算法课程 数据结构概述 xff1a 定义 xff1a 我们如何把现实中大量的而复杂的问题以特定的数据类型和特定的存储结构保存到主存储器 xff08 内存 xff09 中 xff0
  • STM32-CAN通信协议

    STM32 CAN通讯协议 CAN协议简述 CAN Controller Area Network xff08 控制器局域网 xff09 xff0c 由Bosch开发的一种面向汽车的通信协议 这是目前应用最广泛的通信协议 xff0c 更是尤
  • FreeRTOS-任务运行时间统计

    FreeRTOS 任务运行时间统计 引入 上一章节中我们讲述了任务信息获取 xff0c 我们已经能够获取绝大部分任务信息了 xff0c 但是任务还有一个很重要的信息 xff0c 那就是运行时间 如果我们知道了每个任务的运行时间和占比我们就可
  • 【Linux】解决Nvidia Jetson Xavier NX开发套件开机启动时间过长问题

    环境 硬件 xff1a Jetson Xavier NX 套件 系统 xff1a Ubuntu 20 04 解决 0 现象 在使用Nvidia 的Jetson Xavier NX套件 xff0c 开发产品 xff0c 准备发布时 xff0c
  • FreeRTOS-信号量

    FreeRTOS 信号量 信号量其实就是队列的一种应用 xff0c 信号量的各种操作都是在队列的基础上建立起来的 那么既然是在队列的基础上建立的 xff0c 信号量一定具有和队列相同的属性 因此信号量也是为任务和任务 任务和中断之间通信做准
  • FreeRTOS-空闲任务及钩子函数

    FreeRTOS 空闲任务及钩子函数 FreeRTOS中空闲任务是开启任务调度器自动创建的一个任务 xff0c 这样可以保证系统中有任务可以运行 xff0c 这个任务优先级是最低的 xff0c 如果有其他任务处于就绪态 xff0c 那么空闲
  • FreeRTOS-内存管理-完结篇

    FreeRTOS 内存管理 无论是创建任务 队列 信号量还是其他的东西 xff0c 都需要为其分配一定空间 xff0c 前面我们都是运用动态内存申请的方法来申请空间 xff0c 并且我们所使用的的动态内存申请函数都是FreeRTOS自己提供
  • OpenCV环境搭建

    OpenCV环境搭建 VS2017安装 具体安装过程参考下面链接 xff1a https mp weixin qq com s NrrHFAXm57QblOf5CPUVmw 组件可以参考以下选项 xff1a OpenCV安装 如果还没有安装
  • W2-图像增强

    线性变换 imag span class token operator 61 span span class token function imread span span class token punctuation span span
  • 半天光速入门Python(上)

    文章目录 写在前面一 Python环境Python解释器与编辑器WinDows用户Linux用户 二 基础概念 运算符与表达式常量数类型字符串变量与标识符对象逻辑行与物理行缩进运算符注释方法与C语言区别 三 三种程序结构ifforwhile
  • 路径规划算法综述

    路径规划算法综述 路径规划算法综述 文章目录 路径规划算法综述路径规划算法主要问题一 主要问题及现有解决方案1 环境建模问题2 收敛速度和局部最优解 二 路径规划算法分类及简介2 1传统算法2 1 1全局路径规划算法2 1 1 1 A 算法
  • 图论基础介绍

    路径规划系列文章目录 路径规划算法综述 文章目录 路径规划系列文章目录图论基础介绍一 图的基本概念1 1 图的定义1 2 图的分类1 2 1 无向图1 2 2 有向图1 2 3 带权图 二 图的相关术语2 1 邻接 adjacent 2 2
  • 图论之邻接矩阵

    路径规划系列文章目录 路径规划算法综述图论基础介绍 目录 路径规划系列文章目录 一 图的存储方式介绍 二 邻接矩阵介绍 三 邻接矩阵实现 四 总结 一 图的存储方式介绍 图的结构比较复杂 xff0c 是非线性结构 xff0c 任意两点都可能
  • 图论之邻接表

    路径规划系列文章目录 路径规划算法综述图论基础介绍图论之邻接矩阵 目录 路径规划系列文章目录 一 邻接表 二 邻接表实现 2 1 链式前向星实现 2 2 链表实现 三 总结 一 邻接表 由于对于稀疏图来说 xff0c 使用邻接矩阵进行存储显
  • flashcache的实现与分析

    最近 xff0c 由于项目需要 xff0c 在做关于flashcache的一些工作 xff0c 主要涉及模块组织 元数据管理及数据分布 读写流程分析 数据在磁盘和 cache SSD 之间的调度 缺点及可优化方向等一些方面的分析研究 也想
  • 蛋花花分享人工智能概念的诞生与发展

    蛋花花分享人工智能概念的诞生与发展 xff01 如今人工智能非常的火 xff0c 在各行各业都有突出的变现 xff0c 让人期待它未来的发展 蛋花花认为了解人工智能向何处去 xff0c 首先要知道人工智能从何处来 1956年夏 xff0c
  • STM32标准库、HAL库特点与应用

    新手在入门STM32的时候 xff0c 一般大多数都会选用标准库和HAL库 xff0c 而极少部分人会通过直接配置寄存器进行开发 对于刚入门的朋友可能没法直观了解这些不同开发发方式彼此之间的区别 xff0c 本文试图以一种非常直白的方式 x
  • 下载并构建PX4

    根据官方的文档 xff0c PX4下载和构建的方式有两种 xff1a Linux系列的Console模式 xff08 当然也支持Windows下的MINGW32 xff09 和Windows模式 在Windows平台下 xff0c 我们习惯