Ubuntu 16.04安装PX4原生固件

2023-05-16

Ubuntu 16.04安装PX4原生固件

  • 添加权限
  • 公共依赖安装
  • 安装FastRTPS
  • 仿真依赖安装
  • 硬件编译依赖安装
  • 代码下载
  • 代码编译
  • 总结

本教程参考2019年7月的官网教程写的这片博客,个人强烈推荐按照官网的英文版最新教程来配置,主要是官网更新得比较快,有些步骤可能已经变了。 Ubuntu下PX4官网按照方法链接

添加权限

打开一个终端执行下面的命令,让当前用户从属dialout用户组,防止以后的权限问题。

sudo usermod -a -G dialout $USER

这一步不会有输出结果,Linux下面没有结果就是最好的结果,所以没有输出不用担心。
然后重启电脑!!!
然后重启电脑!!!

公共依赖安装

先卸载掉干扰串口和USB的一个Ubuntu自带的包,一般这个包用不上,以后如果要用可以再下载。

sudo apt-get remove modemmanager

接下来就是安装PX4所依赖软件包了

sudo apt-get update -y
sudo apt-get install git zip qtcreator cmake \
    build-essential genromfs ninja-build exiftool -y
which xxd || sudo apt install xxd -y || sudo apt-get install vim-common --no-install-recommends -y
sudo apt-get install python-argparse \
    python-empy python-toml python-numpy python-yaml \
    python-dev python-pip -y
sudo -H pip install --upgrade pip 
sudo -H pip install pandas jinja2 pyserial cerberus
sudo -H pip install pyulog

安装FastRTPS

首先下载

wget https://www.eprosima.com/index.php/component/ars/repository/eprosima-fast-rtps/eprosima-fast-rtps-1-7-1/eprosima_fastrtps-1-7-1-linux-tar-gz -O eprosima_fastrtps-1-7-1-linux.tar.gz
tar -xzf eprosima_fastrtps-1-7-1-linux.tar.gz eProsima_FastRTPS-1.7.1-Linux/
tar -xzf eprosima_fastrtps-1-7-1-linux.tar.gz requiredcomponents
tar -xzf requiredcomponents/eProsima_FastCDR-1.0.8-Linux.tar.gz

下载完成过后开始编译安装,这个过程根据个人电脑配置耗时可能比较长,耐心等待编译完成就OK。

(cd eProsima_FastCDR-1.0.8-Linux && ./configure --libdir=/usr/lib && make -j2 && sudo make install)
(cd eProsima_FastRTPS-1.7.1-Linux && ./configure --libdir=/usr/lib && make -j2 && sudo make install)
rm -rf requiredcomponents eprosima_fastrtps-1-7-1-linux.tar.gz

仿真依赖安装

首先安装jMAVSim依赖

sudo apt-get install ant openjdk-8-jdk openjdk-8-jre -y

接下安装gazebo依赖,由于我们在安装ros的时候会自动安装上gazebo所以就不需要进行单独的安装gazebo了。
如果没有安装ros,则先安装Ubuntu对应版本的ros。

sudo apt-get install protobuf-compiler libeigen3-dev libopencv-dev -y

硬件编译依赖安装

对于今后只进行仿真实验,不涉及到硬件飞控的上传,操作这一个模块如果出错了可以跳过,甚至这一部分都可以跳过。
安装一些软件依赖包

sudo apt-get install python-serial openocd \
    flex bison libncurses5-dev autoconf texinfo \
    libftdi-dev libtool zlib1g-dev -y

接下来,卸载掉老版本的交叉编译器,现在的固件需要使用新版本的编译器才可以编译成功

sudo apt-get remove gcc-arm-none-eabi gdb-arm-none-eabi binutils-arm-none-eabi gcc-arm-embedded
sudo add-apt-repository --remove ppa:team-gcc-arm-embedded/ppa

这一步出错出现无法定位软件包可以跳过
安装新的交叉编译器

pushd .
cd ~
wget https://armkeil.blob.core.windows.net/developer/Files/downloads/gnu-rm/7-2017q4/gcc-arm-none-eabi-7-2017-q4-major-linux.tar.bz2
tar -jxf gcc-arm-none-eabi-7-2017-q4-major-linux.tar.bz2
exportline="export PATH=$HOME/gcc-arm-none-eabi-7-2017-q4-major/bin:\$PATH"
if grep -Fxq "$exportline" ~/.profile; then echo nothing to do ; else echo $exportline >> ~/.profile; fi
popd

然后重启电脑!!!

接下来验证是否安装成功

arm-none-eabi-gcc --version

如果输出下面的的内容代码安装成功

