在 Ubuntu Linux 18.04 和 20.04 上设置 PX4 开发环境,可参考此教程或官方教程Ubuntu Development Environment | PX4 User GuidePX4 is the Professional Autopilot. Developed by world-class developers from industry and academia, and supported by an active world wide community, it powers all kinds of vehicles from racing and cargo drones through to ground vehicles and submersibles.
https://docs.px4.io/master/en/dev_setup/dev_env_linux_ubuntu.html
安装工具链:
如果没将软件源更改为国内软件源,需先将软件源改为国内软件源(建议改为阿里云)
1.下载 PX4 源代码:
Ctrl+Alt+T打开终端输入下面代码
git clone https://github.com/PX4/PX4-Autopilot.git --recursive
往往后面构建代码时出现问题大部分都是这一步因为外网的原因所导致的各子项目文件下载不全所导致的!
解决方案一:解决网络问题,使用全球互联网
因为github是外国的网站,我们想在上面获取各种子项目嵌套的完整资源,我们需要借助一下全球连通云去进行上网,获取PX4的相关资源。
可以给大家推荐一个我用了挺久,而且很便宜的全球互联工具:
https://m.tb.cn/h.gW1AdAG?tk=tmvMWEcwE7i HU0854
使用全球连通云基本就可以一次性顺利下载PX4的相关资源了。
解决方案二:下载本人已经从外网下载好的PX4源码
需要下载完整版源码(各子模块代码齐全)可在我主页上传的资源下载旧版本的PX4-Autopilot.zip(网址:https://download.youkuaiyun.com/download/Iamsonice/24192244)因为最大只能上传1G,需要较新版本v1.12.3(v1.13版本后控制分配代码有重大改变)的可以在百度网盘下载。
链接:https://pan.baidu.com/s/173Tl6VJaljo_IkeO4w0K_A?pwd=thwr
提取码:thwr
下载后解压到主目录下。
如果想下载最新版本或其他版本建议使用解决方案一。
2.运行ubuntu.sh以安装所有工具链:
在主目录打开终端。
终端输入(终端路径为主目录下)
bash ./PX4-Autopilot/Tools/setup/ubuntu.sh
3.完成后重启
环境配置验证
在完成上述环境的搭建之后,就可以开始仿真和固件的编译了
先进行编译环境的测试,打开终端输入
cd PX4-Autopilot
make px4_fmu-v3_default
错误1:Command 'make' not found
按照指示安装输入
sudo apt install make
错误2:Configuring incomplete, errors occurred!

原因还是因为编译环境还未安装齐全再次输入(可多次运行以免安装不齐全)
cd ..
bash ./PX4-Autopilot/Tools/setup/ubuntu.sh
错误3:You may need to install it using: pip3 install --user empy
原因还是因为编译环境还未安装齐全Python3,类似的错误(pip3 install --user numpy
、pip3 install --user toml、pip3 install --user packaging...等)按照提示终端输入
pip3 install --user empy
既可(如出现错误多是网络原因多尝试几次即可)
编译成功
进行仿真环境的测试(注意:如果此处使用的是虚拟机的话需要注意扩大分配的内存最小需分配4G)
终端输入
make px4_sitl jmavsim
Ubuntu18.04一般不会出现错误如Ubuntu20.04出现错误可参考我的这篇博客 Ubuntu20.04配置PX4环境启动或编译jmavsim 出现的错误及解决办法_Iamsonice的博客-优快云博客https://blog.youkuaiyun.com/Iamsonice/article/details/120372120
成功编译和启动
终端输入
make px4_sitl gazebo
注意:如果此处使用的是虚拟机分配了4G内存以下将出现下面的错误(c++: fatal error: Killed signal terminated program cc1plus)因为内存过小直接杀死cc1plus程序
成功编译和启动
码字不易,如果帮到你了点个赞表示鼓励哦