Ubuntu系统下搭建PX4环境

2023-05-16

Ubuntu系统下搭建PX4环境

首先我是从一个小白开始的,完全不懂linux系统,完全不懂PX4,PX4固件是Pixhawk飞行控制器的官方固件,Pixhawk官网也给出了Linux/windows下搭建开发环境的方法。由于种种原因,搭建开发环境时总会遇到各种各样的bug。但是还是参照CSDN上一位大神方法搭建完成了,过程中还是会出现一些上面也没有的bug,也学会怎么去看这里面的报错,最后一路下来解决了所有错误,编译成功。特此分享:
1、权限设置,如果不做这一步会产生很多上述的权限问题,如果用sudo去修复,那就……可以重装系统了。
把用户添加到用户组 “dialout”
sudo usermod -a -G dialout $USER
2、安装必备软件 CMAKE、QT、Python
添加源
sudo add-apt-repository ppa:george-edison55/cmake-3.x -y
更新软件
sudo apt-get update
安装python、git、qt
sudo apt-get install python-argparse git-core wget zip
python-empy qtcreator cmake build-essential genromfs -y
添加源
sudo add-apt-repository ppa:openjdk-r/ppa
更新
sudo apt-get update
安装仿真软件和需要的库文件,注意体验下面两句的区别(一句代码后有 -y ,一句没有)
sudo apt-get install openjdk-8-jre
sudo apt-get install ant protobuf-compiler libeigen3-dev libopencv- dev openjdk-8-jdk openjdk-8-jre clang-3.5 lldb-3.5 -y
这个过程中除了最后一句话会出现问题,其他都能够非常正常的执行完。最后一段话报错我无视掉了,后面编译过程中去解决这个问题,一路下来也没有出现什么问题,因此就没有去管这句话。

3、卸载模式管理器,Ubuntu配备了一系列代理管理,这会严重干扰相关的串口(或usb串口),最明显的表现就是硬件连接到PC机后,无法读出硬件,无法烧录上传固件。
sudo apt-get remove modemmanager

4、更新相关库文件
添加源 添加第一个源时可能会出现Failed,不过没关系,继续添加第二个
gcc-arm-none-eabi源添加Failed的问题后面会解决
sudo add-apt-repository ppa:terry.guo/gcc-arm-embedded -y
sudo add-apt-repository ppa:team-gcc-arm-embedded/ppa
检查更新,由于上面那个Failed,检查更新时,部分链接也可能访问不到
sudo apt-get update
不管那么多了,先把能安装的软件/库文件安装上,后面编译时缺什么再补装什么
sudo apt-get install python-serial openocd flex bison libncurses5-dev autoconf texinfo build-essential libftdi-dev libtool zlib1g-dev python-empy gcc-arm-none-eabi -y
这个阶段也会出现一些问题,但是也不会太影响结果,只管输入就行了,期间有任何问题可以忽略不管。
5、安装正确版本的gcc-arm-none-eabi
还记的上面出现的那个Failed吗?实际我们安装的gcc-arm-none-eabi版本不支持源码,所以需要安装正确的版本。输入一下代码可以查看gcc-arm-none-eabi版本信息。
arm-none-eabi-gcc --version
我们需要的是GCC6.3.1,如果看到如下的信息那就代表gcc-arm-none-eabi版本安装正确,直接跳到代码编译步骤即可,否则就按下述步骤重新安装gcc-arm-none-eabi。
GCC版本信息

我是直接成功了,所以没有安装GCC,如需要安装请自行百度方法。