arm-none-eabi-gcc (GNU Tools for Arm Embedded Processors 7-2017-q4-major) 7.2.1 20170904 (release) [ARM/embedded-7-branch revision 255204]
Copyright (C) 2017 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

代码下载

经过上面的步骤我们就安装好了所有的依赖项,我们下面的下载代码。
首先我们新建一个文件夹用存放源码。

mkdir ~/px4_src
cd ~/px4_src

下面开始下载代码

git clone https://github.com/PX4/Firmware.git

接下来补全代码的子模块,防止编译的时候出一下意外的问题。

cd Firmware
git submodule update --init --recursive

代码编译

首先编译jmavsim仿真验证。

cd ~/px4_src/Firmware
make px4_sitl jmavsim

如果没有什么问题会显示出下面的界面
jmavsim仿真界面
终端输入下面的命令,飞机会起飞

commander takeoff

现在可以Ctrl/Command + C关掉继续进行下面的操作
输入下面的命令然后进行gazebo仿真的编译

cd ~/px4_src/Firmware
make px4_sitl gazebo

如果没有问题,gazebo正常打开,出现了一个小飞机,关掉过后可以进行下面的操作。
仿真验证到此介绍,如果不进行实物飞控的代码编译和上传下面的步骤可以跳过。

cd ~/px4_src/Firmware
make px4_fmu-v5

其中后面的v5是版本号根据自己的飞控,进行相关的修改。
v5对应Pixhawk4硬件。

总结

以上的步骤经过本人在新装的Ubuntu 16.04系统中验证可以配置成功,如果中途出现错误,请检查网络连接,后再试。

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

