整个PX4编译过程都是按照官方的PX4官方用户指南->development->getting started里面的内容进行编译。
首先,我是在LINUX系统里有*的情况下进行安装, 如果没有可以找一下其他的编译过程或者自己搭一个*。
具体编译过程如下:
1.下载PX4源代码:
git clone https://github.com/PX4/PX4-Autopilot.git --recursive
下载完成的代码大概有570M左右,当然如果后面更新就另说了。
2.运行ubuntu.sh
bash ./PX4-Autopilot/Tools/setup/ubuntu.sh
在成功进行这一步之后,就可以用一下jmavsim和gazebo的仿真环境了。执行下面命令进行测试:
make px4_sitl jmavsim
然后进行commander takeoff和commander land。
3.进行cmake以及build
按照PX4用户指南->development->getting started->Toolchain installation->Visual Studio Code IDE中讲的内容进行cmake和build。此处是我想说的重点,就是在编译过程的遇到的一些问题:
(1)在cmake的时候会出现
CMake Error at CMakeLists.txt:202(project): The CMAKE_CXX_COMPILER:arm-none-eabi-g++
类似于这样的三个错误;
我的解决方法是安装了gcc-arm-none-eabi:sudo apt install gcc-arm-none-eabi
,但是后面我觉得最好还是重新运行一下ubuntu.sh文件,即进行bash ./PX4-Autopilot/Tools/setup/ubuntu.sh
,无论进行说明方案,最好将vscode关闭重新打开,实在不行就sudo make clean
重新进行cmake。
(2)解决上面问题之后,我就可以成功cmake了,下一步就是build,仍旧按照官方用户手册的方法进行,我遇到下面问题:
error:'__ULong'does not name a type
产生这个问题主要原因应该是arm-none-eabi-gcc版本的问题,arm-none-eabi-gcc版本应该是ubuntu.sh文件里面的版本,所以重新进行bash ./PX4-Autopilot/Tools/setup/ubuntu.sh
,之所以要多次进行这个指令,就是因为网速的原因,很有可能节点不稳定导致你下载某个软件时失败,所以下载的时候要经常看看有没有失败的内容,如果有最好重新在进行指令重新进行下载。
但是你可能仍旧无法编译成功,此处使用sudo make clean
指令,然后重新进入vscode中就可以build成功。
写在最后:搭建PX4的环境建议花点时间搭建一个*,也许就可以事半功倍,搭*的方法就需要你努力寻找了,一般这些方法就是在外网的,欲要翻必先翻。