PX4安装与编译

2023-05-16

第一步:下载源码

下载方式一:
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)

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

PX4安装与编译 的相关文章

随机推荐

  • Linux系统常用快捷键及VNC基本使用命令

    Linux系统常用快捷键及VNC基本使用命令 文章目录 Linux系统常用快捷键及VNC基本使用命令Linux系统的特点Linux树型目录结构Linux系统常用命令VNC常用命令 Linux系统的特点 多任务系统 在linux系统中可以同时
  • 【docker】docker学习(3)——Dockerfile的常用语法和编写实战

    大家好 xff0c 我是好学的小师弟 xff0c 今天和大家分享下Dockerfile的常用语法和编写实战 插曲 xff1a 在学习Dockerfile之前 xff0c 我们先讲解下docker save 和docker load 这两个命
  • 1.2 安装 docker 容器并配置镜像加速器

    1 2 1 实验环境准备 实验环境 xff1a CENTOS7 9 64 位 主机名 xff1a hou 主机 ip 10 0 8 120 xff08 这个 ip 大家可以根据自己所在环境去配置 xff0c 配置成静态 IP xff09 4
  • 弯管参数计算及编程实现

    船舶软件建立三维管道模型后 xff0c 需要自动生成管子加工信息 xff0c 这样就提高了设计效率 其中弯管参数主要是下料长度 xff0c 弯角和转角 下料长度是由各管段实长 xff0c 即管子中心线长度 xff0c 减去弯管部分切线长再加
  • 完整版数据库系统概论(第五版)-课后答案-免费网盘自提

    包含全部的课后答案与复习笔记 xff01 大家伙不挂科不被刷 xff0c 一起冲 xff01 虽然这个我也是找的别人的 xff0c 但是真的好用 xff01 百度网盘 https pan baidu com s 1Ux07PWvPb k3l
  • 踩坑笔记:安装Gazebo11

    安装环境 xff1a ubuntu18 04 在我上一篇博客中 xff0c 我们安装了ROS Melodic amp amp Ros2 Dashing 在我想要安装Gazebo11时候出现了错误 一 依赖错误 安装Gazebo11 xff1
  • 在keil5中调试串口遇到的问题

    1 问题 在keil5中调试stm32串口实验时 xff0c 向单片机的串口1发送数据 xff0c 观察串口1的寄存器 xff0c 此时串口1的中断服务函数会遇到无法进入下图if 的情况 xff0c 此时观察串口1寄存器 RXEN 的值 由
  • 树莓派在上电后一直重启进入不了系统桌面

    问题描述 树莓派在上电后一直重启进入不了系统桌面 xff0c 在检查了各种接口没问题后解决办法 原因分析与解决方案 xff1a 用了键盘 鼠标 显示器后5v 1A的插头不行 xff0c 换了ipad用的5V 2A的充电器后就可以开启了 xf
  • 树莓派连接“手机热点“或“WiFi“ 后无法上网,以及连接“手机热点“或“WiFi“时VNC连接失败问题

    问题描述 之前一直在开热点 xff0c 通过电脑端VNC控制树莓派拍摄照片 xff0c 今天突然发现树莓派上不去网 xff0c 所以就试着尝试解决了一下 xff0c 心路历程如下 xff1a 要么就是树莓派连不上网 xff0c 要么就是连上
  • 相机标定和双目相机标定标定原理推导及效果展示

    文章目录 前言一 相机标定1 相机的四个坐标系2 相机的畸变 二 张正友标定法1 求解内参矩阵与外参矩阵的积2 求解内参矩阵3 求解外参矩阵4 标定相机的畸变参数5 双目标定6 极线矫正 xff08 立体校正 xff09 三 视差图与深度图
  • keras:tensor从全连接层输出到卷积层

    一 tensor从卷积层输出到全连接层 用过keras的都知道 xff0c 想从卷积层输出tensor到全连接层 xff0c 只需加一层 xff1a model add Flatten shape就不会出现错误 二 但是如果从全连接层输出t
  • 保研面试复习之数据结构篇

    数据项 数据元素和数据结构的概念 数据项是组成数据元素的 xff0c 有独立含义的 xff0c 不可分割的最小单位 数据元素是数据的基本单位 数据结构是带结构的数据元素的集合 数据结构包括逻辑结构和存储结构两个层次 数据结构的三要素是逻辑结
  • 视觉里程计的重定位问题1——SVO的重定位部分

    SVO的重定位部分代码解析与分析 SVO的重定位功能体现在 xff1a 运动跟踪丢失后通过与上一关键帧匹配以及地图点投影 xff0c 找回当前相机位姿 由于没有后端和回环 xff0c SVO的重定位并不是回环校正后的重定位 代码部分被放在运
  • 组合导航(一):定位技术分类与介绍

    组合导航 xff08 一 xff09 xff1a 导航定位技术分类与介绍 一 定位技术分类1 1 基于相对测量的定位 xff08 航位推算 xff09 1 2 基于绝对测量的定位1 3 组合定位 一 定位技术分类 1 1 基于相对测量的定位
  • git bash可以正常commit,但是 VSCode 里不能正常commit使用的解决方法

    问题描述 同一路径下的源码 xff0c 使用git bash可以正常commit xff0c 但是使用vscode提交commit就会一直卡住 xff0c 转圈圈 参考方案链接 xff1a VS CODE GIT 500 问题处理 pudn
  • 组合导航(四):惯性导航系统

    1 惯性导航系统的物理平台2 惯性测量单元IMU3 惯性传感器的测量值3 1静止状态下的加速度测量3 2静止与运动状态下的角速度测量 4 惯性传感器误差4 1 系统误差 xff08 可通过实验进行校正 xff09 4 2 随机误差4 3 惯
  • 组合导航(七):卡尔曼滤波

    Kalman滤波1 离散卡尔曼滤波2 卡尔曼滤波的流程2 1 预测与时间更新2 2 测量更新与校正 3 卡尔曼滤波 算法步骤4 非线性卡尔曼滤波4 1 线性化kalman滤波4 2 扩展kalman滤波 5 卡尔曼滤波发散控制5 1 KF过
  • 组合导航(八):INS/GPS组合导航

    INS GPS组合导航1 误差反馈1 1 开环INS GPS架构1 2 闭环INS GPS架构 2 组合导航的类型2 1 松耦合 的INS GPS组合导航2 2 紧耦合 的INS GPS组合导航2 3 深度耦合的 INS GPS组合导航 3
  • 组合导航(九):三维简化的INS/GPS组合导航系统

    简化INS与GPS组合系统在三维路面上的导航1 MEMS级IMU的三维定位的性能分析2 解决MEMS级IMU在路面导航中存在的问题3 三维简化的惯性传感器系统3 1 3D RISS概述3 2 xff08 轮式车辆 xff09 采用3D RI
  • PX4安装与编译

    第一步 xff1a 下载源码 下载方式一 xff1a git clone https github com PX4 Firmware git recursive 默认下载版本为master 下载时间比较长 xff0c 包含各种包以及依赖工具