Jetson Orin NX 开发指南(9): Pixhawk 6X 飞控固件的烧写与 QGroundControl 参数配置
一、前言
由于 Jetson Orin NX 常被用作自主无人机机载电脑,其往往需要与烧写了 PX4 固件的飞控进行通信,飞控的烧写与配置往往会遇到很多问题,因此本文将介绍时下最款的 Pixhawk 系列飞控 Pixhawk 6X,做一个固件烧写和参数配置的指南,主要参考
Holybro Pixhawk 6X | PX4 User Guide (main)
Building PX4 Software | PX4 User Guide (main)
GitHub - PX4/PX4-Autopilot: PX4 Autopilot Software
Kakute H7 刷写 px4 固件-CSDN博客
飞控(Pixhawk 4 Mini)与机载电脑(Jetson Xavier NX )实现串口通信_想要个小姑娘的博客-CSDN博客
需要注意的是,Pixhawk 6X 分为 飞控 和 基板(Baseboard)两个部分,而基板又有 Standard 和 Mini 两种类型,参见
Pixhawk Baseboard Ports - Holybro Docs
Pixhawk Mini-Base Ports - Holybro Docs
标准基板的接线如下图所示(Mini 基板的接线大同小异)
接下来我们基于 Mini 基板 介绍 Pixhawk 6X 的固件烧写与参数配置。
二、Pixhawk 6X 固件烧写
Pixhawk 系列固件的获取方式有两种,一种是从 PX4 的 GitHub 网站上直接下载编译好的固件,另一种是下载 PX4-Autopilot 源码,自己编译源码生成固件,这里将分别介绍两种方法,并比较其优劣。
值得注意的是 Pixhawk 6X 对应于 px4_fmu-v6x_default 固件,下载其他固件到 Pixhawk 6X 是无效的!
2.1 直接下载固件
如果不需要对固件作任何改动,推荐使用该方法!
首先进入不同版本固件的下载地址
Releases · PX4/PX4-Autopilot · GitHub
找到 v1.13.3 稳定发行版
然后点击 Assets 下的 Show all 84 assets,找到 px4_fmu-v6x_default.px4 固件并下载
这样我们就得到了 Pixhawk 6X 的原生 px4_fmu-v6x_default 固件!
2.2 源码编译成固件
如果需要修改固件,必须使用该方法!
首先我们需要前往 PX4 的 GitHub 网站上下载相应版本的源码
GitHub - PX4/PX4-Autopilot: PX4 Autopilot Software
这里我们选择了目前最新的稳定版本 1.13.3,我们将其下载在 ~/Documents/ 目录下,终端输入
cd ~/Documents/
git clone -b v1.13.3 https://github.com/PX4/PX4-Autopilot.git
下载完成后进入 PX4-Autopilot 文件夹,并编译生成 px4_fmu-v6x_default 固,终端输入
cd PX4-Autopilot
make px4_fmu-v6x_default
一般来是会报错
CMake Error at cmake/kconfig.cmake:6 (message):kconfiglib is not installed or not in PATHplease install using "pip3 install kconfiglib"
只需根据提示安装相应的功能包
pip3 install kconfiglib
同理如果遇到别的模块未安装,按照上面的操作进行即可,常见的缺少的包的安装命令如下
sudo -H python3 -m pip install kconfiglib
sudo -H python3 -m pip install jinja2
sudo -H python3 -m pip install jsonschema
sudo -H python3 -m pip install empy
sudo -H python3 -m pip install pyros-genmsg
sudo -H python3 -m pip install packaging
sudo -H python3 -m pip install toml
sudo -H python3 -m pip install numpy
sudo -H python3 -m pip install future
如果上面的命令安装后还是报错,可以用下面的命令安装:
sudo pip3 install kconfiglib
sudo pip3 install --user empy
sudo pip3 install --user jsonschema
sudo pip3 install --user jinja2
sudo pip3 install --user pyros-genmsg
sudo pip3 install --user packaging
sudo pip3 install --user toml
sudo pip3 install --user numpy
如果报错
sudo: pip3: command not found
则先安装 pyhton3
sudo apt-get install python3-pip -y
此外还有报错
CMake Error at CMakeLists.txt:235 (project):The CMAKE_CXX_COMPILER:arm-none-eabi-g++is not a full path and was not found in the PATH.CMake Error at CMakeLists.txt:235 (project):The CMAKE_ASM_COMPILER:arm-none-eabi-gccis not a full path and was not found in the PATH.
这时需要安装交叉编译功能包
sudo apt-get install gcc-arm-none-eabi -y