6、源码下载
首先需要安装一个库文件
sudo apt-get install lsb-core
下载源码
创建src文件夹
mkdir -p ~/src
进入文件夹
cd ~/src
克隆源码
git clone git clone -b v1.8.2 https://github.com/PX4/Firmware.git
这个过程中,如果不翻墙的话,至少需要2到3个小时,一般下载速度只有10K左右,因此最好找一个好一点的梯子。
弄到梯子成功之后,就可以开始下载,下载速度取决于个人网速,如果网速不行,可以考虑开手机热点,一般手机热点大概30分钟左右完成。
如果还是很慢,可以Ctrl+X然后Ctrl+Z强制终止。之后进入src文件夹文件夹,把文件夹中已clone的代码删除,然后回到终端,进入src文件夹重新clone。
之后需要进入Firmware文件夹,进行初始化、更新子模块操作,耐心的等待……
cd Firmware
git submodule update --init --recursive
输入完成之后耐心等待,这个过错没有进度显示,我每次都是以为崩溃了,半天没有动静,就这样删除之后下载然后再删除,一来下载了7,8次,安装上10次,最后耐心下来等,反正过了一个晚上最后成功了,所以这个过程也许很慢,一定要耐心!!!
7、源码编译
make是操作字符 px4fmu是固件名称 -v2是版本号 _default是默认配置
实际make之后是一个文件名称,需要编译的模块都在其中
可以输入make p 然后按Tab键,会跳出一连串p开头的文件
make px4fmu-v2_default
不同版本这句话有点不一样,请一定注意!!!!!
编译应该会出现这个问题:
在这里插入图片描述

自己需要自己去定位。例如,这个错误实际是少安装了python的一个module造成的。
sudo apt-get install python-jinja2
再次编译,还是会出现问题:
在这里插入图片描述

从最开始进行查找,会发现实际出现Error的原因是“Required python packages not installed”(查找错误原因的能力必须要掌握)。然后可以尝试一下系统给出的建议的解决方案。
sudo apt-get install python-pip
安装完成之后再make px4fmu-v2_default一次,接下来还是会出现问题,然后sudo pip install numpy toml,这样就会解决本问题。然后编译快一分钟之后,问题又出现一个:
在这里插入图片描述

问题是内存溢出,不能照着网络上的把1008K改为2032K,我也没有找到十分好的解决办法,选择注释掉没有用的三个模块,然后就成功了。之前一直按照网上方法,可以编译通过,但是下载一直存在问题,报错图片如下:
在这里插入图片描述

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

