PX4编译环境

Ps本文转自阿木社区,主要是。。他们的编辑MD功底有点差,代码复制多了,这里主要是做个代码的整理。
转载自https://bbs.amovlab.com/forum.php?mod=viewthread&tid=1130&extra=page%3D1
Ardupilot固件稳定归稳定,但在开发方面,尤其是在仿真方面做的不如PX4固件,网上资料少,很难借鉴,凭自己摸着石头过河,举步维艰。为方便后续ROS相关开发实现,今天教大家如何搭建PX4的开发环境,最近更的文章主要是帮大家把整体环境搭建完成,这样就不会有环境搭建的痛苦了。
搭建过程还是建议参考官网:切记切记
首先第一步,给管理权限,然后注销重登:

sudo usermod -a -G dialout $USER

第二步,你要明白,PX4固件一直在更新,在Github直接git的版本的是1.11,而当前大部分教程编译是停留在1.8、1.9版本,所以,固件源码下载一定要指定版本:

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 deniedsrc/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 make px4fmu-v2_default

然后就可以进入正常编译,时间是比较慢长的,你可以看点该看的东西,中间会报几个错误,缺少相关依赖库,缺啥装啥,需要啥就pip啥。

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

如果出现如下错误(找不到具体错误在哪):

Scanning dependencies of target nuttx_export_px4fmu-v2
[  3%] Building NuttX for px4fmu-v2
[  3%] Built target libuavcan_dsdlc
[  4%] Generating airframes.xml
make[4]: warning: jobserver unavailable: using -j1.  Add `+' to parent make rule.
make[4]: warning: jobserver unavailable: using -j1.  Add `+' to parent make rule.
make[4]: warning: -jN forced in submake: disabling jobserver mode.
make[4]: warning: -jN forced in submake: disabling jobserver mode.
string/lib_memchr.c: In function 'memchr':
string/lib_memchr.c:66:6: error: nonnull argument 's' compared to NULL [-Werror=nonnull-compare]
   if (s)
      ^
cc1: all warnings being treated as errors
make[5]: *** [bin/lib_memchr.o] Error 1
make[4]: *** [libc/libc.a] Error 2
make[4]: *** Waiting for unfinished jobs....
[  4%] Built target xml_gen
string/lib_memchr.c: In function 'memchr':
string/lib_memchr.c:66:6: error: nonnull argument 's' compared to NULL [-Werror=nonnull-compare]
   if (s)
      ^
cc1: all warnings being treated as errors
make[5]: *** [bin/lib_memchr.o] Error 1
make[4]: *** [libc/libc.a] Error 2
make[4]: *** Waiting for unfinished jobs....
make[3]: *** [px4io-v2.export] Error 2
make[2]: *** [src/modules/px4iofirmware/CMakeFiles/nuttx_export_px4io-v2.dir/all] Error 2
make[2]: *** Waiting for unfinished jobs....
make[3]: *** [px4fmu-v2.export] Error 2
make[2]: *** [CMakeFiles/nuttx_export_px4fmu-v2.dir/all] Error 2
make[1]: *** [all] Error 2
make: *** [px4fmu-v2_default] Error 2

请参考链接https://discuss.px4.io/t/error-while-building-px4-firmware-for-px4fmu-v2/2058
这个问题是你的gcc编译器版本不对,请下载对应版本的编译器
编译器下载可以参考https://blog.csdn.net/qq_36566270/article/details/106614991

当你出现如下界面100%,那么恭喜你,编译完成,就可以进入你的自由发挥的阶段了。
运行PX4自带的仿真界面:

sudo make posix_sitl_default jmavsim

可以看到效果还是比较好的

如果你完成了GAZEBO的安装,你就可以进行PX4的Gazebo仿真了,如何在Gazebo中,玩你的飞机

下面来介绍一下如何安装Gazebo。

一、Gazebo安装
添加源并更新

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

安装gezabo9和相关依赖

sudo apt install gazebo9 libgazebo9-dev

完成后即可运行打开一个空世界

gazebo --verbose
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值