PX4困扰好久,总是在编译出问题,最后不了了之。
效果如下:

在这里插入图片描述先给权限,然后注销

sudo usermod -a -G dialout $USER

PX4固件编译

首先第一步,你要明白,PX4固件一直在更新,我在Github直接git的版本的是1.11,而当前编译一般停留在1.8、1.9版本,所以,固件源码下载一定要指定版本。
我这里下载的是1.8版本。

git clone -b v1.8.2 https://github.com/PX4/Firmware.git

完成后,初始化更新依赖库

cd Firmware/
git submodule update --init --recursive

查看当前PX4固件版本

git describe --always --tags

在这里插入图片描述
开始编译

make px4fmu-v2_default

报错如下:

ccache: error: Failed to create file /home/myz/.ccache/f/5/a6b6c56e4e3aeb4a16157fdf5088ae-205662.o.tmp.stdout.myz-Inspiron-7559.4025.2A29qU: Permission denied
src/modules/px4iofirmware/CMakeFiles/px4iofirmware.dir/build.make:134: recipe for target 'src/modules/px4iofirmware/CMakeFiles/px4iofirmware.dir/mixer.cpp.obj' failed
make[7]: *** [src/modules/px4iofirmware/CMakeFiles/px4iofirmware.dir/mixer.cpp.obj] Error 1

没有权限,应该是最开始给管理权限没成功。
我这里给的sudo。

sudo make px4fmu-v2_default

中间会提示缺少几个库,装好重新编译即可

sudo apt-get install python-jinja2
sudo pip install numpy toml

在100%的时候提示Flash溢出

[100%] Linking CXX executable ../../nuttx_px4fmu-v2_default.elf
/opt/gcc-arm-none-eabi-6-2017-q2-update/bin/../lib/gcc/arm-none-eabi/6.3.1/../../../../arm-none-eabi/bin/ld: ../../nuttx_px4fmu-v2_default.elf section `.data' will not fit in region `flash'
/opt/gcc-arm-none-eabi-6-2017-q2-update/bin/../lib/gcc/arm-none-eabi/6.3.1/../../../../arm-none-eabi/bin/ld: region `flash' overflowed by 604 bytes
collect2: error: ld returned 1 exit status
platforms/nuttx/CMakeFiles/nuttx_px4fmu-v2_default.elf.dir/build.make:216: recipe for target 'nuttx_px4fmu-v2_default.elf' failed
make[3]: *** [nuttx_px4fmu-v2_default.elf] Error 1

解决方法
如下路径,修改flash的长度由1008改为2032K
在Firemare

编译成功:
在这里插入图片描述

运行仿真

Jmavsim
这个很简单,不用安装额外的东西,直接编译运行

sudo make posix_sitl_default jmavsim

起飞命令

commander takeoff

在这里插入图片描述

Gazebo仿真
Gazebo仿真要安装gazebo,我这里装得是Gazebo9
安装过程很简单

sudo sh -c 'echo "deb http://packages.osrfoundation.org/gazebo/ubuntu-stable `lsb_release -cs` main" > /etc/apt/sources.list.d/gazebo-stable.list'
wget http://packages.osrfoundation.org/gazebo.key -O - | sudo apt-key add -
sudo apt update
sudo apt install gazebo9 libgazebo9-dev

打开一个空世界

gazebo --verbose

运行px4的gazebo仿真

sudo make posix_sitl_default gazebo

起飞命令

commander takeoff

在这里插入图片描述