Ubuntu系统下搭建PX4环境 的相关文章

  • 【opencv3】鼠标框选矩形并显示当前像素点坐标和矩形中心点坐标C++

    实现目标 xff08 1 xff09 用鼠标在图中框选矩形目标 xff0c 然后保存框选的图片 xff1b xff08 2 xff09 鼠标拖动过程中要求显示框的线条以及鼠标当前像素点信息 xff08 坐标和RGB值 xff09 xff1b
  • TensorFlow入门教程(十三):利用inception-v3训练自己的模型

    一 训练自己模型的方法 inception v3 最初是在ImageNet比赛训练的 xff0c 其分类有1000多种 xff0c 但对于自己的特定目标 xff0c 分类效果并不好 xff0c 需要自己再对自己的数据进行训练 xff0c 有
  • 本地代码修改后如何更新Gitee仓库

    1 git status 查看当前有变更的代码文件 2 git add 你本地所有修改了的文件添加到暂存区 3 git commit m xxxxx 引号里面是你的介绍 xff0c 就是你的这次的提交是什么内容 xff0c 便于你以后查看
  • 大小端模式

    32位数字0x12345678在内存中的表示形式为 xff1a 1 大端模式 xff1a Big Endian就是高位字节排放在内存的低地址端 xff0c 低位字节排放在内存的高地址端 网络上的数据都是以大端数据模式进行交互的 低地址 gt
  • torch 和numpy的相互转化

    span class token keyword import span math span class token keyword import span torch span class token keyword import spa
  • 我的第二篇博客(vue中的瀑布流插件 vue-waterfall-easy)

    vue waterfall easy是一款很好的瀑布流插件 以下是代码 转载自GitHub的官方文档 https github com lfyfly vue waterfall easy 以下是代码 span class token ope
  • table_exists_action=append和table_exists_action=truncate

    table exists action 61 append和table exists action 61 truncate 一 环境准备 1 1 192 168 1 22上创建single01 student表 SQL gt select
  • 记录oracle的几个参数 db_files,Cursor_sharing ,open_cursor

    db files 定义了oracle数据中数据文件 的个数 xff0c 当数据文件个数超过这个参数设定的值就会报ORA 00059这个错误 这个参数设置的值的大小不会影响效率 xff0c 只是单纯的控制数据文件的个数 详情请看 xff1a
  • 【原】expdp参数CONTENT

    作者 xff1a david zhang 64 sh 转载时请以超链接形式标明文章 链接 xff1a http www cnblogs com david zhang index archive 2012 03 01 2376059 htm
  • 动态性能视图概述

    动态性能视图概述 动态性能视图属于数据字典 xff0c 它们的所有者为SYS xff0c 并且多数动态性能视图只能由特权用户和DBA用户查询 当数据库处于不同状态时 xff0c 可以访问的动态性能视图有所不同 启动例程时 xff0c ORA
  • 安装oracle19c时报错DBT-50000

    转载于 xff1a 重庆思庄每日技术分享 安装oracle19c时报错DBT 50000 知乎 在Windows10上使用dbca配置oracle19 3 0 0时 xff0c 报错DBT 50000 无法检查可用内存 查找官方文档2631
  • oracle 不直接提供的软件包和数据库下载

    oracle 不直接提供的软件包和数据库下载 想要下载11 2 0 1的client xff0c 点击提示的doc id 进入如下文章界面 点击提示的网址 xff1a 进入如下界面 xff1a 点击登陆 xff0c 进入如下界面 xff1a
  • ora-245control file backup failed; target is likely on a local file system

    一 rac环境控制文件快照位置存放错误 xff08 以下内容转载自ora 00245报错解决方法 晟数 博客园 xff09 1 发现问题 最近使用备份软件对客户11G RAC数据库进行备份 xff0c 发现备份失败查看日志发现数据库报ORA
  • PDB导出导入

    检查当前目录 set linesize 100 col DIRECTORY NAME for a20 col OWNER for a10 col DIRECTORY PATH for a50 select from dba director
  • 麒麟安装问题

    对于本系统 需要打开 firewall cmd zone 61 public add port 61 8001 tcp permanent firewall cmd zone 61 public add port 61 8011 tcp p
  • 单实例11g升级到19c

    11g的服务器上安装19c的软件 安装完成后 xff0c 不需要关库 xff0c 修改环境变量为19c的 xff0c 执行dbua开始下述升级 11g升级到19c 执行预检查
  • 编译方式安装mysql

    转载于 xff1a 编译编译方式安装mysql编译 环境准备 环境 xff1a 硬件为4C 4G 50G 系统版本为redhat7 9 创建用户和组 创建MySQL用户和组 并且用户不能登陆 系统自带mysql软件 xff0c 安装时会自动
  • mysql 5.7登陆简单密码问题

    lucifer mysql gt update user set authentication string 61 password 39 mysql 39 where user 61 39 root 39 Query OK 1 row a
  • 5.7及以下版本mysql不能插入中文

    转载于 xff1a https blog csdn net qq 59500621 article details 122390644 5 7及以下版本mysql默认数据库使用的字符集是Latin1 我们需要为其修改字符集为 xff1a u
  • 备库failover升级

    1 centos 6 9 single06 gt centos7 9 single06std 11 2 0 4 搭建上面的dg 2 adg上打补丁psu xff1a 31537677 3 centos 7 9 上安装19c软件 xff0c

