参考1: Ubuntu操作系统下Pixhawk原生固件PX4的编译方法
在Ubuntu下的环境搭建官方也有指导文档,
英文链接是 http://dev.px4.io/v1.9.0/en/setup/dev_env_linux.html
中文链接 http://dev.px4.io/v1.9.0/zh/setup/dev_env_linux.html
官方源下载慢可以使用国内源,我用的是清华源参考链接
项目流产,板子被小伙伴拿去了😂,突然发现这里有个草稿记录了过程和一些资料,分享出来吧。
安装依赖库
安装通用库
# 常用工具qtcreator git cmake等
sudo apt-get update
sudo apt-get install python-argparse git-core wget zip \
python-empy qtcreator cmake build-essential genromfs -y
# 仿真工具
sudo apt-get update
sudo apt-get install openjdk-8-jre
sudo apt-get install ant protobuf-compiler libeigen3-dev libopencv-dev openjdk-8-jdk openjdk-8-jre clang-3.5 lldb-3.5 -y
使用清华源未见安装失败,之前用中科大的源有些安装不上。
- 卸载模式管理器
Ubuntu配备了一系列代理管理,这会严重干扰任何机器人相关的串口(或usb串口),卸载掉它也不会有什么影响。
sudo apt-get remove modemmanager
更新依赖包,安装通用依赖
sudo apt-get update -y
sudo apt-get install git zip qtcreator cmake \
build-essential genromfs ninja-build exiftool -y
# Required python packages
sudo apt-get install python-argparse \
python-empy python-toml python-numpy python-yaml \
python-dev python-pip -y
sudo -H pip install --upgrade pip
sudo -H pip install pandas jinja2 pyserial cerberus
可选择安装pyulog。这是一个有用的python包,其中包含解析ULog文件并显示它们的脚本。
# optional python tools
sudo -H pip install pyulog
下载代码
mkdir -p ~/src
cd ~/src
git clone https://github.com/PX4/Firmware.git
这里使用github的源代码太慢了,所以我使用码云的链接
# 替换上边的下载
git clone https://gitee.com/designer/PX4Firmware.git
初始化
先进入Firmware文件夹,进而进行初始化、更新子模块操作,耐心的等待……
cd Firmware
git submodule update --init --recursive
#下载很慢是从github官方下载的,这一步半个小时52%,后边编译必须要这个组件
下边说到的这个库很难更新,所以我在gitee上同步了一个
cd Firmware/Tools
git clone https://gitee.com/lilinxin75/jMAVSim.git
cd ..
cd /platforms/nuttx/NuttX/apps //若无apps文件夹,请使用mkdir apps创建
git clone https://gitee.com/lilinxin75/NuttX-apps.git
之后再重复上上一条git submodule update --init --recursive
这样就可以更新附件模块成功。
Qt Creator在linux下编译
Qt Creator是官方唯一支持的IDE,在Ubuntu上针对PX4固件使用,便于看代码的同时也可以进行编译烧录。
Qt creator offers clickable symbols, auto-completion of the complete codebase and building and flashing firmware.
Qt creator提供了方便的函数、变量链接、自动补齐代码、构建和刷新固件。
在打开Qt之前,应该创建project文件:
cd ~/src/Firmware
mkdir ../Firmware-build
cd ../Firmware-build
cmake ../Firmware -G "CodeBlocks - Unix Makefiles"
#可以发现Firmware-build目录生成了一些文件
提个醒: 按照官网上面最后一行的命令,当前使用Qt编译得到的将是build px4 ,因为默认的编译指令是make posix_sitl_default,这不是大家所期待的结果。
解决方案:对于,Pixhawk硬件,将最后一行改成
cmake ../Firmware -G "CodeBlocks - Unix Makefiles" -DCONFIG=nuttx_px4fmu-v2_default
其他例如使用FMUv4的用户请根据需求进行替换。