Ubuntu 16.04安装PX4原生固件 的相关文章

  • CMakeLists.txt书写规则记录

    编写自己的CMakeLists txt 1 一个CMakeLists txt的基本内容2 项目包含多个文件或文件夹时添加方式3 添加链接库 1 一个CMakeLists txt的基本内容 span class token comment 编
  • 1-FreeRTOS入门指南

    本专栏是根据官方提供的文档进行FreeRTOS的各个功能函数的说明 xff0c 以及函数的使用 本专栏不涉及动手操作 xff0c 只是对原理进行说明 xff0c FreeRTOS基础知识篇更新完成会对如何在开发板上进行上手实战操作 这里不会
  • 2-FreeRTOS编码标准、风格指南

    1 编码标准 FreeRTOS源文件 对所有端口通用 xff0c 但对端口层不通用 符合MISRA编码标准指南 使用pc lint和链接lint配置文件检查遵从性 由于标准有很多页长 xff0c 并且可以从MISRA处以非常低的费用购买 x
  • 4-FreeRTOS队列、互斥、信号量

    1 队列 队列 xff08 我对队列的理解就是上体育课 xff0c 排队这种 xff09 是任务之间通信的一种方式 队列可以用于任务和任务之间或者中断和任务之间消息的接收与发送 在多数情况下 xff0c 他们消息缓冲是按照FIFO xff0
  • QT教程demo之串口助手代码设计实现

    关注WeChat Official Account 南山府嵌入式获取更多精彩 我创建了一个群关注V号后加入 因为这里不允许添加二维码 代码 xff1a QT Pr 1 QT开发串口助手需要的基本文件 在QT6开发串口助手时 xff0c 通常
  • 自己动手写全套无人驾驶算法系列(四)机器人2D SLAM

    自己动手写全套无人驾驶算法系列 xff08 四 xff09 机器人2D SLAM 目录 一 概述 1 1 系列整体概述 二 传感器层 2 1 轮式里程计 2 2 IMU 2 3 激光雷达 2 4 视觉VO 三 建图层 3 1 静态二值贝叶斯
  • 深入理解如何不费吹灰之力搭建一个无人驾驶车(一)2D-小车底盘部分

    一 搭建综述 无人驾驶最新很流行 xff0c 但是很多人都觉得这东西蛮高大上的 xff0c 因为CSDN还没有一个完整的介绍无人驾驶车如何做的博文 xff0c 都很零散或者简略 其实有了ROS xff0c 这东西一个小学生都可以搭 xff0
  • 深入理解如何不费吹灰之力搭建一个无人驾驶车(五)2.5D-汽车自主部分(从无到有自己写一个主流无人驾驶框架如apollo)(CSDN独创)

    五 从无到有自己动手写个主流无人驾驶汽车框架 xff08 如apollo xff09 xff08 CSDN独创 xff09 注1 xff1a 必须先看完前四章再看这一章 xff0c 如果想看得轻松请看 概率机器人 与 机器人学状态估计 完再
  • ORB_SLAM系列总结

    1 最早的特征点法 xff0c 并把定位与跟踪分为两个线程是PTAM Parallel Tracking and Mapping for Small AR Workspaces 可以说是特征点法SLAM的起源之一 论文 xff1a http
  • vmware下ubuntu18.04 安装ROS Melodic+gazebo9+PX4并roslaunch运行+QGroundConrtol控制

    官方推荐ubuntu18 04的对应ROS和gazebo版本为ROS Melodic 和 gazebo9 官方指导 xff1a ROS安装 xff1a http wiki ros org Installation Ubuntu gazebo
  • PX4自定义pkg包roslaunch

    创建pkg 首先在Ros工程目录src下 xff0c 创建新的功能包ref catkin create pkg span class token operator lt span pkg name span class token oper
  • PyTorch中FLOPs计算问题

    最近看了很多关于FLOPs计算的实现方法 xff0c 也自己尝试了一些方法 xff0c 发现最好用的还是PyTorch中的thop库 xff08 代码如下 xff09 xff1a device 61 torch device 34 cuda
  • Docker Prometheus(普罗米修斯)监控系统+grafana可视化

    目录 一 Prometheus 概述1 概述2 监控系统作用及Prometheus的特点3 Prometheus 基本服务与作用4 概念 二 Prometheus exporter cadvisor 的部署1 docker部署prometh
  • 收藏的博客 -- Qt有关的GitHub/Gitee开源项目

    收藏的博客 Qt有关的GitHub Gitee开源项目 置顶 libaineu2004 2017 08 18 14 50 30 5843 已收藏 68 分类专栏 xff1a 精品资源推荐 文章标签 xff1a qt github g
  • 【海康摄像头】海康摄像头SDK下载与使用

    文章目录 一 海康摄像头SDK官网下载二 海康摄像头SDK在WinForm WPF中使用三 常用接口函数 xff0c 封装调用函数 一 海康摄像头SDK官网下载 1 进入海康ws官网 xff0c 下载官网SDK和相关文档 2 根据自己应用程
  • 嵌入式面试知识点总结 -- STM32篇

    一 MCU对比 问题 xff1a 问题一 xff1a STM32F1和F4的区别 xff1f 解答 xff1a 参看 xff1a STM32开发 STM32初识 内核不同 xff1a F1是Cortex M3内核 xff0c F4是Cort
  • Linux递归访问文件目录

    Linux递归访问文件目录 include lt iostream gt include lt cstring gt include lt cstdlib gt include lt sys types h gt include lt di
  • 非阻塞connect实现代码

    非阻塞connect实现代码 使用非阻塞IO连接服务端 xff0c 可将sleep替换要执行的任务 xff0c 客户主循环利用epoll监听事标准输入和socket上的事件 xff0c 利用管道将标准输入写入socket 有个问题请教大家
  • make:file not recognized: file format not recognized

    学艺不精 xff0c 在Makefile规则中包含了头文件 xff0c 导致make编译时出现标题错误 去掉Makefile中的 h文件即可 特此记录下
  • C++ accumulate 采坑记录

    C 43 43 accumulate 大数下的采坑记录 总结问题 总结 accumulate 的返回值的类型是第三个参数的类型 xff0c 大数的时候需要注意 问题 具体的思路自行查阅 xff0c 题目给定的数据范围是10 18 xff0c