随机推荐

  • Data Guard高级玩法:通过闪回恢复failover备库

    转载于 xff1a Data Guard高级玩法 xff1a 通过闪回恢复failover备库 ITPUB博客 今天看到有一个网友提了一个问题 xff0c 描述很简短 测试DG时 xff0c 主库不能宕机 xff0c 如何测试failove
  • Oracle性能调查之ASH

    转载于 xff1a Oracle性能调查之ASH xff08 一 xff09 腾讯云开发者社区 腾讯云 在ORACLE性能问题调查时 xff0c 有价值的诊断情报多 xff1a STATSPACK xff0c AWR xff0c ASH x
  • 记录一次网卡问题

    问题 xff1a root 64 rac19c01 ip a 1 lo lt LOOPBACK UP LOWER UP gt mtu 65536 qdisc noqueue state UNKNOWN group default qlen
  • CRS-1705: Found 1 configured voting files but 2 voting files are required

    背景 xff1a vmware虚拟机安装两节点19c rac xff0c 执行node1 root脚本时正常 xff0c 执行node2的root脚本时报错 报错如下 xff1a CRS 2672 Attempting to start 3
  • wwid和uuid的区别

    转载于 xff1a https blog csdn net zwjzqqb article details 80321348 1 wwid 每个SCSI磁盘都有一个WWID xff0c 类似于网卡的MAC地址 xff0c 是独一无二的 可以
  • Sm2记录介绍

    SM2是国家密码管理局于2010年12月17日发布的椭圆曲线公钥密码算法 xff0c SM2采用的就是ECC 256位的一种 1 签名验签 SSWINAPI SGD UINT32 DEVAPI SKF ECCSignData SGD HDL
  • xshell之for循环

    转载于 xff1a shell while read line 与for循环的区别 冥想心灵 博客园 cnblogs com 例子 xff1a while read line 是一次性将文件信息读入并赋值给变量line xff0c whil
  • virtualbox安装虚拟增强功能

    1 分配光驱 xff0c 选择windows的光驱 2 会发现出现了CD驱动器VBoxGuestAdditions 双击进去 xff0c 发现目录如下 xff1a 3 双击执行VBoxGuestAdditions exe
  • #蓝桥杯嵌入式组#历年客观题解析

    文章目录 第八届初赛第八届决赛第九届初赛第九届决赛第十届初赛第十届决赛 第八届初赛 C D 线与功能 xff1a 两个或多个输出信号连接在一起可以实现逻辑 与 的功能 OC门 xff0c 即 集电极开路 xff0c 实际上只是一个NPN型三
  • Git在vscode中简单使用

    Git在vscode中简单使用 一 Git安装与配置 1 Git安装 xff08 官网地址 xff1a https git scm com xff09 2 Git配置 xff08 1 xff09 安装好后 xff0c 桌面右键 Git Ba
  • 小程序云开发入门

    文章目录 前言一 开通云开发二 使用云开发1 直接创建云开发项目2 修改配置文件引入云开发 三 云数据库1 介绍2 使用 四 云函数1 介绍2 使用 五 云存储1 介绍2 使用 总结 前言 一个小程序在开发时 xff0c 除了考虑界面功能逻
  • 小程序Mpx框架入门

    文章目录 简介一 Mpx的特点1 使用原因2 设计思路3 与其他框架的区别 二 安装使用1 相关命令2 项目创建演示 三 Mpx在vscode中的相关插件四 学习Mpx框架开发1 Mpx具有的功能特性2 学习的资源 总结 简介 Mpx是一款
  • 小程序云函数调用云函数

    文章目录 前言一 案例说明二 功能实现1 云函数1 xff1a getdata2 云函数2 xff1a deldata 总结 前言 小程序云开发提供了云函数 xff0c 云函数是运行在服务端的代码 xff0c 执行速度快 通常一些复杂的功能
  • Vue项目打包后不能正常显示页面

    项目场景 xff1a 通过 Vue CLI 创建的 vue 项目 xff0c 编写完项目后 xff0c 通过 npm run bulid 对项目进行打包 xff0c 再把打包得到的内容 xff08 dist文件夹 xff09 交给后端部署到
  • element-ui二次封装实现全局回到顶部组件

    文章目录 前言一 实现方法1 创建 BackTop 组件2 全局注册组件3 使用组件 二 组件效果总结 前言 在开发 vue 项目时 xff0c 我们都可能用到 element ui xff0c 但是有时 element ui 提供的组件太
  • element-ui二次封装实现普通登录组件

    文章目录 前言一 实现方法1 创建 AccountLogin 组件2 全局注册组件3 使用组件 二 组件效果总结 前言 在开发 vue 项目时 xff0c 我们都可能用到 element ui xff0c 但是有时 element ui 提
  • CFCA预置证书

    1 单一证书 2 导入数字证书流程 3 加密证书私钥结构
  • element-ui二次封装实现短信验证码登录组件

    文章目录 前言一 实现方法1 创建 PhoneLogin 组件2 全局注册组件3 使用组件 二 组件效果总结 前言 在开发 vue 项目时 xff0c 我们都可能用到 element ui xff0c 但是有时 element ui 提供的
  • C++之make、cmake和makefile的区别

    make cmake和makefile的区别 make 此工具类似于批处理工具 xff0c 可以对多个源文件进行批量地编译和链接makefile 是一个文本文件 xff0c 其中包含了make工具在执行时所要遵循的一系列规则Cmake xf
  • Ubuntu系统下搭建PX4环境

    Ubuntu系统下搭建PX4环境 首先我是从一个小白开始的 xff0c 完全不懂linux系统 xff0c 完全不懂PX4 xff0c PX4固件是Pixhawk飞行控制器的官方固件 xff0c Pixhawk官网也给出了Linux win