PX4安装与编译
下载方式一:git clone https://github.com/PX4/Firmware.git --recursive默认下载版本为master.下载时间比较长,包含各种包以及依赖工具bash ./Tools/setup/ubuntu.sh运行 ubuntu.sh安装所有依赖项下载方式二:如何要修改下载版本,就需要分步下载git clone https://github.com/PX4/F
第一步:下载源码
下载方式一:
git clone https://github.com/PX4/Firmware.git --recursive
默认下载版本为master.下载时间比较长,包含各种包以及依赖工具
可能会遇到的问题:
Cloning into 'Tools/jMAVSim'...
remote: Enumerating objects: 3204, done.
error: RPC failed; curl 56 GnuTLS recv error (-54): Error in the pull function.
fatal: The remote end hung up unexpectedly
fatal: early EOF
fatal: index-pack failed
fatal: clone of 'https://github.com/PX4/jMAVSim.git' into submodule path 'Tools/jMAVSim' failed
原因是:由于git默认缓存大小不足导致的。
解决方法:使用命令增加缓存大小
it config --global http.postBuffer 2000000000
运行 ubuntu.sh安装所有依赖项
bash ./Tools/setup/ubuntu.sh
可能会遇到的问题:
Installing PX4 Python3 dependencies
Collecting argcomplete (from -r /home/gzh/PX4/Firmware/Tools/setup/requirements.txt (line 1))
Could not find a version that satisfies the requirement argcomplete (from -r /home/gzh/PX4/Firmware/Tools/setup/requirements.txt (line 1)) (from versions: )
No matching distribution found for argcomplete (from -r /home/gzh/PX4/Firmware/Tools/setup/requirements.txt (line 1))
python老是各种出问题!!!
参考这里
打开Firmware/Tools/Setup/ ubuntu.sh 文件
将其中的一短话替换为:
echo "Installing PX4 Python3 dependencies"
sudo python3 -m pip install --upgrade -i https://pypi.tuna.tsinghua.edu.cn/simple pip setuptools wheel
sudo python3 -m pip install -i https://pypi.tuna.tsinghua.edu.cn/simple -r ${DIR}/requirements.txt
再次bash ./Tools/setup/ubuntu.sh,就没这个问题了
下载方式二:
如果要修改下载版本,就需要分步下载
git clone https://github.com/PX4/Firmware.git
git checkout v1.9.2 这一步可以修改版本
git submodule update --init --recursive 下载子模块内容
前两个方法有可能会出现一些版本问题,推荐使用方法三
下载方式三:
1 先搭建环境
ubuntu新建空白文档(名字为ubuntu_sim_nuttx.sh)
https://raw.githubusercontent.com/PX4/Devguide/master/build_scripts/ubuntu_sim_nuttx.sh
将网址内容保存到ubuntu_sim_nuttx.sh
运行脚本
source ubuntu_sim_nuttx.sh
环境很顺利就搭建好了,完成后 重 新 启 动 计算机
2 再下载源码
进入要存放源码的文件夹
git clone https://github.com/PX4/Firmware.git
cd Firmware
git submodule update --init --recursive
直接编译:make px4_fmu-v4_default
报错:需要安装 pip3 install --user packaging
安装 pip3 install packaging 后,通过
再次编译
又报错:error: this statement may fall through [ -Werror = impllicit-fallrough=] xxxxxxxxxxxxxxxx一串类似报错
字面意思是说有一些 warning被当作fault 报错了,但是makefile中压根找不到-Werror文件
在这个连接中提到了这种错误是由于ccache版本问题
更新ccache之后重新编译make px4_fmu-v4_default 就可以通过了
【如果要使用 x7pro 飞控板的,需要先编译通过make cuav_x7pro_default 可以编译通过】
第二步:安装所有的依赖工具
bash ./Tools/setup/ubuntu.sh 运行 ubuntu.sh
安装完成需要重启一下
安装遇到的问题:
使用双系统ubuntu16.04版本,自带默认python版本2.7,其中很多python文件是没有安装的。而安装PX4时自动安装python3.5以及其包含的各种依赖工具包,此时若没有对ubuntu默认python版本进行修改,即便顺利安装了工具包由于找不到路径还是会报错。
查看ubuntu中python版本
$: python --version
搜索系统是否安装了python3.5
$: whereis python3.5
需要删除原有的python连接文件
$: rm /pyhton安装的路径/pyhton
建立指向python3.5的连接文件
$: ln -s /pyhton安装的路径/pyhton3.5 /pyhton安装的路径/pyhton
查看pyhton版本
$: python --version
已经变成3.5版本了
第三步:编译仿真器
编译仿真器gazebo
make px4_sitl gazebo
编译遇到问题
1 opencv版本总出问题
2 python pip报错
电脑安装版本问题,opencv需要在CMakeLists.txt中set一下.
#添加OpenCV的目录
set(OpenCV_DIR /home/test/src/opencv-x.x.x)
3 ninja:error:'/home/gzh/PX4/Firmware/Tools/sitl_gazebo/PROTOBUF_PROTOC_EXECUTABLENOTFOUND', needed by 'Imu.pb.cc', missing and no known rule to make it
用:sudo apt-get install protobuf-compiler
好像就可以了
第四步:build
各种版本对应不同的编译指令
cd Firmware
make px4_fmu-v2_default
若有硬件则需要上传到硬件
make px4_fmu-v4_default upload
上传完成会显示:
Erase :[==================== ]100.0%
Program: [==================== ] 100.0%
Verify : [====================] 100.0%
Rebooting.
[100%] Built target upload
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)