随机推荐

  • FreerRTOS中的链表概述

    FreerRTOS中的链表概述 一 链表简介二 FreeRTOS中定义过的链表三 任务块中的链表项 一 链表简介 1 FreeRTOS中的链表是结构体模拟的双向链表 xff0c 其链表的内容为 xff1a xff08 1 xff09 lis
  • 【 MDK keil5 生成 .hex文件 .bin文件 stm32】

    MDK keil5 生成 hex文件 bin文件 stm32 1 生成hex文件2 生成bin文件2 1第一种方法2 2高级方式 1 生成hex文件 hex文件的生成通常是默认不选择生成的 xff0c MDK这个IDE对于hex生成还是很友
  • Ubuntu 18.04 拨号上网 PPPoE

    Ubuntu 18 04 拨号上网 PPPoE 解决办法 校园网是深澜系统 xff0c 使用拨号上网进行认证 xff0c 之前在Ubuntu 16 04下拨号比较方便 xff0c 但是到了Ubuntu 18 04下和Ubuntu 16 04
  • IROS2019多传感器融合SLAM方向

    Stereo Visual Inertial LiDAR Simultaneous Localization and Mapping Abstract Simultaneous Localization and Mapping SLAM i
  • C++字符数组中的‘\0’问题

    string 对象没有 0 char text 字符串数组若没有 39 0 39 xff0c 只能当做数组处理 xff0c 若有 39 0 39 xff0c 可以看做字符串 xff0c 可以cou lt lt text xff0c 否则不可
  • IROS2020:全局位置量测与基于优化的VIO紧耦合融合

  • Ubuntu 测试两台电脑之间的网速

    Ubuntu 测试两台电脑之间的网速 前言安装使用服务器端客服端 后续 前言 在Linux下面可以使用命令ping测试两台电脑之间的延迟 类似于下面这样 span class token function ping span 192 168
  • PX4使用FPV DShot电调

    Pixhawk 4使用T MOTOR FPV DShot电调接线教程 前言DShot的优点 接线参数设置开启FMU输出启用 DShot 测试后续 由于种种原因 xff0c 博客停更了好久 xff0c 从现在开始准备把停更许久的博客更新起来
  • 解决rosdep update一直timeout的问题

    解决rosdep update一直timeout 错误内容解决办法 最近在配cartographer的时候需要 rosdep update xff0c 但是一直显示timeout xff0c 简直都要崩溃了 xff0c 一行命令跑一天 xf
  • qgc通过mavros连接到飞控

    qgc通过mavros连接到Pixhawk飞控 mavros设置QGC设置 mavros确实是一个不错的工具 xff0c 在机载电脑上进行无人机开发的时候 xff0c 有时候想调飞控的参数看一下飞控的一些信息 xff0c 但是直接接飞控又不
  • pixhawk使用WiFi模块

    pixhawk使用WiFi 前期准备刷固件安装刷固件软件进入刷固件模式下载固件刷固件 使用接线飞控参数更改使用方法 在使用pixhawk的时候有时候在无人机上不方便搭载处理器 xff0c 这个时候进行外部控制 或者QGC有线方式连接无人机不
  • cartographer+pixhawk飞控+px4固件+ros kinetic+HOKUYO utm-30lx实现无GPS下的起飞

    cartographer 43 pixhawk飞控 43 px4固件 43 ros kinetic实现无GPS下的起飞 cartographer配置launch文件建立更改配置文件 飞控设置测试 前面的博客讲了cartographer和ma
  • 结合无人机室内导航谈谈3DVFH+算法

    无人机室内导航路径规划 障碍规避 在浏览PX4开发手册过程中看见里面提到的一种障碍规避算法 3DVFH 43 该算法在之前做本科毕设时候有所接触 xff0c 不过当时是进行了2D的Matlab仿真 xff0c down个代码改改障碍物形状
  • px4通过QGC地面站测试电机

    px4通过QGC地面站测试电机 打卡控制台测试电机 在安装好旋翼过后其中比较重要的一步就是测试电机的位置和转向是否安装正确 通过地面站的mavlink控制台可以依次对每个电机进行测试 测试过程需要连接电池 xff0c 电机会转 xff0c
  • 提高mavros中IMU话题的发布频率

    提高mavros中IMU话题的发布频率 提高波特率提高方法命令行方式原始IMU数据飞控计算过后的IMU数据总结 更改启动文件 在上位机上很多时候都需要用到无人机的IMU信息 xff0c 我用的飞控硬件是Pixhawk 4 xff0c 感觉I
  • 安装Windows和Ubuntu双系统

    这几天开始动手做毕设啦 xff0c 打算好好过把Linux瘾 xff0c 接下来便是这两天我在联想电脑上安装Windows10和Ubuntu16 04双系统的过程 一 安装方式 一般在Windows下体验Linux的方式有三种 xff1a
  • PX4飞控Avoidance功能包2018论文分享

    PX4飞控Avoidance功能包2018论文分享 PX4官方Avoidance 2018论文引言 xff08 略 xff09 摘要简介相关工作全局障碍规避局部障碍规避对本文启发 方法 3DVFH 算法建立记忆将直方图重投影到3D点从3D点
  • RTAB-Map:适用大范围长周期的开源雷达视觉SLAM库

    RTAB Map xff1a 适用大范围长周期的开源雷达视觉SLAM库 摘要IntroductionROS上的主流SLAM算法基于雷达的算法GmappingHectorICP MapperKarto SLAM和CartographerBLA
  • Ubuntu 16.04安装RealSense ROS功能包

    RealSense ROS安装 安装SDK二进制安装源码编译安装 安装ros包测试 这个包支持D400 系列 SR300 和T265相机 安装SDK 个人推荐源码编译安装 xff0c 源码编译安装比较麻烦 二进制安装 添加RealSense
  • Ubuntu 16.04安装PX4原生固件

    Ubuntu 16 04安装PX4原生固件 添加权限公共依赖安装安装FastRTPS仿真依赖安装硬件编译依赖安装代码下载代码编译总结 本教程参考2019年7月的官网教程写的这片博客 xff0c 个人强烈推荐按照官网的英文版最新教程来配置 x